The Dell SecureWorks Counter Threat Unit™ (CTU) research team has discovered a new variant of the Pushdo malware downloader. The Pushdo downloader (or loader) is primarily used to download and install the Cutwail spam bot engine. What sets this Pushdo variant apart is an embedded malware module that generates fake HTTP GET/POST requests to a large list of legitimate (non-compromised) websites. CTU researchers have observed more than 300 unique domains in the malware's configuration.
Figure 1 lists the pseudo code for generating fake requests to these domains.
Figure 1. Pseudo code for generating fake requests to legitimate websites.
The algorithm starts by generating a pseudorandom number. If the number is odd (bitwise AND with one, which is equivalent to modulo two), then the malware creates a distinctive HTTP request in the format:http://[domain]/?xclzve_[30 random characters]
If the random number is even, the HTTP request connects to the root path of the web server (i.e., the home page). Next, the malware generates a second pseudorandom number that is bitwise ANDed with two. Therefore, if the number x is in the following sequence, the malware generates a fake HTTP GET request:x = (2*n+2) or x = (2*n+3) where n = 0,2,4,6,8, ...
Figure 2 is an example of one of these fake requests.
Figure 2. Fake HTTP GET request.
If this random number is not in the above sequence, then the malware generates an HTTP POST request with a random payload of up to 255 bytes. This algorithm provides a 50% chance of a request to a website's homepage versus the fake path generated by Pushdo beginning with the "?xclzve_" prefix, and then a 50% chance of selecting a GET request versus a POST request.
The purpose of these fake HTTP requests is to make Pushdo's command and control (C2) traffic, which also uses HTTP, blend in with legitimate traffic. This is not the first time Pushdo has used this method to obfuscate its C2 communications. It used a similar technique in a previous variant that was first introduced around February 2010. This old variant generated fake Secure Sockets Layer (SSL) connections to legitimate websites. At the time, Pushdo communicated over TCP port 443, which is the default port for SSL.
Unfortunately, some of the websites that are receiving these bogus requests are being overwhelmed by the traffic generated by the Pushdo bots. Figure 3 is an example of a website that has exceeded its bandwidth limit, likely due to the massive flood of HTTP requests.
Figure 3. Code from website that exceeded its bandwidth limit.
The new Pushdo variant's traffic uses a custom encryption protocol that is encapsulated in HTTP as shown in Figure 4.
Figure 4. Encryption protocol for Pushdo traffic.
The following are the locations of the Pushdo C2 servers at the time of this publication:
The CTU research team has observed that endpoint systems are typically infected with Pushdo via drive-by exploits. Web browser and endpoint security practices are the primary point of remediation to reduce risk of infection.
The CTU research team recommends that businesses continue to educate employees about the risks associated with clicking URLs, especially those contained in email, and to enforce policies to keep the software on systems up to date.