一个使用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

(完)