一个使用cve-2017-11882和cve-2018-0802组合漏洞的恶意文档分析
近日截获一个扩展名为doc的word文档攻击样本,其格式其实是RTF格式。通过分析该文档组合利用了cve-2017-11882和cve-2018-0802漏洞,并且使用内嵌的excel对象用于触发漏洞。释放的PE文件用于搜集目标用户的敏感信息。
一、基本情况
在实验环境(win764、office2010)打开文档,进行进程监控,发现winword进程执行后,首先执行excel.exe,然后运行EQNEDT32.exe,接着运行cmd.exe,最后运行进程A.X,其中EQNEDT32.exe运行了两次。看到EQNEDT32.exe,瓶感觉应该是cve-2017-11882或者cve-2018-0802的样本。
文档打开后,显示为空文档,如下图所示。
上图中,不经意可能就以为是空的,其实细看,发现有左上方一个小黑点的图标在。如下图所示。
双击后,发现弹出窗口,如下图所示。显示“windows 无法打开此文件:A.X”。很明显,该“小黑点”应该是一个外部链接对象。
右键点击该对象,选择“包装程序外壳对象”对象,可以查看该对象的“属性”。如下图所示。
其对象属性如下图所示:
看到这里,我们大致就可以断定:该样本应该是是利用RTF嵌入一个PE对象,在打开文档的时候会默认释放到%temp%目录下,然后利用cve-2017-11882或者cve-2018-0802执行该进程。
二、RTF分析
1、文档结构分析
利用rtfobj攻击对文档进行分析,发现其内嵌两个对象,分别是一个package对象和一个Excel.Sheet.8对象。如图所示。Package对象原文件是“C:\\Users\\n3o\\AppData\\Local\\Microsoft\\Windows\\INetCache\\Content.Word\\A.X”。从这个可以看出,该文档的作者操作系统用户名为:n3o。
其中A.X就是释放的恶意PE文件。
另外一个是内嵌入的excel表对象,我们把提取的excel表后缀改名为.xls后用excel打开。发现其包含两个对象AAAA和bbbb,都是“Equation.3”对象,如下图所示。
对提取的excel表对象,其文档结构如下图所示。
表中包括了两个CLSID为“0002ce02-0000-0000-c000-000000000046”(Microsoft 公式 3.0)的对象MBD0002E630和MBD0002E631,可以看到修改时间为2018/5/21 17:52。
此外,两个“Microsoft 公式 3.0”对象的Ole10Native大小分别为59字节和160个字节,里面包含了“cmd.exe /c %tmp%\A.X”字样用于执行A.X进程。应该是组合使用了cve-2017-11882和cve-2018-0802两个漏洞。
至此,我们可以基本分析清楚了该样本,总体流程图如下下图所示。
2、静态文档
用winhex打开,可以发现第一个package对象,位于 文件的0x2A8A处。其中0x00137158指的是对象的大小,也就是十进制1274200,正是释放的A.X的大小。紧跟其后的就是PE文件,在winhex中我们可以看到,作者把PE头0x4D5A进行了修改,在中间插入0x090d进行分割,使其变成[0x090d]4[0x090d]d[0x090d]5[0x090d]a[0x090d],其实就是0x4d5a,这样的操作应该是为了避免某些杀软的查杀,不直接以0x4d5a9000的样子呈现,一看就明显是PE文件。具体如下图所示:
另一个对象在0x299061位置处,是一个Exce.Sheet.8对象。其大小是0x00005C00,也就是十进制23552,和rtfobj提取的exel大小一致。作者也对复合文档的头进行了变化,用0x0909进行分割,使得d0cf11开头的复合文档变成了d[0x0909]0[0x0909]。应该也是一定意义上的免杀混淆操作。具体如下图所示:
三、PE文件分析
1、实体文件
释放的实体文件名字为A.X,大小为1274200。
属性如下图所示。
内含的数字签名如下图所示:
该PE文件是用VB语言编写32位程序,以下是PE查看信息。
File Compression State : 0 (Not Compressed)
File Type : 32-Bit Exe (Subsystem : Win GUI / 2), Size : 1274200 (0137158h) Byte(s) | Machine: 0x14C (I386)
Compilation TimeStamp : 0x38215CB8 -> Thu 04th Nov 1999 10:15:20 (GMT)
[TimeStamp] 0x38215CB8 -> Thu 04th Nov 1999 10:15:20 (GMT) | PE Header | - | Offset: 0x000000C0 | VA: 0x004000C0 | -
-> File Appears to be Digitally Signed @ Offset 0BD000h, size : 01678h / 05752 byte(s)
-> File has 494304 (078AE0h) bytes of appended data starting at offset 0BE678h
[LoadConfig] CodeIntegrity -> Flags 0xA3F0 | Catalog 0x46 (70) | Catalog Offset 0x2000001 | Reserved 0x46A4A0
[LoadConfig] GuardAddressTakenIatEntryTable 0x8000011 | Count 0x46A558 (4629848)
[LoadConfig] GuardLongJumpTargetTable 0x8000001 | Count 0x46A5F8 (4630008)
[LoadConfig] HybridMetadataPointer 0x8000011 | DynamicValueRelocTable 0x46A66C
[LoadConfig] FailFastIndirectProc 0x8000011 | FailFastPointer 0x46C360
[LoadConfig] UnknownZero1 0x8000011
[File Heuristics] -> Flag #1 : 00000000000000000000000000000100 (0x00000004)
[Entrypoint Section Entropy] : 7.42 (section #0) ".text " | Size : 0xB71C0 (750016) byte(s)
[DllCharacteristics] -> Flag : (0x0000) -> NONE
[SectionCount] 3 (0x3) | ImageSize 0xBD000 (774144) byte(s)
[VersionInfo] Product Name : CUFFIN10
[VersionInfo] Product Version : 3.05.0004
[VersionInfo] File Description : BARTRAMIA1
[VersionInfo] File Version : 3.05.0004
[VersionInfo] Original FileName : Moistness9.exe
[VersionInfo] Internal Name : Moistness9
[ModuleReport] [IAT] Modules -> MSVBVM60.DLL
[!] File appears to have no protection or is using an unknown protection
- Scan Took : 0.531 Second(s) [000000213h (531) tick(s)] [566 of 580 scan(s) done]
2、网络连接
A.X运行后,连接104.16.18.96的80端口,以及208.91.198.143的587端口。如下图所示。
其中80端口连接的是https://whatismyipaddress.com/网站用于获取本地机器的外网IP地址。不过在测试中发现目前该程序无法通过该网站获取IP地址信息,返回403错误。具体如下图所示:
587端口的数据则是SMTP数据包,用来把本地获取的信息发送出去。发送和接收的email地址都是india@lledil.com, 邮件标题为是HawkEye Keylogger | Stealer Records | 机器名| 0FABFBFF000506E3。
获取的数据包如下图所示:
发送的内容经Base64解密后如下,包括本地机器名,操作系统语言与版本,ip地址、安装的杀毒软件和防火墙信息,浏览器密码信息,Mail Messenger密码,Jdownloader密码等。具体如下表所示:
==============================================
Operating System Intel Recovery
==============================================
PC Name: WIN-A4B0N3V4K81
Local Time: 2018/12/21 11:26:25
Installed Language: zh-CN
Net Version: 2.0.50727.5420
Operating System Platform: Win32NT
Operating System Version: 6.1.7601.65536
Operating System: Microsoft Windows 7 旗舰版
Internal IP Address: 192.168.92.144
External IP Address:
Installed Anti-Virus:
Installed Firewall:
==============================================
WEB Browser Password Stealer
==============================================
==============================================
Mail Messenger Password Stealer
==============================================
==============================================
Internet Download Manager Stealer
==============================================
==============================================
JDownloader Password Stealer
==============================================
根据获取的邮箱帐号和密码,登录该邮箱发现了上百个目标。邮箱内保存的是2018年10月以来的数据,有些已经被删除了。如下图所示。
3、启动方式和自保护
A.X运行后,会拷贝自身文件到%appdata%\WindowsUpdate.exe,并启动进程实时保护,如果该目录下WindowsUpdate.exe被删除,则又会生成。此外,还在注册表HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run下生成启动项Windows Update,值为C:\Users\admin\AppData\Roaming\WindowsUpdate.exe,从而确保自启动。
此外,在%appdata%目录下,还生成pid.txt(恶意进程PID)和pidloc.txt(恶意进程可执行文件路径)两个文件。具体如下图所示:
4、域名解析
对smtp.lledil.com域名利用whois进行查询,其结果如下。
四、小结
通过分析,我们可知该文档是一个组合利用cve-2017-11882和cve-2018-0802漏洞的攻击文档,RTF格式通过内嵌EXCEL对象触发两个漏洞。释放运行的PE文件是一个用于搜集用户敏感信息(比如各种浏览器和邮件帐号密码)的恶意文件,敏感信息通过邮件发送的方式回传。通过发送的标题“Hawkeye keylogger|Steal…”,怀疑该PE可能是著名的“Hawkeye Keylogger”,也称为“iSpy Keylogger键盘记录器”,是一种窃取信息的恶意软件,作为恶意软件服务出售。
IoC
DOC文档(RTF):43f97093c3f812dce0e442c9be7a86a5
PE文件(A.X):0ed7129ebd65f08a5c7f1f8fa668b72c
C&C:
smtp.lledil.com
india@lledil.com
原文链接:https://www.anquanke.com/post/id/168455
相关文章
- 3条评论
- 性许卬妄2022-06-05 14:59:02
- 护,如果该目录下WindowsUpdate.exe被删除,则又会生成。此外,还在注册表HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run下生成启动项Windows Update,值为C:\User
- 孤鱼缪败2022-06-05 10:02:54
- u 04th Nov 1999 10:15:20 (GMT)[TimeStamp] 0x38215CB8 -> Thu 04th Nov 1999 10:15:2
- 美咩颇倔2022-06-05 10:33:28
- 图所示。2、静态文档用winhex打开,可以发现第一个package对象,位于 文件的0x2A8A处。其中0x00137158指的是对象的大小,也就是十进制1274200,正是释放的A.X的大小。紧跟其后的就是PE文件,在winhex中我们