Symantec.com > Security Response > Threats and Risks > Backdoor.HackDefender

Backdoor.HackDefender

Risk Level 1: Very Low

Printer Friendly Page

Discovered: March 12, 2003
Updated: February 13, 2007 11:44:19 AM
Also Known As: HackerDefender [McAfee]
Type: Trojan Horse
Systems Affected: Windows 2000, Windows NT, Windows XP


The Backdoor.HackDefender package consists of two files:
  • Hxdefxxx.exe, which is the backdoor component.
  • Hxdefxxx.ini, which is the backdoor configuration file.

NOTES:
  • The xxx represents a number from 026 to 071.
  • The client portion of this backdoor, which Symantec antivirus products detect, is named Bdclixxx.exe.

Purpose
Backdoor.HackDefender hooks various APIs in application processes to hide the specified processes, services, and files. The configuration file controls this action.

Functionality
When Backdoor.HackDefender is activated, it does the following:
  1. Registers itself as a service, causing the system to execute the backdoor every time you restart the computer.
  2. Causes the service control manager to create the registry key:

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HackerDefenderxxx

    This key contains the configuration information, such as its display name, "HXD Service," for the backdoor service.
  3. Inventories all the processes on the system. The Trojan injects its own code into their memory and hooks various APIs.
  4. Waits for you to launch other processes, into which the Trojan will also inject its own code, as well as hook their APIs.

Hooked APIs
Backdoor.HackDefender will hook the APIs for the following files:
  • kernel32.dll
    • VirtualFree
    • VirtualAlloc
    • SetLastError
    • LoadLibraryA
    • FreeLibrary
    • VirtualQuery
    • VirtualProtect
    • FlushInstructionCache
    • GetCurrentProcess
    • FindClose
    • ResumeThread
    • CreateMailslotA
    • GetMailslotInfo
    • WriteFile
    • ReadFile
    • CreateFileA
    • CloseHandle
    • Sleep
    • GetEnvironmentVariableW
    • GetModuleFileNameA
    • DuplicateHandle
    • CreateProcessA
    • ExitThread
    • CreateThread
    • CreatePipe
    • PeekNamedPipe
    • WaitForMultipleObjects
    • TerminateThread
    • TerminateProcess
    • DisconnectNamedPipe
    • IsBadReadPtr
    • GetLastError
    • CreateProcessW
    • LoadLibraryExW
    • FindFirstFileExW
    • FindNextFileW

  • advapi32.dll
    • AllocateAndInitializeSid
    • GetLengthSid
    • InitializeAcl
    • AddAccessAllowedAce
    • InitializeSecurityDescriptor
    • SetSecurityDescriptorDacl
    • EnumServicesStatusW
    • EnumServicesStatusA

  • ws2_32.dll
    • send
    • recv
    • WSARecv
    • WSAGetLastError
    • WSAEventSelect
    • WSAIoctl
    • closesocket

  • ntdll.dll
    • NtQuerySystemInformation

Hooking mechanism
Backdoor.HackDefender hooks the APIs by first allocating a memory area inside a host process. Then, the Trojan injects its own code and handler functions into that area.

Then, Backdoor.HackDefender will inventory the list of APIs, placing a jump instruction at the beginning of every API.

When a program executes any of the hooked APIs, the jump instruction transfers control to the Trojan's handler function (residing in the allocated memory area), which then calls the hooked API through a stub function. When the original API returns the handler function, the Trojan performs its processing and filtering processes (for example, excluding a specific file from FindFirstFile/FindNextFile API), and then returns.

Recommendations

Symantec Security Response encourages all users and administrators to adhere to the following basic security "best practices":

  • Use a firewall to block all incoming connections from the Internet to services that should not be publicly available. By default, you should deny all incoming connections and only allow services you explicitly want to offer to the outside world.
  • Enforce a password policy. Complex passwords make it difficult to crack password files on compromised computers. This helps to prevent or limit damage when a computer is compromised.
  • Ensure that programs and users of the computer use the lowest level of privileges necessary to complete a task. When prompted for a root or UAC password, ensure that the program asking for administration-level access is a legitimate application.
  • Disable AutoPlay to prevent the automatic launching of executable files on network and removable drives, and disconnect the drives when not required. If write access is not required, enable read-only mode if the option is available.
  • Turn off file sharing if not needed. If file sharing is required, use ACLs and password protection to limit access. Disable anonymous access to shared folders. Grant access only to user accounts with strong passwords to folders that must be shared.
  • Turn off and remove unnecessary services. By default, many operating systems install auxiliary services that are not critical. These services are avenues of attack. If they are removed, threats have less avenues of attack.
  • If a threat exploits one or more network services, disable, or block access to, those services until a patch is applied.
  • Always keep your patch levels up-to-date, especially on computers that host public services and are accessible through the firewall, such as HTTP, FTP, mail, and DNS services.
  • Configure your email server to block or remove email that contains file attachments that are commonly used to spread threats, such as .vbs, .bat, .exe, .pif and .scr files.
  • Isolate compromised computers quickly to prevent threats from spreading further. Perform a forensic analysis and restore the computers using trusted media.
  • Train employees not to open attachments unless they are expecting them. Also, do not execute software that is downloaded from the Internet unless it has been scanned for viruses. Simply visiting a compromised Web site can cause infection if certain browser vulnerabilities are not patched.
  • If Bluetooth is not required for mobile devices, it should be turned off. If you require its use, ensure that the device's visibility is set to "Hidden" so that it cannot be scanned by other Bluetooth devices. If device pairing must be used, ensure that all devices are set to "Unauthorized", requiring authorization for each connection request. Do not accept applications that are unsigned or sent from unknown sources.
  • For further information on the terms used in this document, please refer to the Security Response glossary.

Writeup By: Atli Gudmundsson
Search by name
Example: W32.Beagle.AG@mm
Windows 7
Windows Vista Security