随着网络的普及,我们的生活越来越方便,但是网络安全也成了很多人面临的一个问题。特别是那些有着商业数据的企业电脑,更要注意上网安全常识,不然病毒会对我们造成严重的威胁。 一、前言 2018年3月,ESET研究人员发现了一个非常有趣的恶意PDF样本。经过仔细研究,我们发现该示例利用了两个以前未知的漏洞:Adobe Reader中的一个远程命令执行漏洞和Microsoft Windows中的一个权限提升漏洞。 这两个漏洞的结合非常有力。这样,攻击者可以在易受攻击的目标上以最高权限运行任意代码,并且整个过程很少需要用户交互。 APT组织通常使用这种组合拳来发动攻击。例如,去年的Sednit攻击就是一个很好的例子。 在发现此PDF示例之后,ESET立即联系了Microsoft安全响应中心(MSRC),Windows Defender ATP研究团队和Adobe产品安全事件响应团队,并与这些部门合作,直到成功修复该漏洞为止。 Adob??e和Microsoft还提供了相应的补丁程序和安全公告,如下所示: 受影响的相关产品版本信息如下: Acrobat DC(201 8. 01 1. 20038和更早版本) Acrobat Reader DC(201 8. 01 1. 20038和更早版本) Acrobat 2017(01 1. 30079和更早版本) Acrobat Reader DC 2017(201 7. 01 1. 30079和更早版本) Acrobat DC(经典201 5)(201 5. 00 6. 30417和更早版本) Acrobat Reader DC(经典201 5)(201 5. 00 6. 30417和更早版本) Windows 7(用于32位系统)Service Pack 1 Windows 7(用于基于x64的系统)Service Pack 1 用于32位系统的Windows Server 2008 Service Pack 2 用于基于Itanium的系统的Windows Server 2008 Service Pack 2 用于基于x64的系统的Windows Server 2008 Service Pack 2 用于基于Itanium的系统的Windows Server 2008 R2 Service Pack 1 用于基于x64的系统的Windows Server 2008 R2 Service Pack 1 本文介绍了此恶意示例以及被利用漏洞的技术细节。 二、简介 PDF(文档格式)是电子文档文件格式。像其他常见的文档格式一样,攻击者可以使用这种类型的文件将恶意软件传播到受害者的主机。为了执行恶意代码,攻击者需要查找和利用PDF阅读器软件中的漏洞。 PDF阅读器很多,最常用的是Adobe Reader。 Adob??e Reader软件具有一项安全功能:沙箱,也称为保护模式。 Adobe的官方博客分为四个部分(第1、部分2、部分3、部分4)详细介绍了沙箱的具体实现。沙箱使漏洞利用过程更加困难:即使攻击者可以执行代码, ,仍然有必要绕过沙盒保护机制以突破运行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小工具),恶意JavaScript成功地构建了可以执行本地shellcode的ROP链。 图3.恶意JavaScript成功构建了ROP链 在最后一步中,shellcode将初始化嵌入在PDF中的PE文件,并将执行权提交给该文件。 四、 CVE-2018-8120:Windows特权升级漏洞 成功利用Adobe Reader漏洞后,攻击者必须打破沙盒保护机制,这就是我们将讨论的第二个利用代码的目的。 此未知漏洞的来源位于win32k Windows内核组件中的NtUserSetImeInfoEx函数中。更具体地说,NtUserSetImeInfoEx的SetImeInfoEx子例程不验证数据指针的有效性,从而可以取消引用NULL指针。 图4.分解后的SetImeInfoEx例程代码 如图4所示,SetImeInfoEx函数的第一个参数是指向已初始化的WINDOWSTATION对象的指针。如果攻击者创建了一个新的窗口站对象,并将其分配给用户模式下的当前进程,则spklList将等于0。因此,在映射NULL页并将指针设置为偏移量0x2C之后,攻击者可以利用此漏洞来写入内核空间中的任何地址。应该注意的是,从Windows 8开始,用户进程将不再能够映射NULL页。 由于攻击者具有任意的写访问权限,因此他们可以使用各种方法进行攻击,但是在我们分析的示例中,攻击者选择使用Ivanlef0u和Mateusz“ j00ru” Jurczyk和Gynvael Coldwin引入的技术。攻击者重写全局描述符表(GDT,Global Descriptor Table)以创建环0的呼叫门(call gate)。为了完成此任务,攻击者使用SGDT汇编指令来获取原始GDT信息,并构造其自己的表,然后使用上述漏洞重写原始表。 随后,漏洞利用程序使用CALL FAR指令执行交叉特权调用。 图5.拆卸后的CALL FAR指令 一旦代码在内核模式下执行,漏洞利用程序将使用系统令牌(令牌)替换当前进程的令牌。 五、摘要 当PDF样本被提交到公共恶意样本库时,ESET研究人员发现了该样本。当时的样本不包含最终的攻击有效负载,这表明当时的样本可能处于开发的早期阶段。尽管该样本不包含真正的恶意有效负载,但它可能仍处于开发的早期阶段,但这也告诉我们该样本作者具有很高的漏洞发现和利用水平。 六、 IoC ESET检测徽标: JS / Exploit.Pdfka.QNV木马 Win32 / Exploit.CVE-2018-812 0. A木马 SHA-1哈希示例: C82CFEAD292EECA601D3CF82C8C5340CB579D1C6 0D3F335CCCA4575593054446F5F219EBA6CD93FE 本文是从原始链接翻译而来的。如果转载,请注明出处。 登录到安全的,有思想的来宾新安全媒体,或加入交流组70251126 3、下载安全的来宾应用程序以获取更多最新信息?
上面是电脑上网安全的一些基础常识,学习了安全知识,几乎可以让你免费电脑中毒的烦扰。 |
温馨提示:喜欢本站的话,请收藏一下本站!