freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

2017年恶意Office文档攻击研究报告
2018-02-22 08:30:04
所属地 广东省

一 总述

近年来,Office文档攻击成为了不法分子利用最为频繁的攻击方式之一。典型的攻击方式为:攻击者借助欺骗性文字的邮件主题或正文,向受害者发送带有恶意Office附件的邮件,诱导其点击打开附件,在无需交互、用户无感知的情况下,执行Office文档中内嵌的一段恶意代码,从远控地址中下载并运行恶意可执行程序,例如远控木马或者勒索病毒等。

由于Office是人们电脑上最常用的办公软件,这种攻击手法不仅给个人用户带来巨大的风险,同时也严重威胁着政府和企业的安全,危害巨大。攻击者一旦得手,则可能获取电脑的完全控制权限,不仅可以窃取电脑中存放的高度机密数据,还可以以该电脑作为跳板,进一步对同一网络中其它电脑进行攻击,甚至导致整个内网完全沦陷;同时也增加了勒索病毒攻击的风险,如果政府和企业的关键文档、数据、图片等被使用高强度算法加密,则受害者要么放弃这些数据,要么给攻击者支付价值不菲的赎金,造成的损失无法估量。

针对2017年Office攻击中最常用到的几个手法,腾讯反病毒实验室进行了深入的分析和整理,并提供一些防范攻击的安全建议,希望能够有效地保护个人以及企业、政府用户的安全。本文研究的恶意文档是指以Office为载体的恶意文档,既包括基于CVE-2017-0199、CVE-2017-8570、CVE-2017-8759、CVE-2017-11882的漏洞利用样本,也包括基于DDE的恶意文档样本。

下文中,我们首先会介绍Office攻击整体的数据情况,包括攻击中恶意方式的利用比例,攻击文档的语言分布,以及恶意服务器的地理位置信息等数据。随后会对常用的攻击手段展开详细的介绍,并借助攻击者使用的真实样本展开具体的分析。最后会提供几种防范Office恶意文档攻击的安全建议。

二 Office攻击方式数据统计及分析

攻击方式 发现时间 利用样本捕获时间 简介
CVE-2017-0199 2017年04月 2017年04月 Office OLE对象链接技术,将伪装的恶意链接对象嵌在文档中,由Office调用URL Moniker(COM对象)或者Script Monike,执行hta或者sct文件
CVE-2017-8570 2017年07月 2017年08月 利用复合Moniker绕过了CVE-2017-0199的补丁针对URL Moniker和Script Moniker相关classid的拦截
CVE-2017-8759 2017年09月 2017年09月 SOAP WSDL分析器代码注入漏洞,在解析SOAP WSDL定义的内容中它允许攻击者注入任意代码
CVE-2017-11882 2017年11月 2017年11月 EQNEDT32.EXE在拷贝公式字体名称时没有对名称长度进行校验,从而造成栈溢出
DDE 2017年09月10日公布 DDE使用共享内存来实现进程之间的数据交换,使用DDE通讯需要两个Windows应用程序,一个作为服务器处理信息,另外一个作为客户机从服务器获得信息。客户机应用程序向当前所激活的服务器应用程序发送一条消息请求信息,服务器应用程序根据该信息作出应答,从而实现两个程序之间的数据交换。

除上表中列出的攻击方式之外,腾讯反病毒实验室捕获的Office恶意文档还包含了下面三类:基于CVE-2012-0158、CVE-2010-3333、CVE-2015-1641等往年漏洞的利用样本;基于宏的利用样本;诱导用户直接释放恶意文件。这三类样本利用技术已经存在多年,相关分析和防御手段也已数见不鲜,为了能体现样本的最新趋势,故这三类样本并不包含在本文所研究的文档样本集中。

2.1 恶意文档数量占比分析

下图展示的是2017年常见攻击方式的恶意文档数量占比情况。由图中可以看到,利用CVE-2017-11882漏洞进行攻击的事件占比较大。这与CVE-2017-11882漏洞的特点是有关的,该漏洞原理简单,利用稳定,并且可以做到无交互,无感知,所以被大量利用。占比第二多的是CVE-2017-0199,该漏洞利用了一个逻辑漏洞,就导致利用该漏洞时不需要绕过微软采用的一系列诸如ASLR、DEP之类的漏洞缓解措施,因此成功率非常高。另外几种方式利用率相对较低。

1.png

2.2          恶意文档数量按月分布分析

根据腾讯反病毒实验室的数据分析,4月-7月,这几类Office利用样本数量整体较少,而且该时段的样本都是CVE-2017-0199漏洞。在8月份,CVE-2017-8759的漏洞利用样本开始出现。基于DDE的利用样本在9月份开始出现,并在10月份占据了绝大数的份额,超越了CVE-2017-0199。而CVE-2017-11882在11月份出现后,利用此漏洞的恶意文档数量在12月份达到顶峰,超越了CVE-2017-0199所占数量。

2.png

从每个月来看,各类文档所占比例如下:

3.png

2.3 恶意文档类型分析

腾讯反病毒实验室将恶意文档分类成rtf类、word类(包括doc、docx等)、ppt类(包括ppt、pptx等)、xls类(包括xls、xlsx等),并将各文件类型所占比例图展示如下。其中RTF文件占比是最大的,RTF文件本身结构简单,默认情况下是被word来调用解析的,通过嵌入恶意的OLE对象就可出发相关漏洞,所以借助rtf利用漏洞更加方便,快捷。

4.png

2.4 恶意文档语言分布分析

文档的默认语言与制作者、被攻击者、默认设置都有着强相关性,腾讯反病毒实验室根据所捕获的Office相关样本的语言信息进行统计,得出最常出现的默认语言Top 5,如下所示。

5.png

2.5 远控网址地理分析

通过腾讯哈勃分析系统对这些文档的远控网址(C&C)进行统计,可以得到恶意文档C&C所在地理位置分布图(只取了排名前十的C&C所在国家)。从图中可以看出,美国是占比最高的国家,许多文档攻击后续所连接的服务器地址都位于美国,选取云服务作为恶意C&C是一种惯用手法,而全球较大的云服务所提供的ip地址大部分位于美国,这可能是造成美国占比较大的一个主要原因。除此之外,欧洲,中国的C&C占比也比较大,这也与全球网络攻击趋势基本一致。

6.png

三 攻击原理及典型样本分析

在上一章中,从宏观层面上分析了基于Office的利用的整体情况,在本章节,将从每种Office利用中抽取最具代表性的样本进行详细分析。

3.1 CVE-2017-0199

利用趋势

该漏洞自2017年4月份公布至2017年12月期间,腾讯哈勃分析系统捕获的漏洞利用样本数量变化趋势如下:

7.png

从趋势图中看到,漏洞公布后,漏洞利用样本一直平稳波动,但从10月份以来,利用该漏洞的样本数量呈现大幅增长趋势。

漏洞原理

CVE-2017-0199是Microsoft Office在OLE处理机制实现上存在的一个逻辑漏洞,此漏洞的成因主要是word在处理内嵌OLE2LIN对象时,通过网络更新对象时没有正确处理Content-Type所导致的一个逻辑漏洞。由于逻辑漏洞的成因,就导致利用该漏洞时不需要绕过微软采用的一系列诸如ASLR、DEP之类的漏洞缓解措施,因此成功率非常高。

该漏洞主要有两种利用方式:

1. 针对URL Moniker的利用方式。利用过程为:将包裹的恶意链接对象嵌在文档中,OFFICE调用URL Moniker(COM对象)将恶意链接指向的HTA文件下载到本地,URL Moniker通过识别响应头中content-type的字段信息最后调用mshta.exe将下载到的HTA文件执行。

2. 针对Script Moniker的利用方式。利用过程为:攻击者使用PowerPoint播放动画期间会激活该对象,从而执行sct脚本(Windows ScriptComponent)文件。

微软在修复CVE-2017-0199漏洞利用时,禁用了htafile对象和script对象:

CVE-2017-0199涉及到两个危险的COM对象:

CLSID ProgID
{3050F4D8-98B5-11CF-BB82-00AA00BDCE0B} htafile
{06290BD3-48AA-11D2-8432-006008C3FBFC} script

需要特别注意的是,微软在4月份发布的修复CVE-2017-0199的补丁中,修补了两部分内容,一是针对Office 的补丁,修改了MSO.dll,二是针对Windows的补丁,修改了ole32.dll,在打补丁时需要Office补丁和Windows补丁一起修补,才能完整修复这个漏洞。

典型样本分析

利用该漏洞的一种典型的攻击场景为:攻击者将CVE-2017-0199漏洞的RTF文件作为一个源嵌入到了Docx格式的文档中,docx文件在打开时是自动去远程获取包含0199漏洞的rtf文件,再触发后面的漏洞利用代码,这样的攻击增加了安全软件的查杀难度。

原始文件为一个docx格式的文档,在该文档中嵌入了MsOffice.doc文档,从下图可以看到链接到MsOffice.doc地址。

8.png

MsOffice.doc文档格式为rtf,为一个CVE-2017-0199的漏洞利用样本。将MsOffice.doc文档中的ole对象提取出来后,可以看到其指向的恶意链接为http://[xxxx].com/[xxxx]/1,如下图

9.png

恶意链接1文件对应着一个vbscript脚本,脚本内容如下

10.png

该vbs功能是使用powershell加载下面语句


从网站目录结构上看到整个攻击过程中所有的文件。

11.png

对网站目录上三个文件的说明:

Document_verify.docx docx格式文件,里面嵌入了一个链接类型OLE对象,指向MsOffice.doc
MsOffice.doc CVE-2017-0199漏洞利用文档,漏洞利用后,加载vbs执行,vbs会下载invoice.exe执行
invoice.exe 最终的Loki Bot窃密木马文件

Loki bot是一款专门窃取用户凭证的窃密木马,该木马除了可以窃取firefox、chrome等浏览器凭证外,还可以窃取用户数字货币钱包等。此外,该木马也具有键盘记录、屏幕截取、远程下载执行等常规木马功能。

3.2 CVE-2017-8570

利用趋势

CVE-2017-8570漏洞自2017年7月份公布,并没有真正意义上的漏洞利用样本出现,网上流传的针对该漏洞的利用也大多是针对CVE-2017-0199的script方式的利用。但直到2018年1月份,国外安全研究人员在github上公布了该漏洞的利用代码,从2018年开始,腾讯哈勃分析系统已陆续捕获数几十例对利用该漏洞的恶意样本。

漏洞原理

CVE-2017-8570漏洞原理与CVE-2017-0199如出一辙,微软在CVE-2017-0199修复时,使用了COM Activation Filter机制,单纯地过滤封锁了htafile对象和script对象的GUID,此后攻击者开始寻找另外的COM对象来绕过CVE-2017-0199的补丁,最终黑客找到了Scriptletfile对象,这就是CVE-2017-8570漏洞。

CVE-2017-8570漏洞利用的是CLSID为{06290BD2-48AA-11D2-8432-006008C3FBFC}的COM对象,与CVE-2017-0199利用的script对象进行对比可以看到这两个GUID十分类似。

{06290BD3-48AA-11D2-8432-006008C3FBFC} Script CVE-2017-0199
{06290BD2-48AA-11D2-8432-006008C3FBFC} Scriptletfile CVE-2017-8570

鉴于这两个漏洞的相似性,国内很多安全分析、漏洞利用等文章都将针对Script Moniker的利用方式的CVE-2017-0199漏洞与CVE-2017-8570漏洞混为一谈,经常张冠李戴,真实的CVE-2017-8570的漏洞利用在2018年1月份才开始出现。

典型样本分析

该漏洞利用样本rtf格式,在rtf文件中包含两个objdata对象,其中一个为package对象,另一个为漏洞利用对象。如下

12.png

将其中的第一个objdata保存出来,分析package对象结构,可以看到:

13.png

另外一个objdata包含了CVE-2017-8570漏洞的OLE2Link对象,文档通过该OLE2Link对象触发漏洞,漏洞触发成功后会直接加载%tmp%目录下的07XF4PFEPYG3V9E.sct脚本执行。从该ole对象结构中,可以看到CompositeMoniker对象、File Moniker对象和New Moniker对象。如下图。

14.png

文档在打开时, CompositeMoniker将File Moniker定义为了一个New Moniker新对象,在此过程中,会调用IMoniker::BindToObject方法对File Moniker进行Bind操作,在File Moniker初始化指定文件时,检测到文件后缀名为.sct,会自动在注册表中查找处理.sct文件的接口,从而使用该接口将sct文件加载起来,从而导致代码执行。

从package对象中,可以看到sct文件的内容如下,该sct的主要功能是加载内置的Pe文件执行。

15.png

最终PE文件使用dephi混淆工具处理过,处理掉混淆后可以看到文件为loki家族的窃密软件,主要功能为窃取用户的FTP密码、浏览器密码等凭证信息。反混淆后的部分字符串显示如下:

16.png

3.3 CVE-2017-8759

利用趋势

该漏洞于2017年9月份公布,但真正的漏洞利用样本在8月份就已经出现。从8月份开始,腾讯哈勃分析系统捕获的该漏洞利用样本数量及趋势如下:

17.png

从趋势图中可以看到,同样是在10月份,利用该漏洞的样本数量开始上涨,在12月期间,样本数量达到最高。

漏洞原理

CVE-2017-8759是SOAP WSDL分析器代码注入漏洞,在解析SOAPWSDL定义的内容中它允许攻击者注入任意代码。

漏洞位于wsdlparser.cs中的PrintClientProxy函数中,该函数用于将解析wsdl文件后得到的信息格式化成.cs 代码

18.png

上面代码调用的IsValidUrl的函数功能为在url地址前面加上@”,在url的末尾加上”后将url返回。

对于poc中的示例,如PrintClientProxy函数处理的内容如下面的红框部分内容

19.png

经过上面PrintClientProxy函数处理后,会生成如下的代码:

20.png

可以看到注释符仅注释了“base.ConfigureProxy(this.GetType(),@"; ”的内容,而下面的代码会csc.exe进程编译成dll,随后该dll会被加载到Office进程中,从而实现代码执行。

典型样本分析

以一个典型的漏洞利用的样本进行分析。

样本为一个rtf文档,文档中嵌入的objdata如下,使用了ojbupdate标签,强制在对象还没显示出来之前就进行对象的自动更新,从而在无须用户交互的情况下就可以直接下载并执行远程文件。

21.png

提取出来的ole对象后,对象对应的CLSID为:ECABB0C7-7F19-11D2-978E-0000F8757E2A,其代表SOAP Moniker

22.png

远程加载的地址为:http://[xxxx].pl/[xxx]/BhvMJfZCknfT

BhvMJfZCknfT文件的内容如下:

23.png

这段代码会导致SOAP WSDL分析器解析时代码注入,编译生成以URL命名的dll文件,该dll文件随后被Office加载执行。

从编译生成的cs文件来看,图中框选的回车换行正是上面注入时,导致仅注释了首页的结果。

24.png

上面代码获得执行后,会调用powershell从http://r[xxxx]e.org/Lytrafid/fiddle.exe下载恶意程序执行。

fiddle.exe使用C#编写,也是一个loader程序,从程序元数据中看到程序的编译时间为:2018/1/11 11:38:28。程序代码经过混淆,代码显示如下:

25.png

其在内存中解码出PE文件,随后加载解码出的PE执行。解码函数如下:

26.png

对解码出的PE文件分析,可以看到解码出的PE文件为一远控木马,其上线地址为:2xx.xxx.xxx.xx5:213

27.png

3.4 CVE-2017-11882

利用趋势

该漏洞于2017年11月份公布。随后几天内,漏洞利用被公开,导致了该漏洞利用迅速的流行起来,在11月,腾讯哈勃分析系统捕获数十例漏洞利用样本,但在12月,该漏洞利用样本数量上升到上千数量级。

漏洞原理

CVE-2017-11882漏洞原理简单,利用稳定,并且可以做到无交互,无感知,已经被多个APT组织纳入攻击武器库,广泛的用于鱼叉式钓鱼攻击和水坑攻击中。

漏洞代码存在于公式编辑器模块EQNEDT32.EXE中,该模块编译于2000年,最早是由Design ScienceInc.开发,后交由微软维护。遗憾的是微软一直未对其脆弱的安全性进行升级和加固。其已经悄然潜伏了17年之久。在Office文档中插入或编辑公式时,Office进程(如winword.exe,excel.exe)会通过RPC启动一个独立的eqnedt32.exe进程来完成公式的解析和编辑等需求。Microsoft Office 2007及之后的版本已经用内置的公式编辑工具替代了EQNEDT32.exe,但为了保证对老版本的兼容,所有MicrosoftOffice和Office365仍支持EQNEDT32.exe编辑的公式。

通过IDA看到漏洞发生的位置如下图,其中参数a1的内容来自于“Equation Native”流,该流的数据由文档提供,正常情况下,流里面的数据代表一个MathType的公式。

28.png

而在解析“Equation Native”流的Font Name数据时,在上面的拷贝过程中没有对FontName的长度做校验,导致了栈溢出,最终使用精心构造的数据覆盖函数的返回地址,达到劫持程序执行流程的目的。

典型样本分析

以我们最近捕获的一封垃圾邮件传播loki窃密木马的样本为例

初始攻击使用的邮件内容如下:

29.png

将附件文档中的ole对角提取出来后,可以看到OLE对象中的“Equation Native”对象

30.png

动态调试可以看到

31.png

上面的溢出时,将返回地址覆盖成了0x00630C12,对应着ole对象中的数据如下:

32.png

随后在_strupr函数中,字符串内容被转换,对应着下面代码中-0x20后,返回地址被修改为:0x00430C12

33.png

而对应的地址为WinExec,从而达到调用WinExec的目的。

34.png

此处漏洞利用成功后执行的命令为:使用SMB协议,加载\\1[xx.xxx.xx.xxx]\s\joe.src执行,此处的joe.src是个loader,该loader带有损坏的”StardockCorporation”数字签名

35.png

最终会加载商业化的窃密木马FormBook 执行, FormBook窃密木马支持窃取firefox、chrome、opera、ie等浏览器凭证,支持对outlook、Thunderbird等邮件凭证的窃取,此外还支持远程命令执行,远程下载执行等功能。

3.5 DDE利用

利用趋势

该利用方法在2017年09月10日由安全研究人员公布,据称在8月份该问题就被报告给微软的安全部门,但微软认为这并不是安全问题因此没有给出解决方案。在09月10日利用方式被公布后,腾讯哈勃分析系统在当月捕获到数例样本使用,在10月份利用该方式的样本逐渐增多,11月份数量相比10月份有一定程度的下降,但在随后的12月份,利用DDE的恶意样本数量大规模增长。具体数量趋势图如下:

36.png

DDE原理

DDE(Dynamic Data Exchange)是WINDOWS提供的一种在应用程序之间传输数据的协议。该功能内置于 Microsoft Office 软件的系列组件之中,在使用该功能时Office 默认会弹出提醒,但是这个提醒却可以用修改语法的形式修改,因此黑客可以修改提醒内容诱导用户点击确定,从而允许 DDE 执行。利用DDE可以绕过OFFICE的宏限制,无需利用OFFICE文档漏洞,达到运行程序的目的。

由于微软并认为这是安全问题,因此没有发布解决方案,只是说未来会更新运行DDE功能时的安全提醒内容,这导致该利用方式在一定时间内流行起来,如著名的俄罗斯黑客组织APT28在2017年11月份就曾利用DDE的方式结合纽约袭击事件发起过渗透攻击。

典型样本分析

对于一个使用DDE的典型样本分析,使用工具可以看到DDEAUTO关键字及其对应的命令参数,如下图

37.png

当此文档被WORD打开后,WORD会调用powershell下载http://w[xxx]/great.exe并执行。

下载后great.exe为UPX加壳,使用upx –d 直接脱壳后,放到IDA中分析,停到入口处

38.png

典型的DELPHI的入口。再往后分析,可以看到

39.png

40.png

这是典型的DELPHI混淆器,利用这种混淆器躲避杀毒软件的检测。将混淆器中真正的可执行文件还原出来,再次加载并停在入口处。

41.png

经过分析,这又是一个封装器,将恶意代码动态加载到内存中执行,再次将恶意代码从内存中还原出来后,发现这是一个.NET的程序

42.png

根据Dnspy列出的类名和函数名可以看出该样本为njRAT的远控木马,该木马已经被很多安全厂商分析过,这里就不再赘述,该远控木马的上线地址为:1[xx.xxx.xxx.xx]3:9902。如下图所示

43.png

四 安全建议

1.      对于个人用户来说,确保系统及时更新,使用腾讯电脑管家安装最新的安全补丁,修复已知的安全漏洞,可以很大程度上降低风险,避免财产的损失。同时也需要提高安全意识,不要随意打开来源不明的文件,或随意点击可疑的链接。对于可疑文件,可以使用电脑管家进行扫描,或者将文件上传哈勃分析系统(https://habo.qq.com/)查看文件是否存在风险。

44.png

2.      对于企业用户,针对上文中提到的文档攻击事件,可以使用御界防APT邮件网关(http://s.tencent.com/product/yjwg/index.html)和御界高级威胁检测系统(http://s.tencent.com/product/gjwxjc/index.html)两个安全产品进行有效的检测与防护。

御界防APT邮件网关是专门为邮箱打造的安全产品。依托哈勃分析系统的核心技术,结合大数据与深度学习,御界防APT邮件网关通过对邮件多维度信息的综合分析,可迅速识别APT攻击邮件、钓鱼邮件、病毒木马附件、漏洞利用附件等威胁,有效防范邮件安全风险,保护企业免受数据和财产损失。上文中提到的Office攻击事件,其攻击载体基本上都为邮件。所以对于企业来说,部署御界防APT邮件网关可以及时发现钓鱼邮件威胁,防范恶意邮件入侵途径,保护企业邮箱安全。

45.jpg

御界高级威胁检测系统,是基于腾讯反病毒实验室的安全能力、依托腾讯在云和端的海量数据,研发出的独特威胁情报和恶意检测模型系统。凭借基于行为的防护和智能模型两大核心能力,御界高级威胁检测系统可高效检测未知威胁,并通过对企业内外网边界处网络流量的分析,感知漏洞的利用和攻击。Office文档攻击其中常用的一个环节是反连CC,进行信息窃取或者远程控制。所以如果企业内网已经有用户遭受了攻击,那么可以通过部署御界高级威胁检测系统,及时感知恶意流量,检测钓鱼网址和远控服务器地址在企业网络中的访问情况,保护企业网络安全。

46.png

五 参考资料

[1] 2017年Office漏洞及漏洞攻击研究报告

https://guanjia.qq.com/news/n5/2195.html

[2] 对使用CVE 2017-8759漏洞传播njRat远控木马的分析与检测

http://www.freebuf.com/column/158897.html

[3]白象APT组织已将CVE 2017-11882纳入攻击武器库

http://www.freebuf.com/articles/paper/159268.html

[4] 危机四伏的Office高危漏洞CVE-2017-11882

http://www.freebuf.com/news/154968.html

[5] Office DDEAUTO技术分析报告

http://www.freebuf.com/articles/terminal/152064.html

[6] 利用DDE钓鱼文档传播勒索病毒事件分析

http://www.freebuf.com/column/152267.html

[7] 无需开启宏即可渗透:在Office文档中利用DDE执行命令

http://www.freebuf.com/articles/terminal/150285.html

# office
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者