win10缺少d3dx926dll (win10缺少d3dx9_43.dll)

译者:紫曦归来

预估稿费:200RMB

提交方式:将邮件发送至linwei#360.cn,或登录网页版在线投稿

简介

今年4月曝光CVE-2017-0199漏洞可直接打开,无需用户交互Word可以通过文档HTA脚本执行任何代码。这个漏洞的主要原因是Word在处理内嵌OLE2LINK当对象通过网络更新时,对象没有正确处理Content-Type逻辑漏洞。

近日,Cisco Talos该团队发现黑客组织将CVE-2017-0199漏洞及早前CVE-合并2012-0158漏洞逃避Word安全提示,或使用不同的机制来达到强制执行的目的。

近日,Cisco Talos该团队发现黑客组织将CVE-2017-0199漏洞及早前CVE-合并2012-0158漏洞逃避Word安全提示,或使用不同的机制来实现强制执行的目的。另一种可能性是,黑客只是想测试一个新的漏洞概念。但无论目的如何,使用组合漏洞的黑客都犯了错误,导致攻击效果远低于预期。

研究人员通过分析组合漏洞的文档载荷,发现嵌入式OLE2LINK对象有被利用的潜力,除了可以用于Word也可用于其他文档。但目前,公众对此的理解显然还不够。

目前,黑客已经开始寻找绕过系统的安全警告。本报告详细分析了黑客如何合并CVE-2017-0199和CVE-2012-0158两个漏洞,并将其置于感染链中。该报告还将分析组合漏洞失败的原因。

虽然组合漏洞的攻击失败了,但这种尝试确实是一种开创性的新尝试。攻击者试图利用它CVE-以2017-0199为挡箭牌,绕过系统提示。但从目前的效果来看,这种尝试效果不大,需要进一步改进。

标准CVE-2017-0199漏洞利用

标准的CVE-2017-0199漏洞一般包括邮件分发和嵌入式恶意脚本的假冒RTF文件。攻击者通过电子邮件向目标用户发送OLE嵌入式链接对象Microsoft Word文档。

图1:标准CVE-2017-0199漏洞

当用户打开文档时,winword.exe将发送到远程服务器HTTP为了恶意HTA文件。带嵌入式恶意脚本的服务器返回文件是假的RTF文件。winword.exe通过COM对象查找application/hta文件处理程序,导致Microsoft HTA应用程序(mshta.exe)加载并执行恶意脚本。恶意脚本将终止winword.exe下载剩余的进程payload,并加载诱饵文件。原始终止的原因winword.exe这个过程过程OLE2link用户提示的生成。如图1所示。

图2:Word提示给用户

升级后的CVE-2017-0199漏洞

攻击者这次是对的CVE-2017-0199年漏洞升级,黑客攻击从一封包含恶意程序的电子邮件开始。电子邮件采用一般的诱惑手段,鼓励用户打开并阅读包含恶意程序的附件。包含恶意程序的垃圾邮件通常伪装成用户合作伙伴的采购订单。

图3:发起攻击的邮件示例

邮件的附件是一个含有OLE嵌入式链接对象RTF文件名:hxxp://multplelabs[dot]com/ema/order.doc)。在这种情况下,远程文件的mime类型不是application/hta而变为了application/msword。

其中一个Word研究人员在研究样本时发现了系统显示CVE-在系统提示2017-0199之前,word将自动转换下载文档的格式。在这之后,word程序将自动暂停并最终崩溃(如下图所示)。

图4:Word程序崩溃

Word程序的崩溃不是因CVE-由于2017-0199年的漏洞,CVE-2012-0158漏洞。下图所示即MSComctlLib.ListViewCtrl.2 ActiveX嵌入式指令是典型的CVE-2012-0158漏洞。指令由一串ROP当漏洞被激活时,链条开始自动运行。在ROP在链设置正确的权限后,漏洞指令的第一阶段开始自动执行。

图5:CVE-2012-0158漏洞第一阶段指令

CVE-2012-0158漏洞第一阶段指令就是导致Word崩溃的罪魁祸首!但也许是因为攻击者在技术上还存在不足,导致后续漏洞运行出现问题。

该shellcode将调用数个API通过暴力破解文件句柄号函数地址(handle number)来遍历所有文件。这个过程从句柄号为0的文件开始,每次增加4个句柄号打开新文件。若句柄存在,shellcode将利用GetFileSize API函数检测文件的大小。若文件大小符合预期,shellcode文件类型检测将被记录下来。

图6:检查文档大小,确定文档类型

漏洞指令的错误在于,如果发现是一个错误RTF文件,然后满足所有条件,找到这个RTF文件还将包含另一串指令。如果寻找到的文档类型和大小满足要求,那么下一个步骤就是读取该文档,以寻找下一串指令。但这一步在我们的实验中失败了,因为原始的CVE-文件还存储在系统中,使用2017-0199漏洞。本文件符合上述条件。由于CVE-2017-0199年漏洞利用文件CVE-2012-0158文件打开,CVE-文件的句柄较小,导致他首先被读取。

图7:第一阶段指令开始搜索下一阶段指令标记

漏洞指令开始在错误的文档中搜索下一个指令的标记0xfefefefefeffffffff,这最终会导致内存保护错误(memory protection error)。如果漏洞制造商有更好的技术,他会意识到这个错误并相应地纠正它。因为只要两个漏洞同时运行,文件就会成功运行。

一种改进方法是修改单个字节,更严格地修改漏洞命令中判断文件大小的命令,以便在搜索时排除CVE-2017-0199漏洞利用文件的搜索。另一种方法,有点困难,这种方法可以指令不在RTF在文件中搜索下一个命令标记时,假设Word符合条件的已打开RTF文件。

假如没有其他打开的RTF文件,CVE-漏洞将于2012-0158自动执行。因此,为了保证研究的完整性,我们研究了剩余部分。

第二阶段的shellcode

第二阶段的shellcode稍微复杂一点,先调用。ntdll.dll中的必需API函数。API当计算机处于悬挂状态时,通常使用函数来创建系统过程svchost.exe,以及利用最终阶段的“下载和执行” shellcode重写初始入口点,最终植入可执行payload。

图8:调用ntdll.dll的API函数注入最后阶段shellcode,同时恢复svchost.exe进程

写入svchost.exe最后阶段的过程shellcode会使用UrlDownloadToFile API函数从C&C将可执行文件下载到下载到临时文件夹中,并命名为此(%temp%\ ame.exe),同时再调用ShellExecute最终注入payload。

图9:下载和执行阶段:

通过监控C&C可以知道以前下载的服务器的流量payload实际上是一个基础VB脚本木马施放程序(dropper),包含有旧版Ramnit 并且运行着木马Lokibot。Ramnit这是一种非常常见的信息窃取恶意软件,可以自行复制。它还包含rootkit,帮助它避免杀毒软件检测,具有很强的隐蔽性。Ramnit这是一种非常常见的信息窃取恶意软件,可以自行复制。它还包含rootkit,帮助它避免杀毒软件检测,具有很强的隐蔽性。本博客文章没有深入讨论恶意软件的这一特殊部分。虽然已经有几年了,但是Talos团队仍然可以经常Ramnit恶意家庭软件。攻击者可能想在这次攻击中发动Lokibot攻击,但其目标碰巧被错误感染了Ramnit木马。

图10:multplelabs.com网站的DNS活动情况

携带恶意软件的域名及其域名C&C服务器于2016年10月注册,看起来像一个入侵的网站,尽管它似乎是其他的Lokibot服务于攻击活动。该站点的DNS活动有两个高峰,说明恶意邮件活动两次失败。从这里的数据来看,感染系统和C&C无通信活动增加的服务器。

相关的DNS该活动使我们确认了我们的发现,并为攻击的失败提供了证据。

结论

CVE-垃圾邮件包含恶意软件最常用的漏洞之一是2017-0199。此前的研究表明,网络攻击者甚至超过了使用它的频率CVE-2012-0158漏洞。

在本博客中,我们分析了上述两个漏洞同时合并的情况,发动单一网络攻击。攻击者过程中,攻击者犯了一个重大错误,即阻止它Ramnit payload下载和执行。

图11:组合攻击试验的各个阶段

我们很好奇,为什么攻击者选择同时合并新旧漏洞?如果目标系统有任何处理补丁的漏洞,这种组合攻击将被瓦解。同时,如果目标系统确实存在CVE-2012-0158漏洞,攻击者应该更容易发动针对单一漏洞的攻击活动。

我们猜测攻击者使用这种合并攻击手段Word弹出对话框,引起被攻击目标的怀疑。另一种可能是攻击者打算通过这种方式避免行为检测系统,从而萌生Word文件中组合Ole2Link以及HTA文件设计。

攻击不成功,说明攻击者在控制阶段缺乏相关测试或手法不精。然而,我们可以看到攻击者在寻求利用 CVE-以2017-0199漏洞为攻击手段,避免用户检测到的试验精神。此次试验的攻击可能并未奏效,但未来的攻击中或许就会将其实现。

IOCs

文件

5ae2f13707ee38e4675ad1bc016b19875ee32312227103d6f202874d8543fc2e - CVE-2017-0199

6a84e5fd6c9b2c1685efc7ac8d763048913bad2e767b4958e7b40b4488bacf80 - CVE-2012-0158

可执行文件

351aec22d926b4fb7efc7bafae9d1603962cadf0aed1e35b1ab4aad237723474

f34e5af97ccb3574f7d5343246138daf979bfd1f9c37590e9a41f6420ddb3bb6

43624bf57a9c7ec345d786355bb56ca9f76c226380302855c61277bdc490fdfe

d4fbca06989a074133a459c284d79e979293625262a59fbd8b91825dbfbe2a13

URLs

hxxp://multplelabs[dot]com/ema/order.doc - CVE-2012-0158

hxxp://multplelabs[dot]com/ema/nextyl.exe - dropper

hxxp://multplelabs[dot]com/freem/50/fre.php - Lokibot C2