如何进行Microsoft Office内存损坏漏洞CVE–2017–11882的分析

如何进行Microsoft Office内存损坏漏洞CVE–2017–11882的分析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。


        2017年11月,微软在例行系统补丁发布中,修复了一个Office远程代码执行的严重漏洞,编号CVE-2017-11882。该漏洞类型为缓冲区溢出,位为EQNEDT32.EXE组件。受害用户打开恶意的office文档时,无需交互,就可能执行恶意代码。

据悉,这个组件是由Design Science Inc.开发的,后来由微软收购。该组件于2001年编译嵌入office,之后没有任何进一步的修改。所以该漏洞已存在17年之久。影响现阶段流行的所有office版本。

360CERT经过分析确认,确定该漏洞存在远程命令执行风险,建议用户尽快更新相应补丁。

0x01漏洞概述


EQNEDT32.EXE是用于在文档中插入和编辑方程式。插入到文档中的任何公式都是OLE对象。该组件是在OLE技术规范下设计的。首发于Microsoft Office 2000和Microsoft 2003。从Microsoft Office 2007套件开始,显示和编辑方程的方法发生了变化,虽然EQNEDT32.EXE变得过时,不过,为了保持版本兼容性,它并没有从Office套件中删除。

EQNEDT32.EXE为OLE实现了一组标准的COM接口。

  • IOleObject

  • IDataObject

  • IOleInPlaceObject

  • IOleInPlaceActiveObject

  • IpersistStorage

而问题的就在于IpersistStorage:Load这个位置。因为历史久远,该组件开发的时候并没有例如ASLR这样的漏洞缓解措施。利用起来更加的方便。

0x02 漏洞分析


检测到VirusTotal上有该漏洞的POC,多家检测机构标注为CVE-2017-11882。(最开始只有微软能检测)

如何进行Microsoft Office内存损坏漏洞CVE–2017–11882的分析  microsoft 第1张

如上所说,通过恶意样本分析,问题出在EQNEDT.EXE中sub_41160F函数中。如图所示,strcpy函数没有检查复制时的长度造成了溢出。

如何进行Microsoft Office内存损坏漏洞CVE–2017–11882的分析  microsoft 第2张

通过调试可以猜测在正常情况下eax寄存器也就是第一个参数应该是字体名。

如何进行Microsoft Office内存损坏漏洞CVE–2017–11882的分析  microsoft 第3张

通过rtfobj抽取样本中的OLE对象,发现字体名为cmd.exe……。

如何进行Microsoft Office内存损坏漏洞CVE–2017–11882的分析  microsoft 第4张

如何进行Microsoft Office内存损坏漏洞CVE–2017–11882的分析  microsoft 第5张

如何进行Microsoft Office内存损坏漏洞CVE–2017–11882的分析  microsoft 第6张

在填充的AAA……之后是0x430C12,也就是EQNEDT.EXE中调用WinExec的地方。

如何进行Microsoft Office内存损坏漏洞CVE–2017–11882的分析  microsoft 第7张

返回地址被覆盖为0x430C12,从而执行命令。

如何进行Microsoft Office内存损坏漏洞CVE–2017–11882的分析  microsoft 第8张

如何进行Microsoft Office内存损坏漏洞CVE–2017–11882的分析  microsoft 第9张

最后执行效果:

如何进行Microsoft Office内存损坏漏洞CVE–2017–11882的分析  microsoft 第10张

0x03影响版本


Office 365

Microsoft Office 2000

Microsoft Office 2003

Microsoft Office 2007 Service Pack 3

Microsoft Office 2010 Service Pack 2

Microsoft Office 2013 Service Pack 1

Microsoft Office 2016

0x04修复建议


  1. 360CERT建议用户及时更新补丁,以提高系统安全性。

  2. 缓解措施:该问题可通过修改注册表,禁用该模块的方式进行缓解。其中XX.X为版本号。

reg add "HKLM\SOFTWARE\Microsoft\Office\XX.X\Common\COM Compatibility\{0002CE02-0000- 0000-C000-000000000046}" /v "Compatibility Flags" /t REG_DWORD /d 0x400

reg add "HKLM\SOFTWARE\Wow6432Node\Microsoft\Office\XX.X\Common\COM Compatibility\{0002CE02-0000-0000-C000-000000000046}" /v "Compatibility Flags" /t REG_DWORD /d 0x400

关于如何进行Microsoft Office内存损坏漏洞CVE–2017–11882的分析问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注蜗牛博客行业资讯频道了解更多相关知识。

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo99@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

评论

有免费节点资源,我们会通知你!加入纸飞机订阅群

×
天气预报查看日历分享网页手机扫码留言评论Telegram