微軟對外披露兩個0day漏洞詳情

微軟近日對外披露了兩個0day漏洞詳情,其中一個漏洞存在Adobe閱讀器中,可被利用致使任意代碼執行;另外一個漏洞則容許任意代碼在Windows kernel內存中提權執行。javascript

微軟稱因爲該漏洞利用目前還處於初期階段,且官方都已發佈了補丁,建議你們及時進行安裝,趕在被大規模利用前修復,未雨綢繆。同時,建議排查初期樣本的IOC(文末附修復補丁連接和IOC)。html

CVE CVE-2018-4990 CVE-2018-8120
類型 遠程代碼執行 本地提權
官方評級 Critical Important
影響產品 Acrobat  DCAcrobat  Reader DC Windows  7Windows  Server 2008
POC樣本
在野攻擊 暫無 暫無
修復補丁

這兩個漏洞利用樣本最先是由ESET分析人員在今年3月發現並報告給了微軟,在ESET和微軟的共同努力下發現了以上兩個0day漏洞。如下漏洞利用分析過程是基於如下樣本進行:java

SHA-256:4b672deae5c1231ea20ea70b0bf091164ef0b939e2cf4d142d31916a169e8e01shell

漏洞利用概況

Adobe Acrobatand Reader漏洞存在於PDF文檔中,假裝成暗含JavaScript漏洞利用代碼的惡意JPEG 2000圖像,漏洞利用路徑以下圖所示:編程

fig-1-overview-exploit-process.png

圖1. 漏洞利用流程圖數組

如上圖所示,漏洞利用過程分如下階段:安全

1.JavaScript枚舉堆噴射(heap spray)內存;數據結構

2.惡意JPEG 2000圖片觸發一個越界訪問操做;ide

3.一旦堆噴射枚舉越界內存,就會調用訪問操做;函數

4.訪問操做致使vftable進程崩潰;

5.已崩潰的vftable進程將代碼執行轉移至返回導向編程(ROP)鏈;

6.ROP鏈將代碼執行轉移到shellcode;

7.經過反射DLL加載來進行EoP模塊加載;

8.PE模塊啓動已加載完成的Win32k EoP漏洞利用程序;

9.一旦EoP漏洞利用成功,就會在Startup文件夾中釋放一個名爲.vbs的文件,做爲下載其餘payloads的PoC惡意軟件。

惡意JPEG 2000圖片

惡意圖片中被嵌入瞭如下惡意標籤,如圖:

fig-2-malicious-JPEG-2000-stream.png

圖2. 惡意JPEG 2000圖片

下圖所示的CMAP & PCLR標籤中均含有惡意值,CMAP數組(0xfd)的長度小於PCLR標記中引用的索引值(0xff),從而致使了越界內存釋放漏洞的利用。

fig-3-out-of-bounds-index-CMAP-array.png

圖3. CMAP數組的越界索引

結合JavaScript中的堆噴射技術,越界漏洞利用就會致使vftable進程的崩潰。

fig-4-vftable-corruption-ROP-chain-to-code-execution.png

圖4. ROP鏈中的vftable進程崩潰致使代碼執行

JavaScript中的編碼包含了shellcode和PE模塊。

fig-5-shellcode-in-javascript.png

圖5. JavaScript中的shellcode

反射DLL加載進程

Shellcode(如下提到的僞代碼)經過反射DLL加載PE模塊,這是高級攻擊活動裏試圖在內存中躲避檢測時的經常使用技巧。Shellcode搜索PE初始記錄,解析PE分區,並將它們複製到新分配的內存區域,而後將控制權傳遞給PE模塊中的入口點。

fig-6-copying-PE-sections-to-allocated-memory.png

圖6. 複製PE分區到新分配的內存中

fig-7-passing-control-to-an-entry-point-in-the-loaded-dll.png

圖7. 把控制權傳遞給已加載的DLL模塊中的入口點

Win32k 提權漏洞利用

Win32k提權(EoP)漏洞利用是從已加載的PE模塊中運行,利用新的Windows漏洞CVE-2018-8120對Windows 7 SP1系統進行攻擊,Win 10及更新的產品不受該漏洞影響。該漏洞利用NULL頁面來傳遞惡意記錄,並將任意數據拷貝至任意內核位置,對於運行Windows 8及更新系統的x64位平臺所受影響也相對較小。

fig-8-EoP-exploit-flow.png

圖8. EoP漏洞利用流程圖

漏洞利用的主要過程以下:

1.漏洞利用根據sgdt指令調用NtAllocateVirtualMemory進程,以便在NULL頁面分配虛假的數據結構;

2.把格式錯誤的MEINFOEX結構傳遞至SetImeInfoEx Win32k 內核函數;

3.SetImeInfoEx進程獲取NULL頁面上的虛假數據結構;

4.使用虛假的數據結構把惡意指令拷貝到GDT(全球描述符表)上的+0x1a0中;

5.經過調用FWORD指令來調入虛假的GDT入口指令;

6.成功調用虛假GDT入口指令;

7.這些指令運行從內核模式內存空間的用戶模式中分配的shellcode;

8.修改shellcode進程中EPROCESS.Token,獲取SYSTEM權限。

格式有誤的IMEINFOEX結構結合NULL頁面的虛假數據,就可致使GDT入口崩潰,以下圖所示:

fig-9-corrupted-gdt-entry.png

圖9. GDT入口崩潰

已損壞的GDT具備經過調用FWORD指令調用入口運行的實際指令。

fig-10-patched-gdt-entry-instructions.png

圖10. 已修復的GDT入口指令

從這些指令返回後,EIP(擴展指令指針)返回具備內核特權的用戶空間中的調用者代碼,後續代碼將經過修改SYSTEM的進程令牌來實現當前進程的提權。

fig-11-process-token-pointer.png

圖11. 替換進程令牌指針

可持續性

提權後,漏洞利用代碼會在本地Startup文件夾中釋放一個.vbs文件,即PoC惡意軟件。

fig-12-code-that-drops-the-vbs-file-to-the-startup-folder.png

圖12. 釋放.vbs文件到Startup文件夾的代碼信息

防護建議

及時部署針對以上0day漏洞的安全補丁:

CVE-2018-4990 | Adobe Acrobatand Reader可用的安全更新 | APSB18-09

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

CVE-2018-8120 | Win32k提權漏洞

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

如工做環境不須要,則禁用Adobe Acrobat and Acrobat Reader中的JavaScript;

增強終端對利用PDF附件進行魚叉式釣魚攻擊和其餘社工攻擊的防範意識。

IoC信息(SHA-256):

d2b7065f7604039d70ec393b4c84751b48902fe33d021886a3a96805cede6475

dd4e4492fecb2f3fe2553e2bcedd44d17ba9bfbd6b8182369f615ae0bd520933

4b672deae5c1231ea20ea70b0bf091164ef0b939e2cf4d142d31916a169e8e01

0608c0d26bdf38e064ab3a4c5c66ff94e4907ccaf98281a104fd99175cdf54a8

相關文章
相關標籤/搜索