POC:CVE-2017-8570
CVE-2017-8570实际上是一逻辑漏洞,该漏洞利用了OLE中Composite Moniker对象在组合File Moniker对象的过程中,未做安全性检查,以致可以直接运行File Moniker对象指定的ScriptletFile(.sct)脚本文件。
以海莲花组织某样本作为示例。
MD5:72bebba3542bd86dc68a36fda5dbae76
使用rtfdump工具-f O选项过滤RTF文档中的OLE对象:
rtfdump
-f O
之后结合rtfobj分析结果判断其.sct脚本文件位于第213号对象中:
rtfobj
.sct
通过-s 213 -H进行验证:
-s 213 -H
之后使用输出重定向将结果保存到一文本文件中:
最后由awk命令结合正则表达式将其中的脚本内容提取出来:
awk
注:此时可以使用Notepad++或者Sublime对脚本内容进行排版处理,以便阅读:
其功能为执行释放到临时目录下的VBS脚本文件。
部分样本是将EXE文件以Package对象的形式包含在RTF文档内:
之后通过SCT脚本去执行该EXE:
笔者针对此情况对原有POC进行了改造(具体见文末):
如此一来,便可将EXE文件以Package对象的形式嵌入到RTF文档中。
生成的RTF文档可以添加到正常RTF文档末尾}之前以进行伪装:
}
笔者用以测试的SCT脚本如下:
其中write.exe是C:\Windows\System32目录下的正常写字板程序。效果如图:
write.exe
C:\Windows\System32
需要用于多行搜索的正则表达式(grep)
CVE-2017-8570首次公开的野外样本及漏洞分析
Analysis of a CVE-2017-0199 Malicious RTF Document
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课