奇技指南

本文作者银雁冰: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-1641CVE-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

NCCGroupDominic 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-1641CVE-2015-1642CVE-2016-7193CVE2017-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。这是一个VBScriptUAF漏洞,但攻击者巧妙地借助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文件内嵌入文档,需要联网加载PayloadCVE-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)相关推荐

  1. 真正能解决 Windows 7下安装Office 2007—2010出现1402和1406类错误的方法

    真正能解决 Windows 7下安装Office 2007-2010出现1402和1406类错误的方法 天蚕 原创 2012-06-11 近日在网上下载了Windows7和Office2007,想将家 ...

  2. 解决 Office 2007/2010/2013 安装错误:1402

    win8.1下解决 Office 2007/2010/2013 安装错误:1402 安装程序无法打开注册表项 UNKNOWN\Components\"随机数字" 修复方法: 1.使 ...

  3. 漏洞威胁分析报告(上册)- 不同视角下的漏洞威胁

    前言 刚刚过去的2020年以极具戏剧性的开场和魔幻现实主义的中章,给传统行业当头一棒,疫情的延伸早已超出了绝大部分人的预料.传统行业被迫转型:企业被迫选择线上办公:学校被迫开设网课.在经济体系运作如此 ...

  4. Win7下,Office 2010和Adobe Acrobat Professional 8.1不兼容:PDFMaker文件遗失

    转自:http://againinput4.blog.163.com/blog/static/172799491201112284712656/ [已解决]Win7下,Office 2010和Adob ...

  5. 关于在Office 2010,Visual Studio 2010环境下开发Office 2007解决方案的问题

    Office解决方案分应用级解决方案(application-level solution 也就是Add-in)和文档级解决方案(document-level solution包括Excel temp ...

  6. “科学学”视角下的科研工作者行为研究

    "科学学"视角下的科研工作者行为研究 贾韬1, 夏锋2 1 西南大学计算机与信息科学学院,重庆 400715 2 大连理工大学软件学院,辽宁 大连 116620 摘要:科学的复杂性 ...

  7. 技术-经济范式视角下的开源软件演进剖析(五)

    点击上方"开源社"关注我们 | 编辑:杨紫琳 | 作者:刘博 | 转载自:华为开发者社区 | 设计:李静雯 如何破解网络外部性 以开源软件为代表的知识.信息经济下垄断与" ...

  8. 【华为云技术分享】“技术-经济范式”视角下的开源软件演进剖析-part 3

    4. 微观层面 4.1 个体动机 在开源软件发展之初, 商业组织的投入很少甚至没有, 完全是靠Richard Stallman 或者 linus Torvalds 这样的个人在努力推动开源软件艰难前行 ...

  9. 【华为云技术分享】“技术-经济范式”视角下的开源软件演进剖析-part 1

    前言 以互联网为代表的信息技术的迅猛发展对整个经济体系产生了巨大的影响.信息技术的发展一方面使知识的积累和传播更加迅速,知识爆炸性的增长:另一方面,使信息的获取变得越来越容易,信息交流的强度逐渐增加, ...

最新文章

  1. 【PAT (Advanced Level) Practice】1005 Spell It Right (20 分)
  2. 图像的线性变换的原理及OpenCV代码实现~
  3. php下使用 $_FILE
  4. 卷积神经网络、比较MLPS和CNNS、滤波器、CNN各层的作用、在Pytorch可视化CNN
  5. http协议 php,PHP中的http协议
  6. 新年迈出Java后台服务器与数据库交互第一步2022最新通用Java8jdbc8连接mysql8数据库进行增删改查等基本操作详解(IDEA),jar包导入,图片等文件流,批量操作
  7. error: default argument given for parameter 4
  8. 【Vue】父子组件的传值(父组件-->子组件、子组件-->父组件)
  9. jquery jtable应用
  10. 【机器人】人类反应与机器的浑然一体—营救机器人诞生
  11. 30道MySQL基础面试题
  12. 人工智能被拒绝,语音识别做不到给电视直播加字幕?
  13. ThinkPad T450s笔记本禁用触摸板
  14. 海湾crt显示与服务器连接断开,secureCRT自动断开的解决方法
  15. 富途证券面试整理--前端
  16. 数据库delete语句菜鸟_MySQL视图
  17. ZUCC_计算机系统原理实验_实验五 位运算
  18. 敏捷是只有一个系统,从楚王爱细腰说起
  19. 【笔记】 Hard negative:区域建议框中得分较高的False Positive(假阳性)
  20. 浅谈一下:运营网站的一些经历和故事

热门文章

  1. linux根目录没有卷组,linux – 卷组消失了,LV仍然可用
  2. 【读点论文】A Survey on Vision Transformer,2022年华为诺亚最新综述研究,从发展到任务,整体到局部。ViT有研究价值在于有很多问题还没有解决,真理是阶段性的产物
  3. 复数的实部虚部与幅值相角之间的转换及python代码实现
  4. lol澳洲服务器如何注册账号,LOL澳服如何修改密码绑定邮箱?英雄联盟澳服账号改密教程...
  5. jsp/java爱心宠物诊所管理系统
  6. 右键万能格式转换工具
  7. Android开发:快速集成mob到项目的步骤
  8. 世上最健康的作息时间表 11点半睡觉7点半起床
  9. html5 射击小游戏demo,html5写的射击小游戏
  10. JavaWeb 项目 --- 表白墙 和 在线相册