POC:CVE-2017-8570
CVE-2017-8570实际上是一逻辑漏洞,该漏洞利用了OLE中Composite Moniker对象在组合File Moniker对象的过程中,未做安全性检查,以致可以直接运行File Moniker对象指定的ScriptletFile(.sct)脚本文件。
以海莲花组织某样本作为示例。
MD5:72bebba3542bd86dc68a36fda5dbae76
使用rtfdump
工具-f O
选项过滤RTF文档中的OLE对象:

之后结合rtfobj
分析结果判断其.sct
脚本文件位于第213号对象中:

通过-s 213 -H
进行验证:

之后使用输出重定向将结果保存到一文本文件中:

最后由awk
命令结合正则表达式将其中的脚本内容提取出来:

注:此时可以使用Notepad++或者Sublime对脚本内容进行排版处理,以便阅读:

其功能为执行释放到临时目录下的VBS脚本文件。
部分样本是将EXE文件以Package对象的形式包含在RTF文档内:

之后通过SCT脚本去执行该EXE:

笔者针对此情况对原有POC进行了改造(具体见文末):



如此一来,便可将EXE文件以Package对象的形式嵌入到RTF文档中。
生成的RTF文档可以添加到正常RTF文档末尾}
之前以进行伪装:

笔者用以测试的SCT脚本如下:
其中write.exe
是C:\Windows\System32
目录下的正常写字板程序。效果如图:

需要用于多行搜索的正则表达式(grep)
CVE-2017-8570首次公开的野外样本及漏洞分析
Analysis of a CVE-2017-0199 Malicious RTF Document
[培训]科锐逆向工程师培训第53期2025年7月8日开班!