这黑客厉害了,将两个0day漏洞融合为一个。

2018 年 5 月 16 日 黑白之道 华盟网-黑白之道


2018年3月末,ESET研究人员发现了一个有意思的恶意PDF样本。仔细观察发现,该样本利用了两个未知的漏洞:Adobe Reader中的远程代码执行漏洞和Microsoft Windows中的特权升级漏洞。


组合的漏洞的使用非常强大,因为它允许攻击者执行任意代码,对有漏洞的主机可以拿到最高权限,并且只有最少量的用户交互。APT组织经常使用这种组合来执行他们的攻击,例如去年的Sednit活动。


当发现了这个PDF样本,ESET就与Microsoft安全响应中心,Windows Defender ATP研究团队和Adobe产品安全事件响应团队联系并一起工作,因为他们修复了这些错误。


来自Adobe和Microsoft的修补程序和建议可在此处获得:


  • APSB18-09

  • https://helpx.adobe.com/security/products/acrobat/apsb18-09.html

  • CVE-2018-8120

    https://portal.msrc.microsoft.com/en-us/security-guidance/advisory/CVE-2018-8120


受影响的产品版本如下:


  • Acrobat DC(2018.011.20038和更早版本)

  • Acrobat Reader DC(2018.011.20038及更早版本)

  • Acrobat 2017(011.30079及更早版本)

  • Acrobat Reader DC 2017(2017.011.30079及更早版本)

  • Acrobat DC(Classic 2015)(2015.006.30417及更早版本)

  • Acrobat Reader DC(Classic 2015)(2015.006.30417及更早版本)

  • Windows 7(用于32位系统)Service Pack 1

  • Windows 7(用于基于x64的系统)Service Pack 1

  • Windows Server 2008(用于32位系统)Service Pack 2

  • Windows Server 2008(用于基于Itanium的系统)Service Pack 2

  • Windows Server 2008(用于基于x64的系统)Service Pack 2

  • Windows Server 2008 R2(用于基于Itanium的系统)Service Pack 1

  • Windows Server 2008 R2(用于基于x64的系统)Service Pack 1


本文下面介绍这个恶意样本的技术细节及其利用的方式


介绍


PDF是电子文档的文件格式,与其他常用文档格式一样,攻击者可以使用它将恶意软件传送到受害者的计算机。为了执行自己的恶意代码,攻击者必须找到并利用PDF阅读器软件中的漏洞。有几个PDF阅读器最常见的比如Adobe Reader。


Adobe Reader软件实现称为沙盒的安全功能,在查看器中也称为保护模式。

沙盒使得开发过程更加困难:即使代码执行完成,攻击者仍然需要绕过沙盒的保护措施,达到损害运行Adobe Reader的计算机。通常,沙箱旁路是通过利用操作系统本身的漏洞来实现的。


当攻击者能够发现漏洞并为Adobe Reader软件和操作系统两者一起编写漏洞攻击时,这种情况非常罕见。


CVE-2018-4990 - Adobe Reader中的RCE


恶意PDF样本嵌入了控制整个开发过程的JavaScript代码。一旦PDF文件被打开,JavaScript代码就会被执行。


在开发阶段,JavaScript代码开始操纵Button1对象。该对象包含特制的JPEG2000图像,该图像在Adobe Reader中触发了双重漏洞。


                        图1.操作Button1对象的JavaScript代码


JavaScript使用堆喷技术来破坏内部数据结构。在所有这些操作之后,攻击者实现他们的主要目标:从他们的JavaScript代码读取和写入内存访问。

图2.用于读写内存的JavaScript代码


使用这两个基本元素,攻击者找到EScript.api插件的内存地址,该插件是Adobe JavaScript引擎。使用来自该模块的汇编指令(ROP gadgets),恶意JavaScript会设置一个ROP链,这将导致执行本地shellcode。


图3.构建ROP链的恶意JavaScript


作为最后一步,shellcode初始化嵌入在PDF中的PE文件并将执行传递给它。


CVE-2018-8120 - Microsoft Windows中的权限升级


在利用Adobe Reader漏洞之后,攻击者必须打破沙盒。这正是我们正在讨论的第二个利用的目的。


此先前未知的漏洞的根本原因位于win32k Windows内核组件的NtUserSetImeInfoEx函数中。具体而言,SetImeInfoEx的子程序NtUserSetImeInfoEx不验证数据指针,允许空指针引用。


图4.反汇编的SetImeInfoEx例程


如图4所示,SetImeInfoEx函数需要一个指向已初始化的WINDOWSTATION对象的指针作为第一个参数。所述spklList如果攻击者创建一个新的窗口站对象,并将其分配给在用户模式的当前过程可能是等于零。因此,通过映射NULL页面并将指针设置为偏移量0x2C,攻击者可以利用此漏洞在内核空间中写入任意地址。应该注意的是,自Windows 8以来,用户进程不允许映射NULL页面。


由于攻击者有任意的写入原语,他们可以使用不同的技术,但在这种情况下,攻击者选择使用Ivanlef0u和Mateusz“j00ru”Jurczyk和Gynvael Coldwin描述的技术。攻击者通过重写全局描述符表(GDT)来设置一个调用门到Ring 0。为此,攻击者使用SGDT汇编指令获取原始GDT的地址,构建自己的表,然后使用上述漏洞重写原始表。


然后攻击使用CALL FAR指令执行一个特权级别的调用。


图5.反汇编的CALL FAR指令


一旦以内核模式执行代码,漏洞利用系统令牌替换当前进程的标记。


结论


最初,研究人员在发现了该样本。样本不包含最终有效的那个版本,尽管样本没有包含真正的恶意攻击过程,这可能表明它是刚开发出来就被捕获,但作者展示了在漏洞发现和利用写作方面的高水平技能。


ESET检测名称


JS / Exploit.Pdfka.QNV木马

Win32 / Exploit.CVE-2018-8120.A木马


SHA-1哈希


C82CFEAD292EECA601D3CF82C8C5340CB579D1C6

0D3F335CCCA4575593054446F5F219EBA6CD93FE


英文原版

https://www.welivesecurity.com/2018/05/15/tale-two-zero-days/


本文由华盟网编辑翻译,转载请注明出处


登录查看更多
0

相关内容

Adobe公司开发的一款PDF文件阅读软件
算法与数据结构Python,369页pdf
专知会员服务
161+阅读 · 2020年3月4日
【电子书】C++ Primer Plus 第6版,附PDF
专知会员服务
86+阅读 · 2019年11月25日
分享8个强大的黑客技术学习网站
黑客技术与网络安全
88+阅读 · 2019年8月29日
漏洞预警丨Xstream远程代码执行漏洞
FreeBuf
4+阅读 · 2019年7月25日
“黑客”入门学习之“windows系统漏洞详解”
安全优佳
8+阅读 · 2019年4月17日
Linux挖矿病毒的清除与分析
FreeBuf
14+阅读 · 2019年4月15日
基于Web页面验证码机制漏洞的检测
FreeBuf
7+阅读 · 2019年3月15日
百度开源项目OpenRASP快速上手指南
黑客技术与网络安全
5+阅读 · 2019年2月12日
DiscuzX 3.4 Phar反序列化漏洞
黑客工具箱
8+阅读 · 2019年1月4日
Neo4j 和图数据库起步
Linux中国
8+阅读 · 2017年12月20日
Tensor Flow、Caffe、Torch共同之处:敞开的漏洞!
Arxiv
3+阅读 · 2018年9月12日
Arxiv
7+阅读 · 2018年6月8日
Arxiv
7+阅读 · 2018年1月24日
Arxiv
11+阅读 · 2018年1月15日
Arxiv
6+阅读 · 2018年1月14日
Arxiv
5+阅读 · 2015年9月14日
VIP会员
相关VIP内容
算法与数据结构Python,369页pdf
专知会员服务
161+阅读 · 2020年3月4日
【电子书】C++ Primer Plus 第6版,附PDF
专知会员服务
86+阅读 · 2019年11月25日
相关资讯
分享8个强大的黑客技术学习网站
黑客技术与网络安全
88+阅读 · 2019年8月29日
漏洞预警丨Xstream远程代码执行漏洞
FreeBuf
4+阅读 · 2019年7月25日
“黑客”入门学习之“windows系统漏洞详解”
安全优佳
8+阅读 · 2019年4月17日
Linux挖矿病毒的清除与分析
FreeBuf
14+阅读 · 2019年4月15日
基于Web页面验证码机制漏洞的检测
FreeBuf
7+阅读 · 2019年3月15日
百度开源项目OpenRASP快速上手指南
黑客技术与网络安全
5+阅读 · 2019年2月12日
DiscuzX 3.4 Phar反序列化漏洞
黑客工具箱
8+阅读 · 2019年1月4日
Neo4j 和图数据库起步
Linux中国
8+阅读 · 2017年12月20日
Tensor Flow、Caffe、Torch共同之处:敞开的漏洞!
相关论文
Arxiv
3+阅读 · 2018年9月12日
Arxiv
7+阅读 · 2018年6月8日
Arxiv
7+阅读 · 2018年1月24日
Arxiv
11+阅读 · 2018年1月15日
Arxiv
6+阅读 · 2018年1月14日
Arxiv
5+阅读 · 2015年9月14日
Top
微信扫码咨询专知VIP会员