【漏洞预警】一个换行符引发的奥斯卡0day漏洞(CVE-2017-8759)重现——最新的Office高级威胁攻击预警

https://p1.ssl.qhimg.com/t0106b9fded5eaf81ac.jpg

背景

近日,360集团核心安全事业部分析团队发现一个新型的Office文档高级威胁攻击,攻击使用了9月12日补丁刚修复的.NET Framework漏洞,该漏洞在野外被利用时为0day状态,用户打开恶意的Office文档就会中招。该漏洞的技术原理和今年黑客“奥斯卡”Pwnie Awards上的最佳客户端漏洞CVE-2017-0199)如出一辙,不同的是,这次黑客在Offcie文档中嵌入新的Moniker对象,利用的是.net库漏洞,在Office文档中加载执行远程的恶意.NET代码,而整个漏洞的罪魁祸首竞是.NET Framework一个换行符处理失误

攻击影响分析

通过对一系列野外利用样本的服务器文件时间进行追踪分析,我们有理由相信该漏洞的野外利用时间出现时间为2017年8月16日甚至更早,该漏洞在野利用时为0day漏洞状态,目前微软已经紧急发布.net框架补丁修复漏洞。

https://p0.ssl.qhimg.com/t018fc804d90da13b42.png

 该漏洞影响所有主流的.NET Framework版本。由于主流的windows操作系统都默认内置了.net框架,黑客通过office文档嵌入远程的恶意.net代码进行攻击,所有的windows系统及安装了office办公软件的用户都会受到影响。目前该漏洞的细节已经在国外小范围公布,攻击可能会呈泛滥趋势。

Microsoft .NET Framework 4.6.2 

Microsoft .NET Framework 4.6.1 

Microsoft .NET Framework 3.5.1 

Microsoft .NET Framework 4.7

Microsoft .NET Framework 4.6

Microsoft .NET Framework 4.5.2

Microsoft .NET Framework 3.5

Microsoft .NET Framework 2.0 SP2

0day漏洞关键细节分析

在.net库中的SOAP WSDL 解析模块IsValidUrl函数没有正确处理包含回车换行符的情况,导致调用者函数PrintClientProxy存在代码注入执行漏洞。

https://p3.ssl.qhimg.com/t01871a39c02c9dc377.png

调用者函数截图如下

 https://p1.ssl.qhimg.com/t01d884acee95abdf25.png

正常情况下当返回的文件中包含多个soap:address location时PrintClientProxy函数生成的代码只有第一行是有效的,其余行为注释。

但是该部分代码没有考虑soap:address location内容有可能存在换行符,导致注释指令“//”只对第一行生效,其余代码则作为有效代码正常执行。

恶意样本会构造如下图输入的soap xml数据

https://p0.ssl.qhimg.com/t01e96078f797cb8ecb.png

由于存在漏洞的解析库对soap xml数据中的换行符处理失误,csc.exe会编译其注入的.net代码运行

https://p3.ssl.qhimg.com/t013e81fc1df99e1243.png

样本漏洞攻击流程分析

下面我们摘取该漏洞的某个野外利用样本进行分析 ,该漏洞的真实文档格式为rtf,样本利用了cve-2017-0199一样的objupdate对象更新机制,使用SOAP Moniker从远程服务器拉取一个SOAP XML文件,指定 .net库的SOAP WSDL模块解析。

 https://p3.ssl.qhimg.com/t012fa25d1221c65ca2.png

https://p4.ssl.qhimg.com/t016219bc4aa65a1593.png

漏洞的完整执行流如下:

https://p3.ssl.qhimg.com/t01243abd17dc25c0fb.png

样本攻击脚本荷载分析

恶意的soap xml文件被拉取到本地后,SOAP WSDL 库解析漏洞触发,csc.exe会自动编译执行其中的.net代码。

https://p0.ssl.qhimg.com/t0177d62f1c982dbdb4.png

该代码使用System.Diagnostics.Process.Start接口调用mshta.exe加载远程的hta脚本执行.

https://p4.ssl.qhimg.com/t01f0b60548c029af30.png

恶意hta脚本嵌入在一个db后缀的二进制流文件中,起到了一定的混淆伪装作用。

https://p2.ssl.qhimg.com/t018394f5ed87b2f158.png

最终,该样本会利用powershell下载运行伪装成offcie补丁文件名的PE荷载。

https://p0.ssl.qhimg.com/t01192e7d9ceb289ac2.png

 

样本PE荷载简要分析 

通过对PE荷载的分析,我们发现该样本该样本使用了重度混淆的代码和虚拟机技术专门阻止研究人员分析,该虚拟机加密框架较复杂,大致流程如下。

 https://p0.ssl.qhimg.com/t01e73589993bbcaf11.jpg

最终我们确定该样本属于FINSPY木马的变种,该木马最早出自英国间谍软件公司Gamma ,可以窃取键盘输入信息、Skype对话、利用对方的网络摄像头进行视频监控等。该样本被爆出过的控制界面:

https://p5.ssl.qhimg.com/t01c46cad74d9569076.png

总结及防护建议

从2017年初至今,黑客针对广大用户日常必用办公软件进行的0day漏洞攻击呈增长趋势,安全漏洞类型趋向于CVE-2017-0199和CVE-2017-8759这样能够稳定组装利用的逻辑漏洞,使黑客的攻击成本大大缩减,相关的0day漏洞利用容易大规模传播泛滥。针对该漏洞的攻击样本,360安全卫士已在第一时间跟进查杀,请广大用户近期不要打开来路不明的office文档,同时相关单位也需要警惕此类0day漏洞的定向攻击,并使用360安全卫士安装漏洞补丁和防御可能的漏洞攻击。

https://p3.ssl.qhimg.com/t01bc2fc8ab9fb2b095.png

(完)