CVE-2017-0199漏洞分析

漏洞挖掘前言

OFFICE OLE2LINKCVE-2017-0199

TFD  XJL                 2018 年 12 月 20 日 星期四

目录

OFFICE OLE2LINK(CVE-2017-0199)

第一部分 OFFICE漏洞简介

1.1 微软office漏洞背景

1.2 OFFICE OLE2LINK漏洞简介

第二部分 OFFICE OLE2LINK漏洞分析

2.1 漏洞原理简单分析

2.2 漏洞攻击原理简单图解

2.3 相关知识介绍

第三部分 攻击代码分析

3.1 ms.rtf

3.2 配置文件

第四部分 利用复现过程

第五部分 攻击总结

参考资料


第一部分 OFFICE漏洞简介

1.1 微软office漏洞背景

微软Office系统软件(Word/Excel/PowerPoint等),一直是电脑上最为常用的办公软件之一,在国内外都拥有大量的用户。另一方面,利用Office系列软件的漏洞进行网络攻击已经成为黑客惯用的手段,广泛运用于APT攻击,抓肉鸡,传播勒索病毒等。其中一种典型的攻击方式是“鱼叉攻击”:黑客将包含漏洞的文档伪装成为一个正常的Office文档,并精心构造文件名,然后投递到用户邮箱,如果用户不小心打开文档,恶意代码便会悄悄执行,用户完全没有感知。

另外,随着新版本的Office不断发布,微软逐渐停止了对于老版本Office的技术支持,包括提供安全更新。2017 年10月,微软就正式停止了对 Office 2007的技术支持。这本是软件生命周期中不可避免的事情,但对于使用Office 软件的用户来说,除非升级到更新的版本,否则将面临被黑客攻击的风险。然而,事实上目前仍有大量的用户选择不升级,而是继续使用老版本的Office软件。

1.2 OFFICE OLE2LINK漏洞简介

CVE编号:CVE-2017-0199  危害等级:超危 

发布时间: 2017-04-13   威胁类型:远程

Microsoft Office是美国微软(Microsoft)公司开发的一款办公软件套件产品。常用组件有Word、Excel、Access、Powerpoint、FrontPage等。

多款Microsoft产品中存在远程代码执行漏洞。远程攻击者可借助特制的文本文件利用该漏洞执行任意代码。以下产品和版本受到影响:

Microsoft Office 2007 SP3;   Microsoft Office 2010 SP2;

Microsoft Office 2013 SP1;   Microsoft Office 2016;

Microsoft Windows Vista SP2; Windows Server 2008 SP2;

Windows 7 SP1;               Windows 8.1。

CVE-2017-0199漏洞分析

                                                    图1-漏洞修复统计图(数据时间截止2017年10月)

这个漏洞在网络上公开曝光的时长已经超过了6个月,黑客早已掌握该漏洞的利用技术,并发起了多起网络攻击;另一方面,微软在2017年4月份的安全更新中就发布了该漏洞的补丁,电脑管家也多次提醒用户修复该漏洞,但截止当前,仍然有超过 1/5的用户没有选择修复该漏洞。

第二部分 OFFICE OLE2LINK漏洞分析

2.1 漏洞原理简单分析

该漏洞利用OFFICE OLE对象链接技术,将包裹的恶意链接对象嵌在文档中,OFFICE调用URL Moniker(COM对象)将恶意链接指向的HTA文件下载到本地, 当用户打开包含嵌入式漏洞的文档时,winword.exe 会向远程服务器发出 HTTP 请求,以检索恶意 HTA 文件,服务器返回的文件时一个带有嵌入式恶意脚本的假 RTF 文件,winword.exe 通过 COM 对象查找 application/hta 的文件处理程序,这会导致 Microsoft HTA 应用程序(mshta.exe),加载恶意攻击者下载并执行包含 PowerShell 命令的 Visual Basic 脚本。

2.2 漏洞攻击原理简单图解

CVE-2017-0199漏洞分析

                                   图2-漏洞攻击原理简图

2.3 相关知识介绍

HTA是HTML Application的缩写(HTML应用程序),是软件开发的新概念,直接将HTML保存成HTA的格式,就是一个独立的应用软件,与VB、C++等程序语言所设计的软件界面没什么差别。一般情况下,hta可以用vbscript与jscript编写,vbs功能更强大。 hta可以操作数据库,界面用html+css就可以实现,很方便写一些简单的应用。

OLE(Object Linking and Embedding,对象连接与嵌入)。是一种面向对象的技术,利用这种技术可开发可重复使用的软件组件(COM)。OLE不仅是桌面应用程序集成,而且还定义和实现了一种允许应用程序作为软件“对象”(数据集合和操作数据的函数)彼此进行“连接”的机制,这种连接机制和协议称为组件对象模型(Component Object Model),简称COM。OLE可以用来创建复合文档,复合文档包含了创建于不同源应用程序,有着不同类型的数据,因此它可以把文字、声音、图像、表格、应用程序等组合在一起。

第三部分 攻击代码分析

3.1 ms.rtf

CVE-2017-0199漏洞分析

new ActiveXObject(“wscript.shell”)  启动创建对象的应用程序。一旦对象被创建,就可以用定义的对象变量在代码中引用它。

a.Run(“%SystemRoot%system32calc.exe”) 运行计算器。%systemroot%是系统中的一个变量,表示的是windows系统启动文件夹位置。System32是系统文件夹下的一个子文件夹,而计算器的应用正是在此文件夹下。

3.2 配置文件

CVE-2017-0199漏洞分析

对于rtf文件,服务器的Content-type会返回application/rtf

CVE-2017-0199漏洞分析

对于rtf文件,服务器的Content-type会返回application/hta,所以word将返回对象以hta脚本的方式执行

CVE-2017-0199漏洞分析

此处关键点在于添加objupdate标签,这个标签的作用是可以自动更新对象,因此加了这一处后就无需用户交互即可执行恶意代码。

第四部分 利用复现过程

Step1:在网站根目录下构造ms.rtf文档

在网站根目录下新建一个 rtf 文件, 内容任意,如(Dong&Li test)保存命名 ms.rtf。

打开Apache,用浏览器访问网站根目录,可以看见根目录下的文件(如图)

CVE-2017-0199漏洞分析

Step2构建发送给受害者的恶意文档exp.rtf

接着新建一个 word 文档,插入 => 对象 => 由文件创建 => 链接到文件 =>ms.rtf 的地址,然后将 word 另存为rtf格式,文件名为 exp.rtf。

在我们的实验中ms.rtf的地址为本机IP+文件名(如:http://192.168.80.1/ms.rtf)。

CVE-2017-0199漏洞分析

对象插入成功后,文档内容如下

CVE-2017-0199漏洞分析

此时如果我们双击“Dong&Li test”,会正常弹出文档ms.rtf内容。

CVE-2017-0199漏洞分析

Step3:改写ms.rtf

此时将网站根目录下的 ms.rtf 用记事本打开,在文档添加如下代码:

CVE-2017-0199漏洞分析

Step4修改配置文件

此时在apache配置文件conf/mime.types中把

CVE-2017-0199漏洞分析

修改成

CVE-2017-0199漏洞分析

Step5:删除浏览器缓存

打开ie浏览器,删除浏览器缓存

CVE-2017-0199漏洞分析

Step6:验证攻击

重启服务器。打开 exp.rtf, 双击内容,即可弹出计算器

CVE-2017-0199漏洞分析

Step7:修改文档,实现自动攻击

这样的poc还是需要用户双击对象进行交互的,我们可以进一步做成自动弹出计算器。这里我们先使用记事本把exp.rtf打开。

CVE-2017-0199漏洞分析

将 objectobjautlinkrsltpict 修改为 objectobjautlinkobjupdatersltpict

CVE-2017-0199漏洞分析

Step8:验证自动攻击

保存修改后,此时若再打开exp.rtf,就会直接弹出计算机,不需要用户手动点击。

CVE-2017-0199漏洞分析

第五部分 攻击总结

漏洞CVE-2017-0199允许攻击者远程执行恶意VBScript脚本。这是一个逻辑漏洞,而且目前大多数安全缓解方案都无法处理针对这种漏洞的攻击活动。当恶意脚本运行之后,它会下载并执行恶意Payload,并向用户显示一个钓鱼文档。我们所检测到的两个恶意文档都会执行相应的恶意Payload,其中一个包含LATENTBOT,而另一个则包含WingBird/FinFisher。虽然恶意文档中仅包含一个指向攻击者服务器的链接地址,但MVX引擎仍然成功检测到了这种多阶段的攻击活动,不过微软公司已经发布了相应的更新补丁,所以尽快对自己的Office软件进行升级是十分必要的。

该漏洞利用OFFICE OLE对象链接技术,将包裹的恶意链接对象嵌在文档中,OFFICE调用URL Moniker(COM对象)将恶意链接指向的HTA文件下载到本地, URL Moniker通过识别响应头中content-type的字段信息最后调用mshta.exe将下载到的HTA文件执行起来。

微软提供的COM/OLE技术犹如一把双刃剑,在为开发人员提供方便的同时,也为攻击者进行恶意攻击提供了机会。此次漏洞便是一个很好的说明。攻击者巧妙的利用了OLE link object、URL Moniker和Windows在执行HTA文件时会匹配搜索数据流的特性,构造了包含恶意链接的RTF文档,绕过大多数的防御措施,实现自己的恶意行为。

参考资料

http://www.zerokeeper.com/penetration/cve20170199-office-rtf-replication-process.html

CVE-2017-0199漏洞复现与研究_空旷在远方的博客-CSDN博客_cve-2017-0199

访问的文章审核中… – FreeBuf网络安全行业门户

访问的文章审核中… – FreeBuf网络安全行业门户

访问的文章审核中… – FreeBuf网络安全行业门户

Tuuu Nya’s blog | 一个想当黑客的艺术家 ?

来源:一半西瓜

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年10月15日
下一篇 2022年10月15日

相关推荐