Do you need to be a hardcore malware reverser to understand how malware works under the covers? No, not always. Here’s an example of using some free tools and OpenDNS Investigate to expedite the analysis process and rapidly protect your organization.
Subject: Urgent Notification N443111645 Thank you for placing order with our company now! Your purchase is processing right now. Outright Purchase: 4200 AUD Please check the statement given with this email to see more details about your order. ORDER DETAILS Purchase Number: AGS873904473 Order Date: 12:45 Monday, Mar 2 2015 Customer Email: <victim email address>
The file most commonly utilizes the pattern payment_ddddd.chm, where ‘ddddd‘ is a seemingly random generated integer five digits in length.
Full dynamic analysis of this file can be viewed here: https://www.virustotal.com/en/file/0d18bc9bd50080598f9d69032de95b2ed438e77884a6389755f523f3901c0b39/analysis/.
When executed, the .chm file downloads an executable named tv.exe from www[.]igloofire[.]com. The tv.exe file generates domain names using a DGA, tries to resolve the domain names, and finally contacts those domains with a single HTTP GET request and 20 HTTP POST attempts. The VirusTotal dynamic analysis for the tv.exe file can be viewed here: https://www.virustotal.com/en/file/8e801b9171291c11b0a3fcbd4314a078ff2c43305808fd49434858654e4e4bde/analysis/
“But Andrew,” you ask, “how do you know that? We don’t see anything in the VirusTotal analysis to substantiate that.”
That’s absolutely correct. In fact, the dynamic analysis from VirusTotal only shows communication to 22.214.171.124 on UDP port 123 – which is a Microsoft NTP server that the Windows virtual machine likely called out to in order to sync its time.
This exact situation illustrates some of the issues with relying entirely on dynamic analysis engines. That being said, we strongly suggest that you try multiple engines/platforms when performing dynamic analysis to see what shakes out. One alternative is The Shadowserver Foundation’s Malwr.com platform. Analyzing the downloaded tv.exe file on Malwr.com (https://malwr.com/analysis/MTY5MTAxZjE3OTk5NGVkZDkyYTFhNGMwZTVjOTBjNzc/#) shows us that several signatures have been trigged.
As well as interaction with the DGA in question – perviylich[.]ru
Additionally, we can observe the system level communication flow and the Windows hooks involved in said communication.
Now reversing the malware would have eventually given us this domain but we’re in triage mode right now. We can always reverse the malware later to confirm and/or expand our findings.
Looking up the perviylich[.]ru domain in OpenDNS Investigate, we can tell several things:
1) The domain is blocked by OpenDNS
2) The domain only recently became active
3) The majority of clients requesting the domain are from Australia (80%) – perhaps a targeted attack on a particular region?
4) The threat model identifies this domain as having a high likelihood of being a DGA
5) The domain utilizes the following IP addresses: 126.96.36.199 (also the name server) and 188.8.131.52
6) The IPs are allocated to AS’ in Ukraine and Russia, respectively
7) The IP addresses also host a number of other DGA-looking domains
8) In looking at some of the other domains on that infrastructure, we can see a similar pattern across the entire hosting IP addresses
9) We can also see a pattern emerge that shows pairings of DGA registrations utilizing the same domain name combined with both a .ru (Russia) TLD and a .su(Soviet Union) TLD.
10) Using this information, we can create a master list of domains involved in this particular malware infrastructure run:
If you’re a visual person, you can also graph the domains, using the OpenDNS Investigate API and the open source OpenGraphiti tool, to show the linkages. The image below shows the domains (outside edge of circle) and how they’re associated with the two IP addresses found earlier in this post.
To confirm findings, however, you can (and probably should) analyze the memory of the running binary to ensure that there are no subsequent IP addresses or domains called out to that may have been missed by your dynamic analysis engines. In this particular case, there were no additional domains or IP addresses.
11) Digging even further into the domain list, we can query Investigate for any IP addresses these domains resolved to in the past
Placing the domains into Maltego and using OpenDNS’s Investigate transform, we found two IP addresses these domains resolved to. Both
Both of these IP addresses were also the IP addresses of the domains’ name servers. This add to the suspiciousness of the domain names.
12) Identifying the name server domains, we queried Whois to find more information about the registrant of the name server domains.
It turns out the email account, firstname.lastname@example.org, used to register the name server domains also registered a handful of other domain names.
|Domain Name||Creation Date|
All of which had similar subdomains of ns1, ns2, ns3, and ns4 and all of which were registered through the notoriously abused BizCN.com registrar and were acting as name servers for fastflux as well as command and control domains.
We dumped all these domains, their subdomain, and their IP addresses into our Maltego graph and found some interesting connections.
13) Noting that YopMail is a free temporary email service, we visited the site and checked the web-based inbox of email@example.com (the registrant of all these name servers associated with malicious domains)
It turns out the registrar confirmation emails were still there, dating March 1 through March 3. This confirms the whois records.
14) It should be noted that AS48031 is a rogue AS that has been serving malicious sites for a while in addition to performing various evasive actions.
AS48031, XSERVER-IP-NETWORK-AS PE Ivanov Vitaliy Sergeevich,UA, that a lot of security folks will recognize has been hosting all kinds of malicious and shady content (malware, browser-based ransomware, porn sites, spam, radical forums) and it’s been “fluxing” on and off the routable IP space. For example, in earlier 2014, it disappeared off the global routing table but as of early March 2015, AS48031 is online and advertising its prefixes by verifying our BGP routing tables and as shown below.
At the time of this writing, there are 1900+ live IPs on AS48031 IP space, and further checking them reveals finer granularity of allocation. A few suspicious small hosters are selling this sub-allocated IP space for customers via VPS, VDS, and dedicated servers. justhost.in.ua is one of these hosters that warrants further scrutiny. We discussed similar rogue or abused small hosting providers in our recent talks at BlackHat, DefCon and Virus Bulletin.
We wouldn’t be surprised to see a few domains start using dns-pupkin-vasya.com as an authoritative zone very soon and can with confidence, say they are domains you don’t want your devices connecting to.
At this point you should have a good idea of how to leverage OpenDNS Investigate to perform detailed malware triage and infrastructure investigations to protect your organization and its users – all without having to open a hex editor or manual debugger.
Until next time!