新闻快讯
< >

预警:微软零日漏洞CVE-2017-8759已被用于传播恶意软件

E安全9月14日讯 FireEye公司最近发现一份恶意微软Office RTF文档,其中利用到一项SOAP WSDL解析器代码注入漏洞——编号CVE-2017-8759。该漏洞允许恶意人士在解析SOAP WSDL的定义内容期间注入任意代码。FireEye公司对该微软Office文档进行了分析,并发现攻击者能够利用代码注入方式下载并执行一份包含PowerShell指令的Visual Basic脚本。

FireEye公司已经将该漏洞的详细信息与微软方面进行共享,并在协调公布事宜的同时发布了漏洞修复程序以及安全指南,感兴趣的朋友可以点击此处查看。

FireEye公司的邮件、终端与网络产品皆检测到了该恶意文档。

此项漏洞用于攻击俄语用户

此次发现的恶意文档“Проект.doc” (MD5: fe5c4d6bb78e170abf5cf3741868ea4c)可能被用于攻击俄语用户。

在成功利用CVE-2017-8759漏洞之后,该文档下载了多个组件(详见后文)并最终启动了FINSPY(恶意监控软件)载荷(MD5: a7b990d5f57b244dd17e9a937a41e7f5)。

FINSPY恶意软件,亦被称为FinFisher或者WingBird,可作为“合法拦截”方案的一部分进行获取。根据此次以及之前曾经出现的FINSPY使用案例,FireEye表示能够在一定程度上认定此恶意文件被民族国家专门用于针对俄语目标实施网络间谍活动。FireEye公司的动态威胁情报系统通过额外检测发现,尽管可能针对不同的受众群体,但相关活动也许早在2017年7月就已经出现。

CVE-2017-8759 WSDL解析器代码注入

PrintClientProxy方法的WSDL解析器模块中存在一项代码注入漏洞。其中若所提供数据中包含一条CRLF序列,则IsValidUrl无法正常执行验证。如此一来,攻击者即可注入并执行任意代码。图一所示即为漏洞代码的对应部分。

FireEye公司发现零日漏洞CVE-2017-8759:已被用于散布恶意软件FINSPY-E安全

图一:存在漏洞的WSDL解析器

在一条SOAP响应中存在多个address定义时,代码会在首条地址之后插入“//base.ConfigureProxy(this.GetType()”字符串,从而将其余地址注释掉。但如果为地址附加CRLF序列,则CRLF后的代码将不会被注释掉。如图二所示,由于缺少对CRLF的验证,攻击者可向其中注入一个System.Diagnostics.Process.Start方法。由此生成的代码将由.NET框架的csc.exe进行编译,并以DLL的形式被Office可执行文件进行加载。

FireEye公司发现零日漏洞CVE-2017-8759:已被用于散布恶意软件FINSPY-E安全

图二:SOAP定义与所生成代码

真实攻击案例

FireEye公司观察到的攻击活动利用到RTF格式(即富文本格式)文档,且类似于我们之前曾经报道过的CVE-2017-0199(此前WannaCry与Petya利用改漏洞发起勒索攻击)文档。此恶意样本当中包含一个嵌入SOAP标记以简化漏洞利用流程(如图三所示)。

FireEye公司发现零日漏洞CVE-2017-8759:已被用于散布恶意软件FINSPY-E安全

图三:SOAP标记

有效载荷从攻击者控制的服务器处获取恶意SOAP WSDL定义。而立足.NET框架的System.Runtime.Remoting.ni.dll实现的此WSDL解析器则进行内容分析,并在当前目录中生成.cs源代码。.NET框架的csc.exe随后将生成的源代码编译为一套库,名为http[url path].dll。微软Office而后加载此库,整个漏洞利用流程即告完成。图四所示为一套示例恶意源代码库。

FireEye公司发现零日漏洞CVE-2017-8759:已被用于散布恶意软件FINSPY-E安全

图四:所加载的DLL

在成功利用漏洞之后,注入代码会创建一个新的进程,并利用mshta.exe从同一服务器处检索名为“word.db”的HTA脚本。该HTA脚本会将源代码、编译后的DLL以及PDB文件从磁盘中删除,而后下载并执行名为“left.jpg”的FINSPY恶意软件——这里虽然使用.jpg扩展名以误导用户将其视为“图像jpeg”内容,但实际上却属于可执行文件。图五所示为该恶意软件传输流程的PCAP细节信息。

FireEye公司发现零日漏洞CVE-2017-8759:已被用于散布恶意软件FINSPY-E安全

图五:实时请求

该恶意软件将被命名为%appdata%\Microsoft\Windows\OfficeUpdte-KB[ 6位随机数字].exe。图六所示为进程监控器下生成的进程链。

FireEye公司发现零日漏洞CVE-2017-8759:已被用于散布恶意软件FINSPY-E安全

图六:进程创建链

恶意软件

 “left.jpg” (md5: a7b990d5f57b244dd17e9a937a41e7f5)属于FINSPY的一类变种。其利用高度混淆代码、内置虚拟机以及其它反分析技术提升逆向工程难度。此外,它还具备另一种独特的反分析技术,即解析自身完整路径并搜索自身MD5哈希的字符串表达形式。目前各类分析工具以及沙箱机制都会将文件/样本重命名为MD5哈希形式,从而确保其拥有惟一文件名。而此变种则采用“WininetStartupMutex0”作为互斥量实现运行。

第二个传播FINSPY恶意软件的漏洞

CVE-2017-8759是FireEye公司在2017年年内发现的第二项被用于传播FINSPY恶意软件的零日漏洞。现实证明目前市场上存在着大量能够对企业及客户进行“合法拦截”的资源。另外,FINSPY也被销售至多位客户手中,这意味着此项漏洞未来将被用于对付更多潜在目标。

尽管目前还没有观察到相关迹象,但CVE-2017-8759漏洞也可能已经被其他攻击者所掌握。至少可以肯定的是,2017年4月被用于传播FINSPY恶意软件的零日漏洞CVE-2017-0199应该属于经济利益驱动的产物。如果FINSPY背后的使用者是从同一来源获得这两项漏洞,那么相关源代码很有可能也会被出售给其他恶意人士。

E安全注:本文系E安全独家编译报道,转载请联系授权,并保留出处与链接,不得删减内容。联系方式:① 微信号zhu-geliang ②邮箱eapp@easyaq.com
@E安全,最专业的前沿网络安全媒体和产业服务平台,每日提供优质全球网络安全资讯与深度思考,欢迎关注微信公众号「E安全」(EAQapp),或登E安全门户网站www.easyaq.com , 查看更多精彩内容。