本文讲的是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。实际上,这个恶意文件中只含有一个指向攻击者控制的服务器的链接。

原文发布时间为:2017年4月13日
本文作者:xiaohui
本文来自云栖社区合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。
原文链接

CVE-2017-0199——首个Microsoft Office RTF漏洞相关推荐

  1. Microsoft Office 2003 和不同 Office 环境下的文件共享

    更新日期: 2004年09月27日 摘要:本文档提供了 Microsoft Office 2003 文件格式概述.检查了文件迁移共存战略.定义了可用的信息共享选项,还提供了其他资源参考. 本页内容 简 ...

  2. wps linux 字体_WPS Office:Linux 上的 Microsoft Office 的免费替代品 | Linux 中国

    如果你在寻找 Linux 上 Microsoft Office 免费替代品,那么 WPS Office 是最佳选择之一.它可以免费使用,并兼容 MS Office 文档格式.-- Sergiu WPS ...

  3. Microsoft Office (2007) Open XML 文件格式

    适用于: 2007 Microsoft Office 套件 Microsoft Office Excel 2007 Microsoft Office PowerPoint 2007 Microsoft ...

  4. 使用Microsoft Office Publisher制作海报Poster

    小编刚中一篇会议论文,需要制作Poster,于是从网络上各种扒经验帖,技术帖,但给出的都很笼统,但基本方法不外乎两大类,一类是利用Office的PPT功能制作Poster,另外一类就是利用专业的软件( ...

  5. 无法引用Microsoft.Office.Interop.Excel的解决

    微软MSDN文章: http://msdn.microsoft.com/zh-cn/library/aa159923(office.11).aspx 下载 在 Microsoft Office 200 ...

  6. ” Microsoft.Office.Interop.Excel”无法引用

    首先是添加了Microsoft Excel11 Object Libray之后,发现引用里面的" Microsoft.Office.Interop.Excel"不能用.出现了一个可 ...

  7. 无需安装Microsoft Office和Adobe实现办公文档操作,Spire.Office免费资源清单一览

    作为一个独立的 Office 组件,Free Spire.Office 的运行环境无需安装 Microsoft Office 及其他第三方软件.基于安全性.稳定性.可扩展性.效率及价格方面的考虑,Sp ...

  8. linux运行office2016,CrossOver 17让您可以在Linux上安装Microsoft Office 2016

    CodeWeavers的Josh DuBois今天宣布推出CrossOver 17.0.0商业应用程序,让Linux和macOS用户可以安装专为Microsoft Windows设计的应用程序和游戏. ...

  9. c# 使用Microsoft.Office.Interop.Excel 对Excel操作

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.pandas是什么? 二.使用步骤 1.引入库 2.读入数据 总结 前言 Microsoft.Office.Int ...

  10. 通过C#Microsoft.Office.Interop.Word理解互操作性

    目录 一.概念 二.应用 三.Word操作示例 四.总结 五.拓展 一.概念 C# 中的互操作性指的是C#托管代码和非托管代码之间实现互操作性的方法.(参考微软文档:互操作性概述) 参考:百度百科-- ...

最新文章

  1. ZooKeeper配置中出现Error contacting service. It is probably not running
  2. Js中去除数组中重复元素的几种方法
  3. CNCF 新增两个孵化项目 | 云原生生态周报 Vol. 58
  4. 什么是服务器信息怎么看,怎么查看服务器信息
  5. python中的无参装饰器和有参装饰器
  6. 搜索引擎排序DEMO
  7. java servlet spring_带着新人简单看看servlet到springmvc
  8. 《Python源码剖析》.pdf
  9. WiFi基础知识解析
  10. c# 对一个数组进行随机排序
  11. ckplay video.php,CKPLAYER播放器的教程-小白看
  12. 建模案例1:北京二手房房价影响因素
  13. 云端服务器部署前端工程
  14. linux 切换java_Linux中切换java的版本
  15. 真-C++通过函数名字符串调用函数
  16. 串口打印中文乱码及注释乱码问题
  17. 极简Python:用opencv实现人脸检测,并用本地摄像头实现视频流的人脸识别
  18. firewall-cmd --permanent --get-zone-of-interface=ens33显示no zone
  19. JSP通过JDBC连接mysql数据库
  20. android安卓切换音频声道-耳机-外放-蓝牙-实用功能系列

热门文章

  1. qtabwidget右键菜单_Qt5 添加右键菜单简单测试
  2. 解决Ubuntu中Edge浏览器smartUp手势插件导致鼠标右键不灵敏的问题
  3. 【python】pycharts画关联图
  4. Rewrite 做二级域名转向
  5. 卸载Docker CE
  6. 解析SRAM存储容量及基本特点
  7. 保存rdl文件到报表服务器,在SQL服务器上将RDL报表导出成Excel XLS XLSX SpreadsheetML格式...
  8. 微信小程序开发博客项目-篇幅《一》
  9. python红色的颜色表达式_python – 排序(十六进制)颜色以匹配彩虹
  10. mysql中with...as用法