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。实际上,这个恶意文件中只含有一个指向攻击者控制的服务器的链接。
CVE-2017-0199——首个Microsoft Office RTF漏洞相关推荐
- Microsoft Office 2003 和不同 Office 环境下的文件共享
更新日期: 2004年09月27日 摘要:本文档提供了 Microsoft Office 2003 文件格式概述.检查了文件迁移共存战略.定义了可用的信息共享选项,还提供了其他资源参考. 本页内容 简 ...
- wps linux 字体_WPS Office:Linux 上的 Microsoft Office 的免费替代品 | Linux 中国
如果你在寻找 Linux 上 Microsoft Office 免费替代品,那么 WPS Office 是最佳选择之一.它可以免费使用,并兼容 MS Office 文档格式.-- Sergiu WPS ...
- Microsoft Office (2007) Open XML 文件格式
适用于: 2007 Microsoft Office 套件 Microsoft Office Excel 2007 Microsoft Office PowerPoint 2007 Microsoft ...
- 使用Microsoft Office Publisher制作海报Poster
小编刚中一篇会议论文,需要制作Poster,于是从网络上各种扒经验帖,技术帖,但给出的都很笼统,但基本方法不外乎两大类,一类是利用Office的PPT功能制作Poster,另外一类就是利用专业的软件( ...
- 无法引用Microsoft.Office.Interop.Excel的解决
微软MSDN文章: http://msdn.microsoft.com/zh-cn/library/aa159923(office.11).aspx 下载 在 Microsoft Office 200 ...
- ” Microsoft.Office.Interop.Excel”无法引用
首先是添加了Microsoft Excel11 Object Libray之后,发现引用里面的" Microsoft.Office.Interop.Excel"不能用.出现了一个可 ...
- 无需安装Microsoft Office和Adobe实现办公文档操作,Spire.Office免费资源清单一览
作为一个独立的 Office 组件,Free Spire.Office 的运行环境无需安装 Microsoft Office 及其他第三方软件.基于安全性.稳定性.可扩展性.效率及价格方面的考虑,Sp ...
- linux运行office2016,CrossOver 17让您可以在Linux上安装Microsoft Office 2016
CodeWeavers的Josh DuBois今天宣布推出CrossOver 17.0.0商业应用程序,让Linux和macOS用户可以安装专为Microsoft Windows设计的应用程序和游戏. ...
- c# 使用Microsoft.Office.Interop.Excel 对Excel操作
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.pandas是什么? 二.使用步骤 1.引入库 2.读入数据 总结 前言 Microsoft.Office.Int ...
- 通过C#Microsoft.Office.Interop.Word理解互操作性
目录 一.概念 二.应用 三.Word操作示例 四.总结 五.拓展 一.概念 C# 中的互操作性指的是C#托管代码和非托管代码之间实现互操作性的方法.(参考微软文档:互操作性概述) 参考:百度百科-- ...
最新文章
- ZooKeeper配置中出现Error contacting service. It is probably not running
- Js中去除数组中重复元素的几种方法
- CNCF 新增两个孵化项目 | 云原生生态周报 Vol. 58
- 什么是服务器信息怎么看,怎么查看服务器信息
- python中的无参装饰器和有参装饰器
- 搜索引擎排序DEMO
- java servlet spring_带着新人简单看看servlet到springmvc
- 《Python源码剖析》.pdf
- WiFi基础知识解析
- c# 对一个数组进行随机排序
- ckplay video.php,CKPLAYER播放器的教程-小白看
- 建模案例1:北京二手房房价影响因素
- 云端服务器部署前端工程
- linux 切换java_Linux中切换java的版本
- 真-C++通过函数名字符串调用函数
- 串口打印中文乱码及注释乱码问题
- 极简Python:用opencv实现人脸检测,并用本地摄像头实现视频流的人脸识别
- firewall-cmd --permanent --get-zone-of-interface=ens33显示no zone
- JSP通过JDBC连接mysql数据库
- android安卓切换音频声道-耳机-外放-蓝牙-实用功能系列
热门文章
- qtabwidget右键菜单_Qt5 添加右键菜单简单测试
- 解决Ubuntu中Edge浏览器smartUp手势插件导致鼠标右键不灵敏的问题
- 【python】pycharts画关联图
- Rewrite 做二级域名转向
- 卸载Docker CE
- 解析SRAM存储容量及基本特点
- 保存rdl文件到报表服务器,在SQL服务器上将RDL报表导出成Excel XLS XLSX SpreadsheetML格式...
- 微信小程序开发博客项目-篇幅《一》
- python红色的颜色表达式_python – 排序(十六进制)颜色以匹配彩虹
- mysql中with...as用法