翻译:shan66
预估稿费:200RMB
投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿
前言
FireEye最近检测到利用CVE-2017-0199安全漏洞的恶意Microsoft Office RTF文档,要知道CVE-2017-0199可是此前尚未公开的漏洞。当用户打开包含该漏洞利用代码的文档时,恶意代码就会下载并执行包含PowerShell命令的Visual Basic脚本。 FireEye已经发现了一些通过CVE-2017-0199漏洞下载并执行各种臭名昭著的恶意软件系列的有效载荷的Office文档。
FireEye与Microsoft分享了该漏洞的详细信息,并通过协调,根据Microsoft公司发布相应的补丁程序的时间来选择该漏洞的公开披露时机,具体情况读者可以从这里找到。
在该漏洞的补丁发布之前,该漏洞的利用代码能够绕过大多数安全措施;然而,FireEye电子邮件和网络产品仍然检测到了相关的恶意文件。 FireEye建议Microsoft Office用户从Microsoft下载安装相应的补丁程序。
攻击场景
攻击的具体方式如下所示:
1. 攻击者通过电子邮件向目标用户发送含有OLE2嵌入式链接对象的Microsoft Word文档
2. 当用户打开文档时,winword.exe将会向远程服务器发出HTTP请求,以索取恶意HTA文件
3. 服务器返回的文件是一个带有嵌入式恶意脚本的假RTF文件
4. Winword.exe通过COM对象查找application / hta的文件处理程序,从而导致Microsoft HTA应用程序(mshta.exe)加载并执行恶意脚本
根据我们之前发现的两个文档来看,其恶意脚本将终止winword.exe进程,下载额外的有效载荷,并加载诱饵文件。之所以要终止原始的winword.exe进程,是为了掩盖OLE2link生成的用户提示。该提示具体如图1所示。
图1:Visual Basic脚本隐藏的用户提示
文件1——(MD5: 5ebfd13250dd0408e3de594e419f9e01)
对于FireEye发现的第一个恶意文件来说,攻击过程分为三个阶段。 首先,嵌入的OLE2链接对象会令winword.exe通过以下URL下载第一阶段的恶意HTA文件:
http[:]//46.102.152[.]129/template.doc
下载之后,这个恶意的HTA文件将由“application / hta”处理程序进行处理。在图2中高亮显示的行展示了其第一次下载,其后是附加的恶意有效载荷。
图2:实际攻击情形
一旦下载完成,模板文件将被存储在用户的临时Internet文件中,并将其命名为[?] .hta,其中[?]是在运行时才被确定的。
逻辑错误
Mshta.exe程序负责处理Content-Type为“application / hta”的文件,解析文件内容并执行脚本。 图3展示的是winword.exe正在查询“application / hta”处理程序的CLSID的注册表值。
图3:Winword查询注册表值
Winword.exe向DCOMLaunch服务发出请求,这将导致托管DCOMLaunch的svchost.exe进程执行mshta.exe。之后,Mshta.exe就会执行嵌入在恶意HTA文档中的脚本。 图4显示了第一阶段下载的、经过反混淆处理后的VBScript。
图4:第一个文件,即第一阶段的VBScript
在图4中所示的脚本将执行以下恶意操作:
1. 使用taskkill.exe终止winword.exe进程,以隐藏图1所示的提示。
2. 从http [:]//www.modani [.] com/media/wysiwyg/ww.vbs下载一个VBScript文件,并将其保存到%appdata%MicrosoftWindowsmaintenance.vbs文件中
3. 从http [:]//www.modani [.] com/media/wysiwyg/questions.doc下载诱饵文件,并将其保存到%temp%document.doc文件中
4. 清理15.0和16.0版本Word的Word Resiliency keys,以便Microsoft Word可以正常重新启动
5. 执行恶意攻击第二阶段的VBScript:%appdata%MicrosoftWindowsmaintenance.vbs
6. 打开诱饵文档%temp% document.doc,以隐藏用户的恶意活动
一旦执行,前面下载的第二阶段的VBScript(ww.vbs/maintenance.vbs)脚本将执行以下操作:
1. 将嵌入式的、经过混淆处理的脚本写入%TMP%/ eoobvfwiglhiliqougukgm.js
2. 执行脚本
经过混淆处理的eoobvfwiglhiliqougukgm.js脚本,在运行时将完成以下操作:
1. 尝试从系统中删除自己
2. 尝试下载http [:]//www.modani [.] com/media/wysiwyg/wood.exe(最多尝试44次),并将文件保存到%TMP%dcihprianeeyirdeuceulx.exe
3. 执行%TMP% dcihprianeeyirdeuceulx.exe
图5为我们展示了事件的进程执行链。
图5:进程创建事件
在这里,这个恶意软件的最终有效载荷是LATENTBOT恶意软件系列中的一个较新版本。至于这个恶意软件的更新详情,请参见文件2的有关介绍。
表1:第一个文档文件的元数据
有效载荷LATENTBOT
与第一个文档相关联的有效载荷是LATENTBOT恶意软件系列的更新版本。 LATENTBOT是一个经过高度混淆处理后的BOT,自2013年以来一直在野外传播。
较新版本的LATENTBOT为Windows XP(x86)和Windows 7操作系统提供了多种不同的注入机制:
Attrib.exe补丁——LATENTBOT将调用Attrib.exe,修改内存中的相关内容,并插入一个JMP指令将控制权传递到映射的部分。为了将这一部分映射到atrrib.exe的地址空间中,需要使用ZwMapViewOfSection()。
Svchost代码注入——Attrib.exe以挂起模式启动svchost.exe进程,创建内存空间,并通过调用ZwMapViewOfSection()分配代码。
控制传输——然后使用SetThreadContext()修改主线程的OEP,它将在远程进程中执行以触发代码执行。
浏览器注入——借助NtMapVIewOfSection()将最终的有效载荷注入默认的Web浏览器中。
在Windows 7或更高版本的操作系统中,该bot不会使用attrib.exe。 相反,它会将代码注入到svchost.exe中,然后借助NtMapViewOfSection(),通过恶意有效载荷来启动默认浏览器。
然后,该变种将连接到以下命令和控制(C2)服务器:
在与C2服务器成功连接后,LATENTBOT将生成一个信标。 其中一个解密的信标如下所示,更新版本号为5015:
在我们进行漏洞分析时,C2服务器已经处于离线状态。 该bot具有高度模块化的插件架构,并已用于“Pony”行动的信息窃取。
截至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
该文件下载到用户的临时Internet文件目录中,名称为[?] .hta,其中[?]是在运行时才确定的。 一旦下载完成,winword.exe就会使用mshta.exe来解析该文件。 mshta.exe会在文件中查找<script> </ script>标签来进行相关的解析工作,并执行其中的脚本。 图6显示了经过反混淆处理后的脚本。
图6:第二个文件,第一阶段的VBScript
图6展示了以下恶意操作:
1. 使用taskkill.exe终止winword.exe进程,以隐藏图1所示的提示
2. 从http [:]//95.141.38 [.] 110/mo/dnr/copy.jpg下载可执行文件,将其保存到'%appdata%MicrosoftWindowsStart MenuProgramsStartupwinword.exe文件中
3. 从http [:]//95.141.38 [.] 110/mo/dnr/docu.doc下载文档,将其保存到%temp%document.doc文件中
4. 清理Word 15.0和16.0版本的Word Resiliency key,以使Microsoft Word正常重新启动
5. 在“%appdata%MicrosoftWindowsStart MenuProgramsStartupwinword.exe”中执行恶意有效载荷
6. 打开诱饵文档%temp% document.doc,以隐藏用户的恶意活动
检查恶意有效载荷后发现,它是微软称为WingBird的注入器的一个变体,具有与FinFisher类似的特性。这个恶意软件经过了充分的混淆处理,并提供了多种反分析措施,包括定制的虚拟机以增加分析所需时间。 “Artem”发表的博客文章介绍了WingBird的有效载荷驱动程序。这篇博客的作者简要介绍了与该样本匹配的注入器的保护技术。
表2:第二个文件的元数据
小结
我们发现了一个编号为CVE-2017-0199的安全漏洞,这是Microsoft Word中的一个漏洞,它允许攻击者执行恶意的Visual Basic脚本。 CVE-2017-0199漏洞是一个逻辑错误引起的,并且能够绕过大多数安全防御措施。在执行恶意脚本后,攻击者能下载并执行恶意的有效载荷,同时向使用者显示诱饵文件。这两个文件都能执行恶意有效载荷,其中一个包含LATENTBOT,另一个包含WingBird/FinFisher。实际上,这个恶意文件中只含有一个指向攻击者控制的服务器的链接,这充分展示了FireEye的MVX引擎在检测多阶段攻击方面的绝对优势。在该漏洞的补丁发布之前,我们就已经观测到了利用该漏洞的攻击活动。
我们建议Microsoft Office用户尽快安装相应的漏洞补丁。