压在透明的玻璃上c-国产精品国产一级A片精品免费-国产精品视频网-成人黄网站18秘 免费看|www.tcsft.com

0day漏洞組合拳:詳細(xì)分析一款惡意PDF樣本

一、前言

2018年3月末,ESET研究人員發(fā)現(xiàn)了一款非常有趣的惡意PDF樣本。經(jīng)過仔細(xì)研究后,我們發(fā)現(xiàn)該樣本利用了之前未知的兩個(gè)漏洞:Adobe Reader中的一個(gè)遠(yuǎn)程命令執(zhí)行漏洞以及Microsoft Windows中的一個(gè)權(quán)限提升漏洞。

這兩個(gè)漏洞組合起來威力巨大,攻擊者可以通過這種方式在存在漏洞的目標(biāo)上以盡可能高的權(quán)限來運(yùn)行任意代碼,并且整個(gè)過程很少需要用戶交互。APT組織通常會(huì)使用這種組合拳來發(fā)起攻擊,比如去年的Sednit攻擊活動(dòng)就是非常好的一個(gè)例子。

在發(fā)現(xiàn)這款PDF樣本后,ESET第一時(shí)間聯(lián)系了微軟安全響應(yīng)中心(MSRC)、Windows Defender ATP研究團(tuán)隊(duì)以及Adobe Product安全事件響應(yīng)團(tuán)隊(duì),并與這些單位一起協(xié)作,直至漏洞被成功修復(fù)。

Adobe以及微軟也提供了相應(yīng)補(bǔ)丁及安全公告,分別如下:

受影響的相關(guān)產(chǎn)品版本信息如下:

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 for 32-bit Systems Service Pack 1
Windows 7 for x64-based Systems Service Pack 1
Windows Server 2008 for 32-bit Systems Service Pack 2
Windows Server 2008 for Itanium-Based Systems Service Pack 2
Windows Server 2008 for x64-based Systems Service Pack 2
Windows Server 2008 R2 for Itanium-Based Systems Service Pack 1
Windows Server 2008 R2 for x64-based Systems Service Pack 1

本文介紹了這款惡意樣本以及所利用漏洞的技術(shù)細(xì)節(jié)。

二、簡(jiǎn)介

PDF(Portable Document Format)是一種電子文檔文件格式,與其他常見文檔格式一樣,攻擊者可以利用該類型文件將惡意軟件傳播至受害者主機(jī)。為了執(zhí)行惡意代碼,攻擊者需要尋找并利用PDF閱讀器軟件中的漏洞。現(xiàn)在有多款PDF閱讀器,其中最常用的就是Adobe Reader。

Adobe Reader軟件中有一個(gè)安全功能:沙箱(sandbox),也稱為保護(hù)模式(Protected Mode)。Adobe在官方博客上分四部分(Part 1Part 2Part 3Part 4)詳細(xì)介紹了沙箱的具體實(shí)現(xiàn)。沙箱使漏洞利用過程更加困難:即使攻擊者可以執(zhí)行代碼,還是必須繞過沙箱的保護(hù)機(jī)制才能突破運(yùn)行Adobe Reader的計(jì)算機(jī)。通常情況下,攻擊者需要借助操作系統(tǒng)本身的漏洞來繞過沙箱保護(hù)機(jī)制。

當(dāng)然攻擊者可以同時(shí)找到Adobe Reader軟件以及目標(biāo)操作系統(tǒng)中的漏洞并編寫利用程序,不過這種情況非常罕見。

三、CVE-2018-4990:Adobe Reader的RCE漏洞

惡意PDF樣本中嵌入了一段JavaScript代碼,用來控制整個(gè)漏洞利用過程。一旦PDF文件被打開,JavaScript代碼就會(huì)被執(zhí)行。

在漏洞利用開頭階段,JavaScript代碼開始操控Button1對(duì)象,該對(duì)象包含一個(gè)精心構(gòu)造的JPEG2000圖像,該圖像會(huì)觸發(fā)Adobe Reader中的雙重釋放(double-free)漏洞。

t012a24d14c1b4cd381

圖1. 操控Button1對(duì)象的JavaScript代碼

JavaScript代碼中用到了堆噴射(heap-spray)技術(shù)以破壞內(nèi)部數(shù)據(jù)結(jié)構(gòu)。在這些操作都完成后,攻擊者就實(shí)現(xiàn)了他們的主要目標(biāo):從JavaScript代碼中實(shí)現(xiàn)內(nèi)存的讀取及寫入。

t0165b317593ca9c0de

圖2. 用來讀取及寫入內(nèi)存JavaScript代碼

利用這兩種方法,攻擊者成功定位EScript.api插件的內(nèi)存地址,而該插件正是Adobe JavaScript的引擎。利用該模塊的匯編指令(ROP gadgets),惡意JavaScript成功構(gòu)造了一條ROP鏈,可以執(zhí)行本地shellcode。

t01da25747325b8d694

圖3. 惡意JavaScript成功構(gòu)造ROP鏈

最后一步,shellcode會(huì)初始化PDF中內(nèi)嵌的一個(gè)PE文件,將執(zhí)行權(quán)遞交給該文件。

四、CVE-2018-8120:Windows權(quán)限提升漏洞

成功利用Adobe Reader漏洞后,攻擊者必須打破沙箱保護(hù)機(jī)制,而這正是我們即將討論的第二個(gè)利用代碼的目的所在。

這個(gè)未知漏洞的源頭在于win32k Windows內(nèi)核組件中的NtUserSetImeInfoEx函數(shù)。更具體一些,就是NtUserSetImeInfoExSetImeInfoEx子例程沒有驗(yàn)證數(shù)據(jù)指針的有效性,允許某個(gè)NULL指針被解除引用(dereference)。

圖4. 反匯編后的SetImeInfoEx例程代碼

如圖4所示,SetImeInfoEx函數(shù)的第一個(gè)參數(shù)為指向經(jīng)過初始化的WINDOWSTATION對(duì)象的指針。如果攻擊者創(chuàng)建了一個(gè)新的window station對(duì)象,并將其分配給用戶模式下的當(dāng)前進(jìn)程,那么spklList就會(huì)等于0。因此,映射NULL頁面并將指針設(shè)置為偏移量0x2C后,攻擊者就可以利用這個(gè)漏洞寫入內(nèi)核空間中的任一地址。需要注意的是,從Windows 8開始,用戶進(jìn)程不能再映射NULL頁面。

既然攻擊者具備任意寫入權(quán)限,他們就可以使用各種方法實(shí)施攻擊,不過在我們分析的這個(gè)例子中,攻擊者選擇使用Ivanlef0u以及Mateusz “j00ru” Jurczyk和Gynvael Coldwin介紹的一種技術(shù)。攻擊者重寫了全局描述符表(GDT,Global Descriptor Table)來創(chuàng)建Ring 0的一個(gè)call gate)(調(diào)用門)。為了完成這個(gè)任務(wù),攻擊者使用SGDT匯編指令獲取了原始的GDT信息,構(gòu)造自己的表然后使用前面提到的漏洞重寫了原始的表。

隨后,漏洞利用程序使用CALL FAR指令執(zhí)行了跨權(quán)限級(jí)別的調(diào)用。

圖5. 反匯編后的CALL FAR指令

一旦代碼在內(nèi)核模式執(zhí)行,漏洞利用程序就會(huì)使用system token(令牌)替換掉當(dāng)前進(jìn)程的token。

五、總結(jié)

當(dāng)PDF樣本提交到公共惡意樣本庫時(shí),ESET研究人員就發(fā)現(xiàn)了這款樣本。彼時(shí)樣本并不包含最終的攻擊載荷,這表明當(dāng)時(shí)樣本很有可能處于早期研發(fā)階段。雖然當(dāng)時(shí)樣本并不包含真正的惡意載荷,仍有可能處于早期研發(fā)階段,但這也告訴我們樣本的作者在漏洞發(fā)現(xiàn)及漏洞利用方面具備較高的水平。

六、IoC

ESET檢測(cè)標(biāo)識(shí):

JS/Exploit.Pdfka.QNV trojan
Win32/Exploit.CVE-2018-8120.A trojan

樣本SHA-1哈希:

C82CFEAD292EECA601D3CF82C8C5340CB579D1C6
0D3F335CCCA4575593054446F5F219EBA6CD93FE

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

上一篇:EFAIL: PGP/GPG 和 S/MIME漏洞分析

下一篇:Outlook中的SMB哈希劫持和用戶跟蹤