导语:FireEye最近检测到使用CVE-2017-0199漏洞的恶意Microsoft Office RTF文档,这是以前从未发现的漏洞。
FireEye最近检测到使用CVE-2017-0199漏洞的恶意Microsoft Office RTF文档,这是以前从未发现的漏洞。CVE-2017-0199漏洞发布日期为2017年4月11号,受影响系统包括:
Microsoft Office 2016 Microsoft Office 2013 Microsoft Office 2010 Microsoft Office 2007
当用户打开包含嵌入式漏洞的文档时,此漏洞允许恶意攻击者下载并执行包含PowerShell命令的Visual Basic脚本。 FireEye已经观察到Office文档利用CVE-2017-0199下载并执行来自不同恶意软件家族的恶意程序有效载荷。
漏洞修复地址:https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2017-0199
建议大家赶紧升级,因为该漏洞会绕过目前已知的大多数缓解,不过根据我们的研究,目前CVE-2017-0199漏洞似乎还无法绕过然而FireEye的安全防护。
三阶段攻击过程还原
攻击者通过OLE2对象链接与嵌入技术把要嵌入恶意脚本的对象发送到目标用户的Microsoft Word文档中。当用户打开文档时,winword.exe会向远程服务器发出HTTP请求,以检索恶意HTA文件,服务器返回的文件是一个带有嵌入式恶意脚本的假RTF文件。
Winword.exe通过COM对象查找application / hta的文件处理程序,这会导致Microsoft HTA应用程序(mshta.exe)加载并执行恶意脚本。就在这个漏洞公布之前, FireEye已经在观察到的两个文档中,发现了以下恶意行为:
1.有恶意脚本终止winword.exe进程, 2.有恶意脚本下载了额外的有效载荷并加载了带有攻击诱饵的文件, 3.原来的winword.exe进程被终止以隐藏OLE2link生成的用户提示,如下图所示:
Visual Basic脚本隐藏了用户提示
恶意文件1 ——MD5:5ebfd13250dd0408e3de594e419f9e01
FireEye所确认的第一个含有CVE-2017-0199漏洞的恶意文件的攻击过程总共分三个阶段。OLE2通过winword.exe向目标URL发送已经嵌入恶意脚本的文档,以下载第一阶段的恶意HTA文件:
http[:]//46.102.152[.]129/template.doc
一旦下载,恶意的HTA文件由“application/hta”处理程序处理。下图中,突出显示的行显示了第一次下载,其次是附加的恶意有效载荷:
第一阶段攻击过程
一旦下载,模板文件就会被存储在用户的临时Internet文件中,名称为[?].hta,其中[?]在运行时就已被确定。
Mshta.exe负责处理Content-Type“application / hta”,解析内容和执行脚本,下图显示了winword.exe查询“application / hta”处理程序的CLSID的注册表值:
Winword查询注册表值
Winword.exe向DCOMLaunch服务发出请求,这又导致托管DCOMLaunch的svchost.exe进程执行mshta.exe。然后,Mshta.exe执行嵌入恶意HTA文档中的脚本,下图显示了第一阶段下载的VBScript:
第一个文件,第一阶段中VBScript
上图所示的脚本会执行以下恶意操作:
1.使用taskkill.exe终止winword.exe进程,以隐藏图1所示的提示, 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 15.0和16.0的弹窗,以便保证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
下图显示了进程中所发生的执行任务:
进程事件
在这种恶意软件中使用的最终有效载荷是LATENTBOT恶意软件家族中最新的一个版本:
第一个文档的文件元数据
LATENTBOT有效载荷
与第一个文档相关联的有效载荷是LATENTBOT恶意软件家族中最新的一个版本,LatentBot,从2013年年中就开始活跃。它有能力在不被察觉的情况下监视用户,可以破坏硬盘甚至破坏计算机,隐蔽是它的其中的一个特点,LATENTBOT的恶意代码在内存中的时间十分短暂,所以至今 LATENTBOT也不为安全专家所了解。
出LATENTBOT的一些主要特性如下:
1.多层混淆 2.内存中解密用的字符串用后即删 3.在不同的桌面影藏应用 4.主引导记录(MBR)清除功能 5.与赎金锁(Ransomlock)类似的锁定桌面功能 6.隐藏VNC连接 7.模块化设计,在受害者机器上可轻松进行更新 8.十分隐蔽的反弹通信量,APIs,注册表键值以及其他一些动态解密指示 9.将Pony恶意软件作为其中一个模块窃取信息
较新版本的LATENTBOT具有用于Windows XP(x86)和Windows 7操作系统的不同注入机制:
1.Attrib.exe修补:LATENTBOT木马会调用Attrib.exe,修补内存中的条目,并插入一个JMP指令将控件传输到映射部分。要在atrrib.exe的地址空间中映射该部分,就要使用ZwMapViewOfSection(),
2.Svchost代码注入:Attrib.exe以挂起模式启动svchost.exe进程,创建空间,并通过调用ZwMapViewOfSection()分配代码,
3.控制传输:然后使用SetThreadContext()修改主线程的OEP,这将在远程进程中执行以触发代码执行,
4.浏览器注入:在NtMapVIewOfSection()的帮助下将最终的有效载荷注入默认的Web浏览器。
在Windows 7或更高版本的操作系统中,LATENTBOT木马不使用attrib.exe。而是将代码注入到svchost.exe中,然后通过利用NtMapViewOfSection()启动具有恶意有效载荷的默认浏览器。然后连接到以下命令和控制(C2)服务器:
在与C2服务器成功连接后,LATENTBOT会生成一个信标。其中一个解密的信标如下,更新版本号为5015:
在分析时,C2服务器处于脱机状态,LATENTBOT具有高度模块化的插件架构。截至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>标签进行解析,并执行包含的脚本,如下图所示:
第二个文件,第一阶段中的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类似的特性。这个恶意软件在经过复杂的混淆处理后,已经具有了多种反分析措施,包括自定义虚拟机以缓慢分析:
第二个文件元数据
具FireEye的观察到,CVE-2017-0199是Microsoft Word中的一个漏洞,允许攻击者执行恶意的Visual Basic脚本。由于 CVE-2017-0199漏洞是由一个逻辑错误引起的,可以绕过了大多安全产品的防护缓解。CVE-2017-0199漏洞在执行恶意脚本后,会下载并执行恶意的有效载荷,并向受害者发送诱饵文件。
以下这两个文件都可以实现其恶意有效载荷的执行,其中一个包含LATENTBOT,另一个包含WingBird/FinFisher。实际上,这个恶意文件中只含有一个指向攻击者控制的服务器的链接。