[原创]CVE-2017-11882恶意样本调试分析
最近无聊,就在Malware-Traffic-Analysis上找了一个传播Lokibot的恶意邮件

其中的purchase order.PNG是一个链接,点击将会下载一个rtf漏洞利用文档,根据VT结果。使用了CVE-2017-11882公式漏洞。通过rtfobj稍微查看了一下也证实了这一点。

该漏洞利用文档使用了简单的rtf混淆,如下。

使用rtfdump.py对列出该rtf中的所有控制字。

这里有好几个控制字,如第二个\object以及第8个\bin。对\bin进行dump分析,可以看到这个就是公式漏洞的数据。

这里我们手动提取出\bin的数据并且编写一个脚本转换。

对提取出的文件使用010editor进行分析。为了方便分析,这里我编写了一个010editor的temple文件。

运行模板之后,得到如下的文件分析结果。

对该样本使用windbg调试,通过gflags添加注册表,当EQNEDT32.exe执行的时候,windbg附加。我们知道cve-2017-11882的触发地址在41160F当中。所以我们在触发漏洞执行链调用4115A7之前下断点,可以看到eax指向的就是我们的shellcode部分。


我们可以看到漏洞触发前的数据。

触发之后,成功将返回地址修改为了0x44F825,并且对应的shellcode也写进去了。

接下来就是对该样本的恶意行为的分析了。我们先看第一阶段的shellcode代码。
第一部分shellcode是为了更好的控制流程,跳出shellcode字节限制。主要使用GlobalLock来获取MTFHerder来进行绕过。


其他的也没有什么了,动态解密数据,得到恶意url以及对应的恶意文件路径等。

解密算法就是一个异或算法如下。

该样本就是一个下载器,下载hxxp://modestworld.top/eaid/eaid.exe到%APPDATA%\eaidproj78364.exe并且执行。


但是该文件已经不存在了,根据该恶意域名,我们看到上面布置了其他的恶意文件如下。

稍微查了一下文件类型之类的,全都是delphi文件,原谅我不想分析delphi了。
本文记录主要是对被混淆了的rtf样本如何分析,并且也顺便温习了11882以及0802这两个洞。昨天看红雨滴团队说啥用了自己写的shellcode提取工具。自己也想写一个,有时间再搞吧。IOC懒得搞了。
注:样本密码为infected.
ref:
https://blog.talosintelligence.com/2018/10/old-dog-new-tricks-analysing-new-rtf_15.html
https://www.anquanke.com/post/id/87311
https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-oleds/3c695db0-943f-48a0-b134-939af3b3a4ca
http://rtf2latex2e.sourceforge.net/MTEF3.html#Header
https://www.anquanke.com/post/id/179908
