Word漏洞CVE-2017-0199剖析,微软的补丁你装了吗?

前言

近期,FireEye检测到了一种利用漏洞CVE-2017-0199的恶意OfficeRTF文档——本周早前FreeBuf也报道了这一漏洞,在无需启用Word宏的情况下,打开恶意RFT文档就可感染恶意程序。当用户打开嵌入了漏洞利用代码的恶意文档之后,这个漏洞将允许攻击者在目标设备中下载并执行一个包含PowerShell命令的Visual Basic脚本,而FireEye所发现的这个恶意Office文档正是利用了漏洞CVE-2017-0199来在受感染设备上下载并执行恶意Payload。

目前,FireEye已经将漏洞详情上报给了微软公司,并且正在根据微软补丁的发布时间来协调漏洞披露的相关事宜。从近期一些安全机构的分析来看,该漏洞已经被攻击者应用到了攻击中,FreeBuf的安全快讯就报道了该漏洞已经被应用到Dridex银行木马的部署;乌克兰冲突的网络间谍活动中该漏洞也被攻击者利用。

在漏洞补丁发布之前,这个漏洞可以绕过绝大多数的防护机制,但是FireEye的邮件和网络产品成功检测到了这种恶意文档。FireEye建议广大Office用户尽快安装微软公司提供的这份补丁。

攻击场景

攻击的整个过程如下:

1. 攻击者向目标用户发送一个嵌入了OLE2文件(对象链接)的Word文档。 2. 当用户打开文档之后,winword.exe会向远程服务器发送一个HTTP请求,并获取一个恶意HTA文件。 3. 服务器返回的这个文件是一个伪造的RTF文件,其中嵌入了恶意脚本。 4. Winword.exe会通过一个COM对象来查询HTA文件处理器,而这一行为将会使微软HTA应用(mshta.exe)加载并执行恶意脚本。

在FireEye所发现的两个恶意文档中,嵌入在其中的恶意脚本首先会终止winword.exe进程,然后下载额外的Payload,最后加载恶意代码。原始的winword.exe进程将会被终止,恶意VB脚本将会隐藏如下图所示的用户弹窗:

文件1-(MD5:5ebfd13250dd0408e3de594e419f9e01)

FireEye所识别出的第一个恶意文档主要有三个操作阶段。首先,一个嵌入在文档中的OLE2链接对象会让winword.exe访问下面这个URL地址,并下载第一阶段所需要的恶意HTA文件:

http[:]//46.102.152[.]129/template.doc

下载完成之后,“application/hta”处理器会对恶意HTA文件进行处理。下图中选中的那一行显示的是第一次恶意文件下载过程,随后还会下载额外的恶意Payload:

下载完成之后,临时文件会被存储在用户的临时网络文件夹内,文件名为template[?].hta,其中的[?]为当前运行时间。

逻辑漏洞

Mshta.exe负责处理和解析Content-Type“application/hta”的内容,并执行脚本代码。下图显示的是winword.exe为“application/hta”处理器请求CLSID的注册表键值。

Winword.exe会向DCOMLaunch服务发送一次请求,并通过svchost.exe进程来让DCOMLaunch执行mshta.exe。接下来,Mshta.exe将会负责执行嵌入在恶意HTA文档中的脚本代码。下图显示的是第一阶段所下载的VB脚本代码(已经过凡混淆处理):

上图所示的脚本代码会执行下列恶意行为:

1. 通过taskkill.exe终止winword.exe进程,并隐藏之前图片所显示的用户弹窗。 2. 从地址http[:]//www.modani[.]com/media/wysiwyg/ww.vbs下载一个VBScript文件,保存路径为%appdata%\Microsoft\Windows\maintenance.vbs。 3. 从地址http[:]//www.modani[.]com/media/wysiwyg/questions.doc下载一个钓鱼文件,保存路径为%temp%\document.doc。 4. 让Microsoft Word重启。 5. 执行VBScript文件:%appdata%\Microsoft\Windows\maintenance.vbs 6. 打开钓鱼文件%temp%\document.doc,隐藏恶意活动。

其中,恶意VBScript文件将负责执行下面这两个任务:

1. 向%TMP%/eoobvfwiglhiliqougukgm.js写入一个嵌入式脚本(经过混淆处理)。 2. 执行脚本代码。

经过混淆的eoobvfwiglhiliqougukgm.js脚本负责执行以下三个任务:

1. 尝试将自己从系统中删除。 2. 尝试下载http[:]//www.modani[.]com/media/wysiwyg/wood.exe,并将文件保存在%TMP%\dcihprianeeyirdeuceulx.exe。 3. 运行%TMP%\dcihprianeeyirdeuceulx.exe

下图显示的是进程的执行链:

这一恶意软件最终所使用的payload为LATENTBOT恶意软件家族的一个新型变种。下图显示的是第一个文档文件的元数据:

LATENTBOT Payload

LATENTBOT是一款高度混淆化的BOT,从2013年起就已经得到了网络犯罪分子的青睐,而且与第一个文档有关的Payload是LATENTBOT恶意软件家族的一个新型变种。这种新版本的LATENTBOT在攻击WindowsXP(x86)和Windows7系统时采用的是与之前版本不同的注入机制:

1. Attrib.exe-这个恶意bot会调用Attrib.exe,在映射attrib.exe的地址空间时使用的是ZwMapViewOfSection()。 2. Svchost代码注入-Attrib.exe会以挂起模式运行svchost.exe进程,并通过调用ZwMapViewOfSection()向内存空间注入恶意代码。 3. 控制转移-接下来,它会使用SetThreadContext()修改主线程的OEP,并触发代码执行。 4. 浏览器注入-在NtMapViewOfSection()的帮助下使用类似的方法向默认浏览器中注入Payload。

在Windows7以及之后版本的操作系统中,恶意bot并不会使用attrib.exe,而是在NtMapViewOfSection()的帮助下利用恶意Payload来启动默认浏览器,并向svchost.exe中注入恶意代码。

注入成功之后,这个变种会与下面这台远程命令控制服务器进行通信:

连接成功之后,LATENTBOT会生成一个信标(beacon)。下图所示即为一个经过解码的信标,其版本号为5015:

在我们对样本进行分析时,这台C2服务器已经下线。在2017年4月10日时,托管在www.modani[.]com/media/wysiwyg/wood.exe的恶意软件已被更新,而C2服务器的地址也改成了217.12.203[.]100。

文档2-(MD5:C10DABB05A38EDD8A9A0DDDA1C9AF10E)

FireEye所识别出的第二个恶意文档主要会进行两个阶段的恶意活动。首先,它会访问下面这个地址来下载第一阶段所需使用的恶意HTA文件:

http[:]//95.141.38[.]110/mo/dnr/tmp/template.doc

这个文件会下载到用户的临时网络文件目录内,并以template[?].hta明明,其中的[?]为当前运行时间。下载完成之后,winword.exe会利用mshta.exe来解析文件,mshta.exe会搜索文件中的<script></script>标签,并执行标签内的脚本代码。下图显示的是经过反混淆的脚本代码:

上图显示的代码会进行以下几种恶意操作:

1. 通过taskkill.exe终止winword.exe进程,并隐藏之前图片所显示的用户弹窗。 2. 从http[:]//95.141.38[.]110/mo/dnr/copy.jpg下载并执行恶意文件,保存路径为%appdata%\Microsoft\Windows\StartMenu\Programs\Startup\winword.exe 3. 下载http[:]//95.141.38[.]110/mo/dnr/docu.doc,保存路径为%temp%\document.doc 4. 让Microsoft Word重启。 5. 执行恶意Payload,路径为%appdata%\Microsoft\Windows\StartMenu\Programs\Startup\winword.exe 6. 打开钓鱼文件%temp%\document.doc,隐藏恶意活动。

在对恶意Payload进行了分析之后,我们发现它是WingBird的一个变种,而这种恶意软件与FinFisher的性质十分相似。需要注意的是,这款高度混淆化的恶意软件采用了大量反分析机制,关于该恶意软件样本的详细内容请参考Artem的这篇文章。

概括总结

FireEye在Microsoft Word中发现了一个漏洞(CVE-2017-0199),这个漏洞将允许攻击者远程执行恶意VBScript脚本。这是一个逻辑漏洞,而且目前大多数安全缓解方案都无法处理针对这种漏洞的攻击活动。当恶意脚本运行之后,它会下载并执行恶意Payload,并向用户显示一个钓鱼文档。我们所检测到的两个恶意文档都会执行相应的恶意Payload,其中一个包含LATENTBOT,而另一个则包含WingBird/FinFisher。虽然恶意文档中仅包含一个指向攻击者服务器的链接地址,但FireEye的MVX引擎仍然成功检测到了这种多阶段的攻击活动,不过微软公司已经发布了相应的更新补丁,我们也建议广大用户尽快对自己的Office软件进行升级。

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2017-04-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Youngxj

php在线PIng接口源码

41130
来自专栏北京马哥教育

11个国内外免费域名解析服务

 一般域名使用注册商提供的域名解析服务虽然方便,但功能大多有限,特别是目前国内还会针对某些DNS服务器进行屏蔽,造成网站无法解析的情况出现,因此,使用第三方域名...

3.3K140
来自专栏ytkah

帝国cms文章页调用当前文章URL如何操作?

  前面我们讨论过dedecms文章页调用地址(当前文章URL)如何操作,作为同台竞技的帝国cms也能在文章页调用当前文章URL吗?答案是肯定的!那就随ytka...

61140
来自专栏拂晓风起

用SonBuddy搭建无线局域网,共享上网。(SONBuddy常见问题,无线组网,共享,上网,笔记本)

11840
来自专栏大数据架构师专家

docker pull 下载加速-2018

使用docker pull,命令下载镜像太慢了,默认是从国外的,本文记录下如何配置国内阿里云竞相加速方式。文档力求简单.

38320
来自专栏偏前端工程师的驿站

CentOS6.5菜鸟之旅:安装Realtek无线网卡驱动

一、前言                                       CentOS6.5不像CentOS7和Unbuntu那样自动安装好了无线网...

38670
来自专栏农夫安全

Discuz!X ≤3.4 任意文件删除漏洞复现+GetWebshell

今天看到一位师傅发了一篇分析的文章: 【漏洞分析】Discuz!X ≤3.4 任意文件删除漏洞分析 复现的话需要源码在网上还是找到了 那我们根据文章所知的几个步...

87070
来自专栏walterlv - 吕毅的博客

Git 更安全的强制推送,--force-with-lease

发布于 2018-05-07 11:16 更新于 2018-09...

19720
来自专栏FreeBuf

LaserCrack:一款可扩展的暴力破解框架

lasercrack是一款爆力破解工具,现如今市面上常见的暴力工具如hydra,medusa都有着不错的破解效率,不过我还没有找到ruby写的,一方面是想从原理...

15020
来自专栏FreeBuf

一个人的武林:内网渗透测试思路(二)

写在前面 跟web渗透(上一篇)不同,内网渗透需要更多的随机性和突破口,情况较为复杂,遇到障碍,有时可以换种思路突破,很多时候则无奈的只能止步于此。下面分享一些...

41950

扫码关注云+社区

领取腾讯云代金券