Lately I’ve been reading Eldad Eilam’s “Reversing: Secrets of Reverse Engineering”, working through all of the exercises and such. I need to build up my skills at really low level workings of Windows, static analysis of disassembled code, and debugging a live process more effectively. This is the perfect book for that, so I’ve been really enjoying it.
When I received some malware, attached to a “Message could not be delivered” email, I figured I’d play with it bit, as I often enjoy doing. Now, this is the sort of thing VMWare Server is excellent for. If you ‘re running Ubuntu, check here for a nice writeup on getting it going on 6.10. For Feisty, check my comments
. I can create a checkpoint before I load the malware onto the system, and then rewind it back to that clean state whenever needed.
I already had an Windows XP VM that I was using OllyDbg in, working through Eilam’s examples, so I figured it’d be fun to load up some malware and see what I could do. Unfortunately, I’m not far enough into the book yet to beat this malware’s executable packing and anti-debugging features
. Not to be discouraged, I dropped back to my one of my usual techniques for analyzing malware: seeing how it interacts with the network.
For this, I could run Wireshark in the host OS (Linux) without fear of the malware affecting it. Here’s some notes:
As you can see, this executable tries hard to make itself look like an HTML file (that’s a “.com” at the end of all those spaces). A proper icon would have helped though.

I was very happy that, when I ran the malware, the Windows Firewall popped up to ask me if I wanted to let it access the network. The malware was smart enough to call itself “services”, which is innocuous enough for a lot of people. For the purposes of testing, I went ahead and allowed it.
After a while of sniffing traffic, I stopped the Wireshark capture, and began restoring the VM back to a clean slate. The traffic mostly consisted of email (sending out copies of itself, boring and unsuccessful), and web traffic (much more interesting). So, if you want to take a look at the sort of web requests are being made in a packet dump, here’s a nice display filter…

This filter resulted in a large number of searches on lots of search engines, presumably looking for more email addresses to spread to on sites that it found in my browser history:

I’m impressed by the wide variety of search engines and terms that I’ve seen it use. I do, however, question the practicality of mining debian.org for people vulnerable to Windows malware
So, for this exercise, I intentionally didn’t search out any information about the virus beforehand, but this is always a good idea. Google the md5 hash of the malware you get your hands on, run strings over it and search for any unique strings, and anything else you can think of. Anytime you can find someone who’s already done analysis for you, you have saved some time. Just be sure to verify their results, because they may not know what they’re doing, or maybe you have a new variant.
For the sake of completeness, here’s what VirusTotal.com had to say about this malware:
| Antivirus |
Version |
Update |
Result |
| AhnLab-V3 |
2007.5.16.1 |
05.16.2007 |
Win32/MyDoom.worm.40960.B |
| AntiVir |
7.4.0.23 |
05.16.2007 |
Worm/Mydoom.BB.1 |
| Authentium |
4.93.8 |
05.16.2007 |
W32/Mydoom.BF@mm |
| Avast |
4.7.997.0 |
05.16.2007 |
Win32:Mydoom-L2 |
| AVG |
7.5.0.467 |
05.16.2007 |
I-Worm/Mydoom |
| BitDefender |
7.2 |
05.17.2007 |
Win32.Mydoom.AQ@mm |
| CAT-QuickHeal |
9.00 |
05.16.2007 |
I-Worm.Mydoom.m |
| ClamAV |
devel-20070416 |
05.16.2007 |
Worm.Mydoom.M-unp |
| DrWeb |
4.33 |
05.16.2007 |
Win32.HLLM.MyDoom.54464 |
| eSafe |
7.0.15.0 |
05.16.2007 |
Win32.Mydoom.bf |
| eTrust-Vet |
30.7.3638 |
05.17.2007 |
Win32/Mydoom.BA |
| Ewido |
4.0 |
05.16.2007 |
Worm.Mydoom.m |
| FileAdvisor |
1 |
05.17.2007 |
no virus found |
| Fortinet |
2.85.0.0 |
05.17.2007 |
W32/MyDoom.BE@mm |
| F-Prot |
4.3.2.48 |
05.16.2007 |
W32/Mydoom.BC@mm |
| F-Secure |
6.70.13030.0 |
05.17.2007 |
Email-Worm.Win32.Mydoom.am |
| Ikarus |
T3.1.1.7 |
05.16.2007 |
Email-Worm.Win32.Mydoom.m |
| Kaspersky |
4.0.2.24 |
05.17.2007 |
Email-Worm.Win32.Mydoom.am |
| McAfee |
5032 |
05.16.2007 |
W32/Mydoom.bf@MM |
| Microsoft |
1.2503 |
05.17.2007 |
Worm:Win32/Mydoom.BF@mm |
| NOD32v2 |
2272 |
05.17.2007 |
Win32/Mydoom.AX |
| Norman |
5.80.02 |
05.16.2007 |
W32/MyDoom.AU@mm |
| Panda |
9.0.0.4 |
05.16.2007 |
W32/Mydoom.AT.worm |
| Prevx1 |
V2 |
05.17.2007 |
no virus found |
| Sophos |
4.17.0 |
05.16.2007 |
W32/MyDoom-BE |
| Sunbelt |
2.2.907.0 |
05.17.2007 |
VIPRE.Suspicious |
| Symantec |
10 |
05.17.2007 |
W32.Mydoom.BB@mm |
| TheHacker |
6.1.6.115 |
05.15.2007 |
W32/Mydoom.am |
| VBA32 |
3.12.0 |
05.16.2007 |
MalwareScope.Email-Worm.Mydoom.1 |
| VirusBuster |
4.3.7:9 |
05.16.2007 |
I-Worm.MyDoom.BC |
| Webwasher-Gateway |
6.0.1 |
05.17.2007 |
Worm.Mydoom.BB.1 |
I’m going to assume that FileAdvisor and Prevx1 just had a bad day or some kind of glitch, because I’m not sure why else they wouldn’t be able to recognize MyDoom. As long as you’re using pretty much anything else, it looks like you’re safe!
…or you could just use VMWare and restore to a clean state after your questionable activities
.
Recent Comments