宏观视角下的office漏洞(2010-2018)
奇技指南
本文作者银雁冰:360高级威胁应对团队·高级威胁自动化组
本文来自安全客,原文地址:
https://www.anquanke.com/post/id/180067
前 言
本文是对我在Bluehat Shanghai 2019
演讲内容的一个拓展性总结。在本文中,我将总结2010
年到2018
年出现的Office
相关0day/1day
漏洞。我将对每种类型的漏洞做一次梳理,并对每个漏洞的相关分析文章进行引用和归类。
希望这篇文章可以帮助到后续从事office
漏洞研究的人。
概 述
从2010
年到2018
年,office
相关的0day/1day
攻击从未暂停过。以下一些CVE
编号,是我在研究过程中具体观察到的,有过实际攻击样本的0day/1day
漏洞(也许还有一些遗漏的,读者可以进行补充)。
我们先来看一下具体的CVE
编号。
我们先按组件类型对上述漏洞进行分类。需要说明的是,Flash
本身也属于ActiveX
控件的一种,下表中分类时我将其独立归为一类。
我们再依据漏洞类型对上述非Flash
漏洞进行分类。(Flash
漏洞的相关总结可以参考其他研究员的文章)
接下来我们按上面第二张表(Flash
漏洞除外)来逐一审视这些漏洞。
RTF控制字解析问题
CVE-2010-3333
该漏洞是科恩实验室掌门人wushi
发现的。这是一个栈溢出漏洞。
关于这个漏洞的分析文章看雪上有很多,以下列举几篇。
CVE-2010-3333漏洞分析(深入分析)
(https://bbs.pediy.com/thread-158078.htm)
MS10-087从漏洞补丁到POC
(https://bbs.pediy.com/thread-195992.htm)
《漏洞战争》的第2
章第4
节对这个漏洞也有比较系统的介绍,感兴趣的读者可以自行阅读相关章节。
CVE-2014-1761
该漏洞是谷歌发现的一个0day
。这是一个堆内存越界写入漏洞。
李海飞曾对该漏洞做过非常精彩的分析。
A Close Look at RTF Zero-Day Attack CVE-2014-1761 Shows Sophistication of Attackers
(https://securingtomorrow.mcafee.com/other-blogs/mcafee-labs/close-look-rtf-zero-day-attack-cve-2014-1761-shows-sophistication-attackers/)
看雪论坛也有关于该漏洞的两篇高质量分析文章。
CVE-2014-1761分析笔记
(https://bbs.pediy.com/thread-192351.htm)
ms14-017(cve-2014-1761)学习笔记 (里面有提到如何配置正确的环境)
(https://bbs.pediy.com/thread-197382.htm)
安全客上也有关于该漏洞的一篇高质量分析。
手把手教你如何构造office漏洞EXP(第三期)
(https://www.anquanke.com/post/id/85020)
此外,韩国的安博士也发过一篇关于这个漏洞的报告。
Analysis of Zero-Day Exploit_Issue 01 Microsoft Word RTF Vulnerability CVE-2014-1761
(http://global.ahnlab.com/global/upload/download/documents/1501086836809173.pdf)
调试这个漏洞时需要注意的地方是该漏洞的某些样本对触发环境比较苛刻,上述文章里面有提到如何构造相关实验环境。
CVE-2016-7193
该漏洞是Austrian Military Cyber Emergency Readiness Team
(奥地利军事网络应急准备小组)报告给微软的一个0day
。
这也是一个堆内存越界写入漏洞。
百度安全实验室曾对该漏洞做过比较完整的分析。
APT 攻击利器-Word 漏洞 CVE-2016-7193 原理揭秘
(https://paper.seebug.org/288/)
我也曾关于该漏洞的利用编写分享过一篇分析。
结合一个野外样本构造一个cve-2016-7193弹计算器的利用
(https://bbs.pediy.com/thread-221792.htm)
Open XML标签解析问题
CVE-2015-1641
谷歌的0day总结表格中将其列举为2015
年的0day
之一。
(https://docs.google.com/spreadsheets/d/1lkNJ0uQwbeC1ZTRrxdtuPLCIl7mlUreoKfSIgajnSyY/htmlview#)
这是一个类型混淆漏洞。
关于该漏洞,飞塔曾写过一篇分析文章。
The Curious Case Of The Document Exploiting An Unknown Vulnerability – Part 1
(https://www.fortinet.com/blog/threat-research/the-curious-case-of-the-document-exploiting-an-unknown-vulnerability-part-1.html)
阿里安全也关于该漏洞写过一篇精彩的分析。
word类型混淆漏洞(CVE-2015-1641)分析
(https://www.freebuf.com/vuls/81868.html)
安全客上也有该漏洞的一篇精彩分析。
手把手教你如何构造office漏洞EXP(第四期)
(https://www.anquanke.com/post/id/85031)
知道创宇404
实验室也写过一篇关于该漏洞的精彩分析。
CVE-2015-1641 Word 利用样本分析
(https://paper.seebug.org/351/)
我也写过涉及该漏洞原理的一篇分享。
Open XML标签解析类漏洞分析思路
(https://www.anquanke.com/post/id/103080)
在调试这类涉及到堆喷射的office
样本时,需要特别注意调试器的介入往往会影响进程的堆布局(特别是一些堆选项的设置)。如果调试时样本行为无法正常触发,往往是直接用调试器启动样本导致的,这种时候可以试一下双击样本后再挂上调试器。
CVE-2017-11826
该漏洞是我所在团队报给微软的一个0day
。也是第一个由中国安全厂商发现的Office 0day
。
这是一个类型混淆漏洞,原理上和CVE-2015-1641
上有诸多一致。
FireEye
大牛binjo
曾写过该漏洞的一篇分析文章。
CVE-2017-11826 漏洞分析
(https://paper.seebug.org/435/)
看雪上也有一篇对该漏洞的分析文章,不过这篇文章可能需要二进制漏洞板块的阅读权限。
CVE-2017-11826 样本分析
(https://bbs.pediy.com/thread-221995.htm)
我也写过两篇与该漏洞相关的分析文章,当时水平有限,分析质量比较一般。
CVE-2017-11826漏洞分析、利用及动态检测
(https://www.anquanke.com/post/id/87122)
CVE-2017-11826再现在野新样本
(https://www.anquanke.com/post/id/87154)
卡巴斯基也写过一篇关于该漏洞的分析文章。
Analyzing an exploit for СVE-2017-11826
(https://securelist.com/analyzing-an-exploit-for-%D1%81ve-2017-11826/82869/)
2017年的滴滴安全大会上曾对该漏洞的细节有过一些补充。
重装上阵-office攻击来袭
(https://blogoss.yinghualuo.cn/blog/2018/03/%E9%87%8D%E8%A3%85%E4%B8%8A%E9%98%B5-office%E6%94%BB%E5%87%BB%E6%9D%A5%E8%A2%AD-%E6%9D%A8%E5%86%9B%E9%94%8BnEINEI.pdf)
关于该漏洞的其他一些分析文章总结如下。
office CVE-2017-11826杂谈
(https://www.cnblogs.com/goabout2/p/8186018.html)
Exploiting Word: CVE-2017-11826 (这篇文章详细介绍了利用编写过程)
(https://www.tarlogic.com/en/blog/exploiting-word-cve-2017-11826/)
CVE–2017–11826 样本分析报告(包含补丁分析)
(https://www.anquanke.com/post/id/87150)
Open XML标签解析类漏洞分析思路
(https://www.anquanke.com/post/id/103080)
CVE-2017-11826 Exploited in the Wild with Politically Themed RTF Document
(https://www.fortinet.com/blog/threat-research/cve-2017-11826-exploited-in-the-wild-with-politically-themed-rtf-document.html)
Analyzing Microsoft Office Zero-Day Exploit CVE-2017-11826: Memory Corruption Vulnerability
(https://securingtomorrow.mcafee.com/other-blogs/mcafee-labs/analyzing-microsoft-office-zero-day-exploit-cve-2017-11826-memory-corruption-vulnerability/)
这个漏洞可以和CVE-2015-1641
, CVE-2016-7193
一起进行调试,漏洞原理和利用手法上都有一定相似之处。
ActiveX控件解析问题
CVE-2012-0158
这也是一个栈溢出漏洞,时至今日依然在被使用。
关于该漏洞,我曾写过一篇比较详细的分析。
CVE-2012-0158漏洞分析、利用、检测和总结
(https://www.anquanke.com/post/id/91643)
安全客上有另一篇对该漏洞的分析文章。
手把手教你如何构造office漏洞EXP(第一期)
(https://www.anquanke.com/post/id/84520)
推荐阅读一篇有关该漏洞的论文。
面向RTF的OLE对象漏洞分析研究
(http://www.infocomm-journal.com/cjnis/CN/abstract/abstract156911.shtml)
上面几篇文章对该漏洞的原因已经分析清楚了。
关于利用部分,这么多年下来已经发展出形形色色的手法,网上也有形形色色的文章,这里不再列出,感兴趣的读者可以自行查找。
CVE-2012-1856
这是一个UAF
漏洞。
看雪上有一篇关于该漏洞的精彩分析,算是写得比较清楚了。
CVE-2012-1856 Office ActiveX控件MSCOMCTL.OCX UAF漏洞分析
(https://bbs.pediy.com/thread-223844.htm)
CVE-2015-1642
该漏洞公布时也是一个0day
。这是一个UAF
漏洞。
MWR
实验室的Yong Chuan, Koh
当时也独立发现了该漏洞,他写过一篇关于该漏洞的分析。
Microsoft Office CTaskSymbol UseAfter-Free Vulnerability
(https://labs.mwrinfosecurity.com/assets/1024/original/mwri_advisory_microsoft_office_ctasksymbol_use_after_free_cve-2015-1642.pdf)
NCCGroup
的Dominic Wang
也分享过关于该漏洞原理和利用构造的一些细节。
Understanding Microsoft Word OLE Exploit Primitives: Exploiting CVE-2015-1642 Microsoft Office CTaskSymbol Use-After-Free Vulnerability
(https://www.nccgroup.trust/globalassets/our-research/uk/whitepapers/2015/10/understanding-microsoft-word-ole-exploit-primitives---exploiting-cve-2015-1642.pdf)
Danny__Wei
则实现了Dominic Wang
描述的利用过程,并分享了相关代码。
CVE-2015-1642 POC
(https://www.cnblogs.com/Danny-Wei/p/5003302.html)
我在Danny__Wei
代码的基础上也做了一番调试,写过一篇分享。
从CVE-2015-1642到Office ActiveX控件堆喷探究
(https://bbs.pediy.com/thread-250071.htm)
CVE-2015-2424
该漏洞是APT28
所使用的一个0day
。但该漏洞后续并未被广泛使用。
SpiderLabs
曾写过相关样本的一篇分析文章,但并未涉及漏洞细节部分。
Tsar Team Microsoft Office Zero Day CVE-2015-2424
(https://www.trustwave.com/en-us/resources/blogs/spiderlabs-blog/tsar-team-microsoft-office-zero-day-cve-2015-2424/)
关于该漏洞的触发现场,我目前唯一能找到的是twitter上的一张截图。
我并未深入调试过该漏洞的样本,感兴趣的读者可以自己调试一下。
CVE-2017-11882
该漏洞是office
公式编辑器组件内的一个栈溢出漏洞,这个漏洞是目前攻击者用的最多的office
漏洞,大有取代CVE-2012-0158
的趋势。
我曾写过关于该漏洞的一篇分析。这篇文章中提到的另一处溢出点其实就是CVE-2018-0802
。
CVE-2017-11882漏洞分析、利用及动态检测
(https://www.anquanke.com/post/id/87311)
这是漏洞发现者写的分析文章。
Skeleton in the closet. MS Office vulnerability you didn’t know about
(https://embedi.org/blog/skeleton-closet-ms-office-vulnerability-you-didnt-know-about/)
以下几篇分析文章也值得一看。
Did Microsoft Just Manually Patch Their Equation Editor Executable? Why Yes, Yes They Did. (CVE-2017-11882)
(https://blog.0patch.com/2017/11/did-microsoft-just-manually-patch-their.html)
漏洞分析一百篇-05-WindowsOLE应用程序EQBEDT32上栈溢出漏洞
(http://leo00000.cn/2018/%E6%BC%8F%E6%B4%9E%E5%88%86%E6%9E%90%E4%B8%80%E7%99%BE%E7%AF%87-05-WindowsOLE%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8FEQBEDT32%E4%B8%8A%E6%A0%88%E6%BA%A2%E5%87%BA%E6%BC%8F%E6%B4%9E/)
利用了Office公式编辑器特殊处理逻辑的最新免杀技术分析(CVE-2017-11882) (强烈建议好好阅读一下这篇)
(https://ti.360.net/blog/articles/cve-2017-11882-exploit-kit-sample/)
CVE-2018-0798
该漏洞即CheckPoint报给微软的CVE-2018-0802
漏洞,在分类上微软这次应该是乌龙了,毕竟当时有大量公式编辑器漏洞报给MSRC
。我问过一个报了这个漏洞的小伙伴,他告诉我这个漏洞应该是CVE-2018-0798
。
这也是公式编辑器的一个栈溢出漏洞。它的优势在于无论在打11882
的补丁的机器上还是没打11882
补丁的机器上都能用。所以近来也一直受攻击者青睐。
首先列举CheckPoint
对该漏洞的一篇分析。
Many Formulas, One Calc – Exploiting a New Office Equation Vulnerability
(https://research.checkpoint.com/another-office-equation-rce-vulnerability/)
关于该漏洞我也写过一篇分析文章。
手把手教你复现office公式编辑器内的第三个漏洞
(https://www.anquanke.com/post/id/94841)
CVE-2018-0802
该漏洞是我所在团队报给微软的一个0day
。
这也是公式编辑器的一个栈溢出漏洞。相关样本Bypass ASLR
的方式可以说是教科书级别的。
我当时写过一篇关于该漏洞的分析。
2018年微软修复的首个Office 0day漏洞(CVE-2018-0802)分析
(https://www.anquanke.com/post/id/94210)
以下为该漏洞的其他一些分析文章。
The Bug That Killed Equation Editor – How We Found, Exploited And Micropatched It (CVE-2018-0802)
(https://blog.0patch.com/2018/01/the-bug-that-killed-equation-editor-how.html)
威胁预警:2018年微软修复的首个Office 0day漏洞(CVE-2018-0802)
(https://www.freebuf.com/column/160006.html)
Office TIFF图片解析漏洞
CVE-2013-3906
该漏洞是由李海飞发现的一个0day
。相关样本随后带来一波用ActiveX
控件在Open XML
文档内进行堆喷射的潮流。影响了包括CVE-2015-1641
,CVE-2015-1642
,CVE-2016-7193
和CVE2017-11826
在内的诸多漏洞的利用编写。
这是一个整数溢出漏洞。
李海飞写过两篇对该漏洞样本的分析。
McAfee Labs Detects Zero-Day Exploit Targeting Microsoft Office
(https://securingtomorrow.mcafee.com/other-blogs/mcafee-labs/mcafee-labs-detects-zero-day-exploit-targeting-microsoft-office-2/)
Solving the Mystery of the Office Zero-Day Exploit and DEP
(https://securingtomorrow.mcafee.com/other-blogs/mcafee-labs/solving-the-mystery-of-the-office-zero-day-exploit-and-dep/)
此外李海飞还在一次会议上讲述了发现这个0day
的过程。
Exploring in the Wild: A Big Data Approach to Application Security Research (and Exploit Detection)
(https://cansecwest.com/slides/2014/Exploit%20detection%20-%20Exploring_In_the_Wild_final.pdf)
我也写过一篇关于该漏洞原理的分析。
CVE-2013-3906漏洞分析
(https://bbs.pediy.com/thread-225993.htm)
安全客上还有另一篇关于该漏洞的高质量分析,值得一看。
手把手教你如何构造office漏洞EXP(第二期)
(https://www.anquanke.com/post/id/84536)
Office EPS文件解析漏洞
CVE-2015-2545
这是FireEye
报给微软的第一个EPS
组件0day
。这个漏洞的出现为office
漏洞利用打开了一扇新的大门,即在office
内可以用类似浏览器脚本语言的方式进行利用编写。但由于在office 2010
及以上版本EPS
组件是通过一个沙箱进程(FLTLDR.EXE
)去加载的,所以需要同时配合提权漏洞去使用。
这是一个UAF
漏洞。
FireEye
曾写过两篇关于该漏洞的分析文章。
Two for One: Microsoft Office Encapsulated PostScript and Windows Privilege Escalation Zero-Days
(https://www.fireeye.com/content/dam/fireeye-www/blog/pdfs/twoforonefinal.pdf)
The EPS Awakens
(https://www.fireeye.com/blog/threat-research/2015/12/the_eps_awakens.html)
比较有意思的是,该漏洞出现后不久就出现了完全绕过EMET
的变种,这几个绕过EMET
的样本在现在看来也是质量非常高的,国外的分析人员有两篇相关的分析。上面FireEye
第二篇文章也涉及到了其中一个样本。
CVE-2015-2545 ITW EMET Evasion
(http://casual-scrutiny.blogspot.com/2016/02/cve-2015-2545-itw-emet-evasion.html)
HOW THE EPS FILE EXPLOIT WORKS TO BYPASS EMET (CVE-2015-2545) – A TECHNICAL EXPLORATION
(http://blog.morphisec.com/exploit-bypass-emet-cve-2015-2545)
我之前尝试翻译过上述两篇文章,虽然翻译得不是很好。
EPS文件利用如何逃逸 EMET(CVE-2015-2545) —— 一次技术探索
(https://bbs.pediy.com/thread-216045.htm)
野外的 CVE-2015-2545 逃逸了 EMET
(https://bbs.pediy.com/thread-216046.htm)
2017年的滴滴安全大会上曾对该漏洞的细节有过一些补充。
重装上阵-office攻击来袭
(https://blogoss.yinghualuo.cn/blog/2018/03/%E9%87%8D%E8%A3%85%E4%B8%8A%E9%98%B5-office%E6%94%BB%E5%87%BB%E6%9D%A5%E8%A2%AD-%E6%9D%A8%E5%86%9B%E9%94%8BnEINEI.pdf)
此外,国内也有一些关于该漏洞的分析文章。
警惕利用Microsoft Office EPS漏洞进行的攻击 (貌似目前已经无法访问)
(http://seclab.dbappsecurity.com.cn/?p=603)
针对CVE-2015-2545漏洞研究分析
(https://www.4hou.com/technology/4218.html)
CVE-2015-2545 Word 利用样本分析
(https://paper.seebug.org/368/)
CVE-2017-0261
该漏洞是FireEye
报给微软的第二个EPS
组件0day
。
这也是一个UAF
漏洞。
FireEye
曾写过一篇关于该漏洞的分析文章。
EPS Processing Zero-Days Exploited by Multiple Threat Actors
比较有意思的是,目前公开的相关样本无法在我的office 2010
环境上触发,但可以在office 2007
环境上触发,读者若调试这个样本,需要注意这一点。
CVE-2017-0262
该漏洞是FireEye
报给微软的第三个EPS
组件0day
。
这是一个类型混淆漏洞。
FireEye
在同一篇文章中对该漏洞做了非常精彩的分析。
EPS Processing Zero-Days Exploited by Multiple Threat Actors
(https://www.fireeye.com/blog/threat-research/2017/05/eps-processing-zero-days.html)
比较有意思的是,目前公开的相关样本无法在我的office 2007
环境上触发,但可以在office 2010
环境上触发。读者若调试这个样本,需要注意这一点。
而且,office 2010
上调试时会发现FLTLDR.EXE
进程以Low
权限启动去加载EPS
组件。想要挑战自己的读者可以试着去调试一下相关样本。
借助Moniker加载的漏洞
CVE-2017-0199
该漏洞是FireEye
报给微软的一个office 0day
。这个漏洞的出现影响了之后长达一年的office
漏洞利用方式。
这是一个逻辑漏洞,绕过了office
所有安全缓解机制(但无法绕过保护模式),不禁让人想到2014
年的沙虫漏洞。事实上,李海飞也正是从沙虫样本受到了启发,发现了该漏洞里面包含的另一个点(script
那个点)。
FireEye
写过两篇关于该漏洞相关样本的分析。
CVE-2017-0199: In the Wild Attacks Leveraging HTA Handler
(https://www.fireeye.com/blog/threat-research/2017/04/cve-2017-0199-hta-handler.html)
CVE-2017-0199 Used as Zero Day to Distribute FINSPY Espionage Malware and LATENTBOT Cyber Crime Malware
(https://www.fireeye.com/blog/threat-research/2017/04/cve-2017-0199_useda.html)
李海飞也做过关于该漏洞的专题演讲。
Moniker Magic: Running Scripts Directly in Microsoft Office
(https://0b3dcaf9-a-62cb3a1a-s-sites.googlegroups.com/site/zerodayresearch/Moniker_Magic_final.pdf)
我当时也用蹩脚的英语翻译过李海飞的文章。
Moniker魔法:直接在Microsoft Office中运行脚本
(https://bbs.pediy.com/thread-219234.htm)
飞塔也对该漏洞的补丁做过一次精彩的分析。
An Inside Look at CVE-2017-0199 – HTA and Scriptlet File Handler Vulnerability
(https://www.fortinet.com/blog/threat-research/an-inside-look-at-cve-2017-0199-hta-and-scriptlet-file-handler-vulnerability.html)
CVE-2017-8570
该漏洞是李海飞受到CVE-2017-0199
的启发后独立发现的一个漏洞,绕过了0199
当时的补丁,杀伤力和CVE-2017-0199
几乎一样巨大。
这是一个逻辑漏洞,也绕过了office
的所有安全缓解机制(但无法绕过保护模式),李海飞并未公布相关样本,但随后李海飞的同事在一次会议上公开了关于该漏洞的更多细节,接着相关样本被构造出来并开源,目前这个漏洞也紧随公式编辑器漏洞后面,为最流行的攻击漏洞之一。
李海飞在自己个人博客上分享过该漏洞的一些细节。
“Bypassing” Microsoft’s Patch for CVE-2017-0199
(http://justhaifei1.blogspot.com/2017/07/bypassing-microsofts-cve-2017-0199-patch.html)
随后,李海飞的同事nEINEI
大牛在一次会议上分享了如下议题,里面公布了相关漏洞的更多细节。
对安全边界的重炮打击:从内核提权到应用层逻辑漏洞谈起
(http://www.vxjump.net/files/seccon/EOP-RCE.pdf)
CVE-2017-8759
该漏洞本质是一个.Net
代码注入漏洞。比较巧妙的是攻击者借助Moniker
去加载相关文件,显然也是受到了CVE-2017-0199
的启发。当时出现时令人大开眼界。
该漏洞也是由FireEye
报给微软的一个0day。
FireEye
写过一篇关于该漏洞精彩的分析。
FireEye Uncovers CVE-2017-8759: Zero-Day Used in the Wild to Distribute FINSPY
(https://www.fireeye.com/blog/threat-research/2017/09/zero-day-used-to-distribute-finspy.html)
我所在团队当时跑出了相关样本,但由于其他的一些原因未能及时发现这个0day
。以下是我们团队事后写的一篇分析文章。
一个换行符引发的奥斯卡0day漏洞(CVE-2017-8759)重现
(https://www.anquanke.com/post/id/86833)
我后续还写过一篇关于该漏洞利用新姿势的分享。
CVE-2017-8759的几种利用新姿势
(https://www.anquanke.com/post/id/87246)
虽然这个漏洞目前已经很少被使用,但一个office
样本远程加载C#
文件,即时编译成一个dll
动态库,并直接加载到office
进程空间,整个过程实在太为巧妙,同时也绕过了office
所有安全缓解机制(但无法绕过保护模式)。
值得一提的是,这个漏洞也提名了2018
年的最佳客户端漏洞。虽然最终没有获奖,但其思路之巧妙,确实令人惊叹。
CVE-2018-8174
该漏洞是我所在团队发现并报给微软的一个0day
。这是一个VBScript
的UAF
漏洞,但攻击者巧妙地借助Moniker
去加载漏洞文件。这是第一次一个office
样本去加载一个IE 0day
,思路不可谓不清奇。
这是我所在团队当时对相关样本写的一篇分析。
APT-C-06组织在全球范围内首例使用“双杀”0day漏洞(CVE-2018-8174)发起的APT攻击分析及溯源
(http://blogs.360.cn/post/cve-2018-8174.html)
卡巴斯基也写过对该漏洞的两篇分析文章。
The King is dead. Long live the King!
(https://securelist.com/root-cause-analysis-of-cve-2018-8174/85486/)
Delving deep into VBScript
(https://securelist.com/delving-deep-into-VBScript-analysis-of-cve-2018-8174-exploitation/86333/)
看雪上随后也陆续公开了一些对于该漏洞的高质量分析文章。
CVE-2018-8174 “双杀”0day 从UAF到Exploit
(https://bbs.pediy.com/thread-248477.htm)
“深入”探索CVE-2018-8174
(https://bbs.pediy.com/thread-249933.htm)
此外还有一些其他精彩的分析文章。
CVE-2018-8174:从UAF到任意地址读写
(https://www.freebuf.com/vuls/172983.html)
Windows VBScript引擎远程执行代码漏洞 CVE-2018-8174分析与利用
(https://www.freebuf.com/vuls/188618.html)
An Analysis of the DLL Address Leaking Trick used by the “Double Kill” Internet Explorer Zero-Day exploit (CVE-2018-8174)
(https://www.fortinet.com/blog/threat-research/analysis-of-dll-address-leaking-trick-used-by-double-kill-internet-explorer-0-day-exploit.html)
这个漏洞毫无争议地成为2018
年关注度最高的漏洞,我们也为发现该0day
而感到自豪。
CVE-2018-8373
该漏洞是趋势科技报给微软的一个0day
。这是VBScript
里面另一处UAF
漏洞,和CVE-2018-8174
应该为同一作者。
趋势当时捕获该样本时并未发现它与office
样本的关联,但我们后续发现了该样本也是通过office
加载的证据。
趋势科技写过一篇对该漏洞精彩的分析。
Use-after-free (UAF) Vulnerability CVE-2018-8373 in VBScript Engine Affects Internet Explorer to Run Shellcode
(https://blog.trendmicro.com/trendlabs-security-intelligence/use-after-free-uaf-vulnerability-cve-2018-8373-in-VBScript-engine-affects-internet-explorer-to-run-shellcode/)
由于我一开始手头没有相关样本,所以当时独立构造了一个exp
,并对构造过程进行了分享。
记一次CVE-2018-8373利用构造过程
(https://bbs.pediy.com/thread-246327.htm)
后续还有一些其他研究员对该漏洞的调试,但都大同小异。
Windows VBScript引擎远程执行代码漏洞 之CVE-2018-8373分析与复现
(https://www.anquanke.com/post/id/166581)
CVE-2018-8373分析与复现
(https://bbs.pediy.com/thread-246940.htm)
去年年末,我得到了该漏洞的原始利用样本,一番调试后发现相关样本最后有一个Bypass CFG
的过程(8174
原始利用没有Bypass CFG
的操作),我推测8373
当时的攻击目标中有Windows 10
的用户。并且在一个利用中同时构造得到了超长的VBScript
数组和JScript9
数组,并且在利用完成后还有一个还原的过程。不禁感慨商业利用代码的品质之高。
关于上述相关细节我可能会单独写一篇分析文章。
其他office逻辑漏洞
CVE-2014-4114
该漏洞是由iSight Partners
(已被FireEye
收购)报给微软的一个office 0day
。
该漏洞是ppt
动画播放过程中的一个逻辑漏洞,也绕过了office
所有安全缓解机制(但无法绕过保护模式),当时出现时的杀伤力也是特别巨大。
关于该漏洞的分析文章也比较多。
百度安全实验室写过一篇分析。
CVE-2014-4114 SandWorm 沙虫漏洞分析报告
(https://bbs.pediy.com/thread-193443.htm)
趋势科技写过两篇分析。
An Analysis of Windows Zero-day Vulnerability ‘CVE-2014-4114’ aka “Sandworm”
(https://blog.trendmicro.com/trendlabs-security-intelligence/an-analysis-of-windows-zero-day-vulnerability-cve-2014-4114-aka-sandworm/)
Timeline of Sandworm Attacks
(https://blog.trendmicro.com/trendlabs-security-intelligence/timeline-of-sandworm-attacks/)
Danny__Wei
关于该漏洞写过一篇小结。
Sandworm Attack小结
(https://www.cnblogs.com/Danny-Wei/p/4161539.html)
安天也写过一篇,不过涉及到漏洞细节部分的不多。
沙虫(CVE-2014-4114)相关威胁综合分析报告 — 及对追影安全平台检测问题的复盘
(https://www.freebuf.com/articles/network/47284.html)
该漏洞的poc
代码貌似后来被公开到了网上。从代码注释中可以看到相关漏洞利用早在2013
年已被开发完毕。
generator.c
(https://github.com/DarkenCode/PoC/blob/master/CVE-2014-4114/generator.c)
比较有意思的是,微软第一次修补时并没有补好这个漏洞,这直接导致了CVE-2014-6352
的出现。
CVE-2014-6352
该漏洞是沙虫漏洞的另一个变种,在CVE-2014-4114
公开之后,李海飞也独立发现了这个漏洞。
这也是一个逻辑漏洞,和CVE-2014-4114
非常相似,只在一些细节上有所不同。
李海飞写过两篇关于该漏洞的分析文章。
Bypassing Microsoft’s Patch for the Sandworm Zero Day: a Detailed Look at the Root Cause
(https://securingtomorrow.mcafee.com/other-blogs/mcafee-labs/bypassing-microsofts-patch-sandworm-zero-day-root-cause/)
Bypassing Microsoft’s Patch for the Sandworm Zero Day: Even ‘Editing’ Can Cause Harm
(https://securingtomorrow.mcafee.com/other-blogs/mcafee-labs/bypassing-microsofts-patch-for-the-sandworm-zero-day-even-editing-can-cause-harm/)
奇安信威胁情报团队(前天眼实验室)曾对该漏洞做过比较细致的逆向分析。
CVE-2014-6352漏洞及定向攻击样本分析
(https://www.anquanke.com/post/id/84054)
比较有意思的是,CVE-2014-6352
出现后,由于可以将PE
文件内嵌入文档,需要联网加载Payload
的CVE-2014-4114
反而被弃用了。同一趋势我们也在CVE-2017-8570
出现后观测到,当时我们发现CVE-2017-8570
出现后基本上没有人用CVE-2017-0199
了。
CVE-2015-0097
该漏洞被公开时并不是一个0day
。但是攻击者立即将当时还是1day
状态的该漏洞用于攻击。
这也是一个逻辑漏洞,我并未深入调试过这个样本,感兴趣的读者可以自行调试一下。
FireEye
曾写过一篇关于该漏洞的分析文章。
CVE-2015-0097 Exploited in the Wild
(https://www.fireeye.com/blog/threat-research/2015/07/cve-2015-0097_exploi.html)
样 本
读者看到这里肯定会抱怨:你上面的总结写了那么多,也给了一些调试指导,但全文未曾见任何一个样本的哈希值。
幸运的是,这方面已经有人帮大家整理了。
office-exploit-case-study
(https://github.com/houjingyi233/office-exploit-case-study)
可能有些漏洞样本并不在这里面,但这些对于一般的分析研究已经足够。
结 语
三年前我开始进入office
漏洞分析领域的时候,没有人用本文这样的资料来指导我。上面的这些都是我在这三年里逐渐积累的,这篇文章也算是对自己过去三年工作的一个总结。
我们当时的任务是去尝试捕获一个office 0day
,那时正是FireEye
发现0day
全盛的年代。我觉得既然要去捕获0day
,第一件事就是要去研究历史0day/1day
事件和历史漏洞,所以才逐渐积累了上面这些资料。以上列出的绝大所数漏洞(除了部分Flash
漏洞)我都调试过。
在这个过程中我从李海飞公开的PPT
中学到了很多,从binjo
的分析文章中学到了很多,从奇安信威胁情报中心的文章中学到了很多。这里一并感谢他们。
希望这篇文章可以帮到大家。
以下为PDF版下载链接:
https://pan.baidu.com/s/1CuDlpGoKYn3YWSa9kSCR2g
提取码:n0gm
界世的你当不
只做你的肩膀
无
360官方技术公众号
技术干货|一手资讯|精彩活动
空·
关注360技术,关注技术与安全
更多精彩内容“阅读原文”
右边给我一朵小花花
宏观视角下的office漏洞(2010-2018)相关推荐
- 真正能解决 Windows 7下安装Office 2007—2010出现1402和1406类错误的方法
真正能解决 Windows 7下安装Office 2007-2010出现1402和1406类错误的方法 天蚕 原创 2012-06-11 近日在网上下载了Windows7和Office2007,想将家 ...
- 解决 Office 2007/2010/2013 安装错误:1402
win8.1下解决 Office 2007/2010/2013 安装错误:1402 安装程序无法打开注册表项 UNKNOWN\Components\"随机数字" 修复方法: 1.使 ...
- 漏洞威胁分析报告(上册)- 不同视角下的漏洞威胁
前言 刚刚过去的2020年以极具戏剧性的开场和魔幻现实主义的中章,给传统行业当头一棒,疫情的延伸早已超出了绝大部分人的预料.传统行业被迫转型:企业被迫选择线上办公:学校被迫开设网课.在经济体系运作如此 ...
- Win7下,Office 2010和Adobe Acrobat Professional 8.1不兼容:PDFMaker文件遗失
转自:http://againinput4.blog.163.com/blog/static/172799491201112284712656/ [已解决]Win7下,Office 2010和Adob ...
- 关于在Office 2010,Visual Studio 2010环境下开发Office 2007解决方案的问题
Office解决方案分应用级解决方案(application-level solution 也就是Add-in)和文档级解决方案(document-level solution包括Excel temp ...
- “科学学”视角下的科研工作者行为研究
"科学学"视角下的科研工作者行为研究 贾韬1, 夏锋2 1 西南大学计算机与信息科学学院,重庆 400715 2 大连理工大学软件学院,辽宁 大连 116620 摘要:科学的复杂性 ...
- 技术-经济范式视角下的开源软件演进剖析(五)
点击上方"开源社"关注我们 | 编辑:杨紫琳 | 作者:刘博 | 转载自:华为开发者社区 | 设计:李静雯 如何破解网络外部性 以开源软件为代表的知识.信息经济下垄断与" ...
- 【华为云技术分享】“技术-经济范式”视角下的开源软件演进剖析-part 3
4. 微观层面 4.1 个体动机 在开源软件发展之初, 商业组织的投入很少甚至没有, 完全是靠Richard Stallman 或者 linus Torvalds 这样的个人在努力推动开源软件艰难前行 ...
- 【华为云技术分享】“技术-经济范式”视角下的开源软件演进剖析-part 1
前言 以互联网为代表的信息技术的迅猛发展对整个经济体系产生了巨大的影响.信息技术的发展一方面使知识的积累和传播更加迅速,知识爆炸性的增长:另一方面,使信息的获取变得越来越容易,信息交流的强度逐渐增加, ...
最新文章
- 【PAT (Advanced Level) Practice】1005 Spell It Right (20 分)
- 图像的线性变换的原理及OpenCV代码实现~
- php下使用 $_FILE
- 卷积神经网络、比较MLPS和CNNS、滤波器、CNN各层的作用、在Pytorch可视化CNN
- http协议 php,PHP中的http协议
- 新年迈出Java后台服务器与数据库交互第一步2022最新通用Java8jdbc8连接mysql8数据库进行增删改查等基本操作详解(IDEA),jar包导入,图片等文件流,批量操作
- error: default argument given for parameter 4
- 【Vue】父子组件的传值(父组件-->子组件、子组件-->父组件)
- jquery jtable应用
- 【机器人】人类反应与机器的浑然一体—营救机器人诞生
- 30道MySQL基础面试题
- 人工智能被拒绝,语音识别做不到给电视直播加字幕?
- ThinkPad T450s笔记本禁用触摸板
- 海湾crt显示与服务器连接断开,secureCRT自动断开的解决方法
- 富途证券面试整理--前端
- 数据库delete语句菜鸟_MySQL视图
- ZUCC_计算机系统原理实验_实验五 位运算
- 敏捷是只有一个系统,从楚王爱细腰说起
- 【笔记】 Hard negative:区域建议框中得分较高的False Positive(假阳性)
- 浅谈一下:运营网站的一些经历和故事
热门文章
- linux根目录没有卷组,linux – 卷组消失了,LV仍然可用
- 【读点论文】A Survey on Vision Transformer,2022年华为诺亚最新综述研究,从发展到任务,整体到局部。ViT有研究价值在于有很多问题还没有解决,真理是阶段性的产物
- 复数的实部虚部与幅值相角之间的转换及python代码实现
- lol澳洲服务器如何注册账号,LOL澳服如何修改密码绑定邮箱?英雄联盟澳服账号改密教程...
- jsp/java爱心宠物诊所管理系统
- 右键万能格式转换工具
- Android开发:快速集成mob到项目的步骤
- 世上最健康的作息时间表 11点半睡觉7点半起床
- html5 射击小游戏demo,html5写的射击小游戏
- JavaWeb 项目 --- 表白墙 和 在线相册