当前位置:安全客 >> 知识详情

【技术分享】对СVE-2017-11826漏洞利用程序的分析

2017-10-31 11:13:01 阅读:12990次 收藏 来源: securelist.com 作者:興趣使然的小胃

http://p9.qhimg.com/t01b7630c4fe477da31.jpg

译者:興趣使然的小胃

预估稿费:80RMB

投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿


一、前言


在最近的周二补丁日(10月17日)中,微软发布了62个漏洞补丁,其中有个补丁负责修复СVE-2017-11826漏洞。СVE-2017-11826漏洞是一个非常严重的零日(zero-day)漏洞,攻击者可借此实施针对性攻击行动,所有版本的Microsoft Office软件都会受此漏洞影响。


二、技术分析


攻击者所使用的漏洞利用程序为一个RTF文档,其中包含一个DOCX文档,DOCX文档负责利用Office Open XML解析器中存在的СVE-2017-11826漏洞。

http://p8.qhimg.com/t01cee0b82f3fd4e13e.png

漏洞利用载荷本身为word/document.xml格式,如下所示:

http://p9.qhimg.com/t0125fdb1688e15fd2b.png

根据Office Open XML文件格式标准(ECMA-376)中的描述,“font”元素用来描述文档中使用的字体,正常的“font”元素如下所示:

http://p3.qhimg.com/t0183bd7d171a5537e6.png

在漏洞利用载荷中,并没有出现</w:font>这个闭合标签。紧跟在<w:font>标签之后的是<o:idmap/>对象元素,这种情况会导致OOXML解析器出现“类型混淆(type confusion)”现象。使用任何对象元素都可以成功利用这个漏洞。在漏洞利用点之前,我们必须通过某个检查步骤,具体方法是在<w:font>标签之前设立一个OLEObject元素,其中的name属性值从UTF-8编码转换为Unicode编码后长度必须大于或等于32个字节。

http://p6.qhimg.com/t0150154c30b5a0eb07.png

从UTF-8编码转换为Unicode编码后,E8 A3 AC E0 A2 80会变成EC 88 88 08。

http://p2.qhimg.com/t01164840e927553e5d.png

如果这些条件全部满足,这个指针会被解除引用,控制流程会移交给“该地址+4”处所对应的内容。

http://p0.qhimg.com/t014577fe5eca16df25.png

如果想控制0x088888EC地址处的内存内容,攻击者需要将常见的堆喷射(heap spraying)技术与ActiveX组件结合使用。

http://p9.qhimg.com/t018b75c12f1e219880.png

漏洞利用程序使用msvbvm60.dll中的ROP以及gadget(指令代码)来绕过ASLR(地址空间布局随机化)以及DEP(数据执行保护)机制。RTF文档会使用与msvbvm60.dll文件相关联的CLSID来加载这个DLL模块。

http://p9.qhimg.com/t017c5279ef5b166a50.png

ROP的第一部分功能是设置ESP寄存器的值:

http://p9.qhimg.com/t017fe858fdc93f8ec7.png

ROP的第二部分内容会被忽略掉,其作用是将EIP寄存器设置为0x088883EC。最后的“pop eax; retn”指令会将0x729410D0地址填充到EAX中。这个地址是msvbvm60.dll导入(Imports)表中VirtualProtect指针所对应的地址(VirtualProtect位于Kernel32.dll中)。

http://p7.qhimg.com/t015ac849f1a5fa8c48.png

http://p6.qhimg.com/t01c76883b6054f0cbe.png

下一个ROP gadget会使用这个VirtualProtect指针来调用VirtualProtect(0x8888C90, 0x201, 0x40, 0x72A4C045)函数。执行这个操作后,程序控制权会移交给0x8888F70地址处的shellcode,这段shellcode会解密并执行内嵌的DLL:

http://p1.qhimg.com/t01ff0526bda47733ce.png


三、附录


卡巴斯基实验室安全解决方案将СVE-2017-11826漏洞利用程序标记为:

MSWord.Agent.ix

MSOffice.CVE-2017-11826.a

HEUR:Exploit.MSOffice.Generic

对应的IOC为:

cb3429e608144909ef25df2605c24ec253b10b6e99cbb6657afa6b92e9f32fb


本文由 安全客 翻译,转载请注明“转自安全客”,并附上链接。
原文链接:https://securelist.com/analyzing-an-exploit-for-%D1%81ve-2017-11826/82869/

参与讨论,请先 | 注册 | 匿名评论
发布
用户评论
吃瓜群众 2017-11-02 14:09:26
回复 |  点赞

明明就是翻译的文章,为啥ioc还故意给个错的。。。。。

查看更多