Discovered: April 22, 2008
Updated: April 22, 2008 4:57:52 PM
Type: Trojan
Infection Length: 184,952 bytes
Systems Affected: Windows 2000, Windows 95, Windows 98, Windows Me, Windows NT, Windows Server 2003, Windows Vista, Windows XP
When the Trojan is executed, it drops a copy of itself to the following location:
%System%\wnpms.exe
It also drops the following files, which are DLL libraries:
- %Windir%\Temp\wnpms_[RANDOM NUMBERS].tmp
- %Windir%\Temp\wnp[RANDOM NUMBERS].tmp
It injects the above libraries into the following processes:
- winlogon.exe
- explorer.exe
- iexplore.exe
The program creates the following registry entries so that it executes whenever Windows starts:
- HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\"Windows Network Policy Manager Service" = "%System%\wnpms.exe"
- HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\"Windows Network Policy Manager Service" = "%System%\wnpms.exe"
It also modifies the following registry entries so that it executes whenever Windows starts:
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\"Userinit" = "C:\WINDOWS\system32\userinit.exe, wnpms.exe"
- HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\"StartupPrograms" = "rdpclip, wnpms.exe"
Next, it creates a new service with the following characteristics:
Service name: wnpms
Display name: Windows Network Policy Manager Service
ImagePath: %System%\wnpms.exe
Description: Manages network policies deployed defaultly by system services and 3rd party applications. This service can not be stopped
It creates the following registry subkey for the above service:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\wnpms
The Trojan also creates the following subkeys:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\LEGACY_WNPMS
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\wnpms
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\LEGACY_WNPMS
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Services\wnpms
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Enum\Root\LEGACY_WNPMS
It creates a thread, which creates the above service in a loop so that the threat is recreated if it is deleted.
Next, the Trojan creates the following registry entries in order to bypass the Windows firewall:
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\AuthorizedApplications\List\"%System%\wnpms.exe" = "%System%\wnpms.exe:*:Enabled:Windows Network Policy Manager Service"
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\AuthorizedApplications\List\"%Windir%\Explorer.EXE" = "%Windows%\Explorer.EXE%Windows%\Explorer.EXE:*:Enabled:Windows Network Policy Manager Service"
The Trojan creates the following mutexes so that only one instance of the threat is running on the computer:
- _win32__wnpms_um__
- __win32__wnpms_sdm__
It may also create the following event:
{8D7F0C62-670A-498D-88A7-2090D29A11F4}
The Trojan monitors its own process in case it is ended. If the process is ended, the Trojan may restart itself.
Next, the Trojan connects to the following remote host and waits for commands from an attacker:
dep.mvl0an7.com:19801
The remote attacker may perform some of the following actions on the compromised computer:
The Trojan then creates the following file mapping:
{6EA9B038-C801-4F76-805F-E41ACF9ED165}
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: Mateusz Misiewicz