Sara Laughlin
Matthew Wollenweber
The George Washington University
{belevume, mwollenw}@gwu.edu
Technical Summary
A network IDS alert for Poison Ivy detects a possible attack from 72.52.166.40. The signature and traffic are insufficient to verify a malicious incident. Further analysis shows a portable executable downloaded from 121.14.149.32. Automated analysis indicates no virus but odd behavior. Detailed analysis indicates this is Trojan.Win32.BHOLamp which is likely a Poison Ivy variant. The initial dropper has MD5= e361fbcc45e23bc0913ded251dd9753c and drops a DLL for a backdoor with MD5=2c97cef5389caaf82cff40c98a9bdb13.
Introduction
On January 7th, 2010 GWU ISS Security identified a potential threat by a signature alert on a network sensor. Later analysis confirmed a security threat not currently detected by most antivirus products. This report details how the malware was detected and the analysis of the threat. Additionally, we hope this informs readers of a current threat.
Initial Detection
Initial detection is based upon an alert from a custom signature for the Poison Ivy Remote Access Trojan server. The signature looks for a common binary message observed in Poison Ivy communications. However, the signature is not definitive. Below is an example hit on the signature

Next we searched the IDS for other entries associated with the suspected victim IP address. We discovered the victim recently downloaded a Packed PE (executable file). Downloading executables is quite common so we still were reluctant to identify the traffic as malware.
We proceeded to analyze the PE as our next step. Unfortunately this step should have been delayed. If we had examined the attacking IP address, seen below we would have been far better off.

A quick googling of the IP yields:

Binary Analysis
Our IDS logs traffic associated with an alert. From that we obtain the file and HTTP GET Request.

Manual inspection of the above indicates an EXE appeared to be transferred and that a username and computer name was sent to the server. The MD5 of the executable is e361fbcc45e23bc0913ded251dd9753c.
Initial analysis was automated by the standard series of online tools. Virustotal had no successful hits. Anubis and ThreatExpert were inconclusive.

Browser Helper Objects are fairly common, but some of the CLSIDs were odd.

CLSIDs are sufficiently large as to be unique for any application. A CLSID of all 0s struck me as unprofessional. Additionally, the executable dropped a DLL:

The file name is random, but the path and MD5 (2c97cef5389caaf82cff40c98a9bdb13) appear constant.
We repeat the automated analysis with dropped DLL. Again no detection with VirusTotal. But with ThreatExpert we see the following:

The DLL connects back to the original host with the same page that downloads an executable. This further indicates malware.
Curious, we continue to Google CLSIDs and finally discover: http://www.microsoft.com/security/portal/Threat/Encyclopedia/Entry.aspx?Name=Trojan%3AWin32%2FBHO.gen!LL
This confirms the malware as Trojan.Win32.BHOLamp.
Network Analysis
The following screenshots indicate the attacking IPs are shared hosted computers residing in China. The type of hosting and country of origin do not necessitate that the traffic is malicious but when combined with ambiguous behavior one should consider such factors.


Other Analysis:
The malware does not always immediately call back to the remote server. Therefore, if one relies only on ThreatExpert that key piece of evidence might be missed. Loading the DLL into IDA Pro we find no URLs and few strings in the executable. However we see large data sections. Therefore we decide to run the DLL in Immunity Debugger. This is done as follows:

You run rundll32 with the DLL filename and function as arguments. Next we configure Immdbg to break on every module load and wait for OQpEg5WJ to be loaded. Not seeing anything immediately interesting we continue to watch modules load until an internet related module is loaded. We know to expect modules to be loaded because of the following code:

As expected we see the following:

Urlmon is loaded first followed by Wininet and WS2_32. We set standard breakpoints on WS2_32.send and various Wininet openinetnetconnection type functions. Despite running standard Immdbg anti-debug scripts the malware still detects debugging and crashes. However, we scan memory for “http://” and find the relevant URL and also confirm it’s the only malware related URL (namely http://121.14.149.132/hia12/ter.php).
Conclusion:
Many IDS analysts are reluctant to classify an event as malicious without a confirmed antivirus hit. This paper demonstrates a case study where our systems detected a probably event and we manually verified the incident despite the malware not being detected by any AV products. This is especially important due to the ability to rapidly pack malware and for polymorphic kits like Poison Ivy. Reversing the binaries confirmed the malware, but one should also consider the behavior indicated by tools like Anubis/ThreatExpert combined with network traits such as location and domain names.
References
http://www.efblog.net/2009/02/creating-online-polymorphic-malware.html
http://www.microsoft.com/Security/portal/Threat/Encyclopedia/Entry.aspx?Name=Backdoor:Win32/Poisonivy.E&ThreatID=-2147367341
http://www.microsoft.com/security/portal/Threat/Encyclopedia/Entry.aspx?Name=Trojan%3AWin32%2FBHO.gen!LL
http://www.threatexpert.com/report.aspx?md5=2c97cef5389caaf82cff40c98a9bdb13
http://www.threatexpert.com/report.aspx?md5=e361fbcc45e23bc0913ded251dd9753c