0x00 背景介绍
在高级威胁攻击中,黑客远程投递入侵客户端最喜欢的漏洞是office文档漏洞,就在刚刚结束的黑帽子大会上,最佳客户端安全漏洞奖颁给了CVE-2017-0199漏洞,这个漏洞是时下office漏洞领域最热门的安全漏洞,最佳客户端安全漏洞这个荣誉归于Ryan Hanson、Haifei li、Bing Sun以及未知的黑客。
CVE-2017-0199是Office系列办公软件中的一个逻辑漏洞,和常规的内存破坏型漏洞不同,这类漏洞无需复杂的利用手法,直接就可以在office文档中运行任意的恶意脚本,使用起来稳定可靠。微软在今年4月安全更新中对CVE-2017-0199漏洞进行了修复,但安全补丁的修复及防御仍然可以绕过,在7月微软的安全更新中又修复了同样类型的新漏洞CVE-2017-8570。在Syscan360 2017西雅图安全会议上,Haifei li和Bing Sun的议题《Moniker魔法:直接在Microsoft Office中运行脚本》详细解析了这类漏洞的原理,本文就不再赘述,下面开始着重分析这些漏洞的在野利用情况。
0x01 漏洞概述
CVE-2017-0199和CVE-2017-8570是Office系列办公软件中的逻辑漏洞,和常规的内存破坏型漏洞不同,这类漏洞无需复杂的利用手法,直接就可以在office文档中运行任意的恶意脚本,使用起来稳定可靠。
CVE-2017-0199漏洞利用OFFICE OLE对象链接技术,将包裹的恶意链接对象嵌在文档中,OFFICE调用URL Moniker(COM对象)将恶意链接指向的HTA文件下载到本地, URL Moniker通过识别响应头中content-type的字段信息最后调用mshta.exe将下载到的HTA文件执行起来,同时还存在Script Moniker的利用方式,攻击者使用PowerPoint播放动画期间会激活该对象,从而执行sct脚本(Windows Script Component)文件。
CVE-2017-8570漏洞是利用复合Moniker绕过了CVE-2017-0199的补丁针对Script Moniker和URL Moniker相关classid的拦截,目前野外暂未发现攻击样本。
0x02 漏洞攻击面影响
CVE-2017-0199
Microsoft Office 2007 Service Pack 3
Microsoft Office 2010 Service Pack 2 (32-bit editions)
Microsoft Office 2010 Service Pack 2 (64-bit editions)
Microsoft Office 2013 Service Pack 1 (32-bit editions)
Microsoft Office 2013 Service Pack 1 (64-bit editions)
Microsoft Office 2016 (32-bit edition)
Microsoft Office 2016 (64-bit edition)
Windows 7 for 32-bit Systems Service Pack 1
Windows 7 for x64-based Systems Service Pack 1
Windows Server 2008 for 32-bit Systems Service Pack 2
Windows Server 2008 for 32-bit Systems Service Pack 2 (Server Core installation)
Windows Server 2008 for Itanium-Based Systems Service Pack 2
Windows Server 2008 for x64-based Systems Service Pack 2
Windows Server 2008 for x64-based Systems Service Pack 2 (Server Core installation)
Windows Server 2008 R2 for Itanium-Based Systems Service Pack 1
Windows Server 2008 R2 for x64-based Systems Service Pack 1
Windows Server 2008 R2 for x64-based Systems Service Pack 1 (Server Core installation)
Windows Server 2012
Windows Server 2012 (Server Core installation)
Windows Vista Service Pack 2
Windows Vista x64 Edition Service Pack 2
CVE-2017-8570
Microsoft Office 2007 Service Pack 3
Microsoft Office 2010 Service Pack 2 (32-bit editions)
Microsoft Office 2010 Service Pack 2 (64-bit editions)
Microsoft Office 2013 RT Service Pack 1
Microsoft Office 2013 Service Pack 1 (32-bit editions)
Microsoft Office 2013 Service Pack 1 (64-bit editions)
Microsoft Office 2016 (32-bit edition)
Microsoft Office 2016 (64-bit edition)
0x03 漏洞详情
野外利用的第一个RTF版本
CVE-2017-0199漏洞在第一次被公开时,野外最早利用的样本是以word文档的形成进行传播利用,由于office文档后缀关联的宽松解析特性,更改其他文档后缀名,攻击仍然可以成功,所以野外利用的大部分恶意文档的真实文件格式是RTF格式,但恶意文档的后缀名却是 doc 、docx等后缀,该攻击具有较强的伪装欺骗特性。在野外利用样本文件格式中有一个关键字段objupdate,这个字段的作用是自动更新对象,当受害者打开office文档时就会加载远程URL的对象,对远程服务器触发一个HTTP请求,恶意服务器会对针对客户端的http请求强制返回Content-type为application/hta响应,最终客户端office进程会将远程的文件下载当作hta脚本运行,整个攻击过程稳定且不需要受害者的任何交互操作。
野外利用的第二个PPSX版本
由于RTF版本的漏洞利用大量使用,各家安全软件检出率也都比较高,攻击者开始转向另外一种office文档格式进行攻击,攻击者发现ppsx格式的幻灯片文档也可以无交互触发漏洞,该利用方式的原理是利用幻灯片的动画事件,当幻灯片的一些预定义事件触发时可以自动触发导致漏洞利用。
如下图,一个流行的攻击样本中嵌入的恶意动画事件:
事件会关联一个olelink对象,原理类似rtf版本,如下xml中的字段。
但对象会嵌入的是一个带有script协议头的远程地址,而url地址中的XML文件是一个恶意sct脚本。
当受害者打开恶意幻灯片文档时就会自动加载远程URL的对象,对远程服务器发起一个HTTP请求将文件下载到本地,最终客户端office进程会将下载到本地的文件当作sct脚本执行。
最新流行的第三个DOCX版本
近期我们发现有部分真实文件格式是Docx格式的文档加入了CVE-2017-0199的漏洞利用,攻击者非常巧妙的将CVE-2017-0199漏洞的RTF文件作为一个源嵌入到了Docx格式的文档中,这样导致docx文件在打开时是自动去远程获取包含0199漏洞的rtf文件,再触发后面的一连串攻击行为,这样的攻击增加了安全软件的查杀难度,一些杀毒软件毫无察觉!
如下图,我们会发现docx格式的文档嵌入了一个远程的文档对象:
打开文档后会自动打开远程的恶意RTF文件!
我们可以看到在野利用的RTF样本在VT上的检出率为31/59。
而最新流行的DOCX版本的检出率仅为5/59。
最新发现的“乌龙”样本
上周我们在外界发现了多例标注为CVE-2017-8570的office幻灯片文档恶意样本,同时有安全厂商宣称第一时间捕获了最新的office漏洞,但经过分析我们发现该样本仍然是CVE-2017-0199漏洞野外利用的第二个PPSX版本,通过对一例典型样本进行分析,我们发现样本使用的payload是Loki Bot窃密类型的木马病毒,是一起有针对性的窃密攻击。
该样本使用powershell下载执行shell.exe
下载地址为hxxp://192.166.218.230:3550/ratman.exe
Shell.exe 是一个混淆的.NET程序
Shell.exe会内存解密执行Loki Bot功能,这时Loki Bot木马会窃取各种软件的信息。
如,窃取Firefox信息
窃取chrome 360Browser等浏览器信息
窃取各类FTP软件的信息
最后提交窃取的相关数据到远程服务器
hxxp://www.allstroyka.eleko.by/libraries/domit/dub/fre.php
0x04 修复建议
目前流行的office高级威胁漏洞趋向于稳定的逻辑漏洞,CVE-2017-0199仍然是主流利用漏洞类型,该漏洞会针对不同文档格式利用有不同变种,同时新的CVE-2017-8570漏洞也在蠢蠢欲动。面对恶意文档攻击,广大用户需要提高安全意识,不要轻易打开不明来路的office文档,同时针对如下流行的office办公软件,使用360安全卫士安装最新的安全补丁,修复CVE-2017-0199和CVE-2017-8570漏洞。
0x05 时间线
0x06 参考文档
https://portal.msrc.microsoft.com/en-us/security-guidance/advisory/CVE-2017-8570
https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2017-0199