FireEye公司最近发现一份恶意微软Office RTF文档,其中利用到一项SOAP WSDL解析器代码注入漏洞CVE-2017-8759,该.NET框架漏洞允许恶意人士在解析SOAP WSDL的定义内容期间注入任意代码。目前绿盟远程安全评估系统(NSFOCUS RSAS)已发布CVE-2017-8759漏洞检测插件包(rsas-vulsys-V6.0R02F01.0706.dat),请用户及时下载升级,避免资产遭受损失。
该检测插件升级包为例行升级包,共新增漏洞140个,目前漏洞总数为 20839个(系统漏洞19981个,web漏洞858个)。其中CVE-2017-8759漏洞插件采用windows 本地登录检测方式。
一、漏洞影响:
CVE-2017-8759漏洞影响. NET 框架, 特别是 SOAP WSDL (Web 服务描述语言) 分析器。该漏洞影响面较大,只要安装了.net和office的windows系统都面临风险。目前以引起国内证券等行业客户的高度重视。
二、漏洞危害:
攻击者想办法让目标用户打开特制的文档或应用程序, 就可以利用该安全漏洞进行远程代码执行 。FireEye公司对该微软Office文档进行了分析,并发现攻击者能够利用代码注入方式下载并执行一份包含PowerShell指令的Visual Basic脚本。目前已发现有攻击者利用漏洞CVE-2017-8759传播FinFisher恶意软件。在 FireEye 最近观察到的攻击中, 一个威胁行为者通过一个名为 “Проект. doc”“Проект.doc” (MD5: fe5c4d6bb78e170abf5cf3741868ea4c)的文件来传递间谍软件,攻击俄语用户。在成功利用CVE-2017-8759漏洞之后,该文档下载了多个组件并最终启动了FINSPY(恶意监控软件,也称为FinFisher或者WingBird,)载荷(MD5: a7b990d5f57b244dd17e9a937a41e7f5)。CVE-2017-8759是FireEye公司在2017年年内发现的第二项被用于传播FINSPY恶意软件的零日漏洞。现实证明目前市场上存在着大量能够对企业及客户进行“合法拦截”的资源。另外,FINSPY也被销售至多位客户手中,这意味着此项漏洞未来将被用于对付更多潜在目标。
三、漏洞原理:
CVE-2017-8759 WSDL解析器代码注入
PrintClientProxy方法的WSDL解析器模块中存在一项代码注入漏洞。其中若所提供数据中包含一条CRLF序列,则IsValidUrl无法正常执行验证。如此一来,攻击者即可注入并执行任意代码。图一所示即为漏洞代码的对应部分。
图一:存在漏洞的WSDL解析器
在一条SOAP响应中存在多个address定义时,代码会在首条地址之后插入“//base.ConfigureProxy(this.GetType()”字符串,从而将其余地址注释掉。但如果为地址附加CRLF序列,则CRLF后的代码将不会被注释掉。如图二所示,由于缺少对CRLF的验证,攻击者可向其中注入一个System.Diagnostics.Process.Start方法。由此生成的代码将由.NET框架的csc.exe进行编译,并以DLL的形式被Office可执行文件进行加载。
图二:SOAP定义与所生成代码
四、漏洞利用:
真实攻击案例
FireEye公司观察到的攻击活动利用到RTF格式(即富文本格式)文档,且类似于我们之前曾经报道过的CVE-2017-0199(此前WannaCry与Petya利用改漏洞发起勒索攻击)文档。此恶意样本当中包含一个嵌入SOAP标记以简化漏洞利用流程(如图三所示)。
图三:SOAP标记
有效载荷从攻击者控制的服务器处获取恶意SOAP WSDL定义。而立足.NET框架的System.Runtime.Remoting.ni.dll实现的此WSDL解析器则进行内容分析,并在当前目录中生成.cs源代码。.NET框架的csc.exe随后将生成的源代码编译为一套库,名为http[url path].dll。微软Office而后加载此库,整个漏洞利用流程即告完成。图四所示为一套示例恶意源代码库。
图四:所加载的DLL
在成功利用漏洞之后,注入代码会创建一个新的进程,并利用mshta.exe从同一服务器处检索名为“word.db”的HTA脚本。该HTA脚本会将源代码、编译后的DLL以及PDB文件从磁盘中删除,而后下载并执行名为“left.jpg”的FINSPY恶意软件——这里虽然使用.jpg扩展名以误导用户将其视为“图像jpeg”内容,但实际上却属于可执行文件。恶意软件 “left.jpg” (md5: a7b990d5f57b244dd17e9a937a41e7f5)属于FINSPY的一类变种。其利用高度混淆代码、内置虚拟机以及其它反分析技术提升逆向工程难度。此外,它还具备另一种独特的反分析技术,即解析自身完整路径并搜索自身MD5哈希的字符串表达形式。目前各类分析工具以及沙箱机制都会将文件/样本重命名为MD5哈希形式,从而确保其拥有惟一文件名。而此变种则采用“WininetStartupMutex0”作为互斥量实现运行。图五所示为该恶意软件传输流程的PCAP细节信息。
图五:实时请求
该恶意软件将被命名为%appdata%\Microsoft\Windows\OfficeUpdte-KB[ 6位随机数字].exe。图六所示为进程监控器下生成的进程链。
图六:进程创建链