當前位置:
首頁 > 新聞 > CVE-2019-0797 windows 0-day 漏洞分析

CVE-2019-0797 windows 0-day 漏洞分析

概述

2019年2月,Kaspersky的Automatic Exploit Prevention (AEP)系統檢測到嘗試利用Windows操作系統漏洞的事件。研究人員進一步分析發現了位於win32k.sys的0 day漏洞。研究人員於2月22日將該漏洞報告給微軟,微軟確認了該漏洞,漏洞CVE編號CVE-2019-0797。目前微軟已經發布了一個補丁。

這是AEP系統連續發現的Windows系統中的第4個本地許可權提升漏洞。研究人員相信該漏洞已經被FruityArmor、SandCat等攻擊者使用了。SandCat是新出現的APT組織,除了CVE-2019-0797和CHAINSHOT外,SandCat還使用FinFisher/FinSpy框架。

CVE-2019-0797漏洞分析

CVE-2019-0797是位於win32k驅動中的競爭條件引起的,具體是由於NtDCompositionDiscardFrame和NtDCompositionDestroyConnection中間未記錄的系統調用缺乏適當的同步。有漏洞的代碼如下所示:

NtDCompositionDiscardFrame syscall代碼(Windows 8.1)

從上圖的NtDCompositionDiscardFrame syscall簡化邏輯中可以看出,代碼需要一個在DirectComposition::CConnection結構中與幀操作相關的鎖,並嘗試找出與給定id對應的幀,最後在該幀上調用釋放。具體問題如下圖所示:

NtDCompositionDestroyConnection syscall內部函數(Windows 8.1)

從函數DiscardAllCompositionFrames的簡化邏輯的截圖可以看出它是在NtDCompositionDestroyConnection syscall調用的,不需要鎖和調用釋放所有分配的幀的函數DiscardAllCompositionFrames。問題在於當系統調用NtDCompositionDiscardFrame和NtDCompositionDestroyConnection同時執行時,函數DiscardAllCompositionFrames可能在當NtDCompositionDiscardFrame syscall正在尋找幀或已經找到幀的情況下執行。這就導致了一個UAF(use-after-free)場景。

研究人員還發現了其他2個類似的競爭條件0 day漏洞利用,分別是CVE-2018-8589和CVE-2018-8611。

如果模塊文件名含有字元串chrome.exe就停止執行

研究人員該漏洞利用實際攻擊的是64位的操作系統,具體從Windows 8到Windows 10 build 15063都有。這些操作系統的利用過程並沒有很大差別,都使用heap spraying palettes和accelerator tables來泄露kernel地址。在Windows 10 build 14393及更高版本的操作系統利用中使用的是palettes。除此之外,漏洞利用會檢查是否在Google chrome中運行,如果是就停止執行,因為CVE-2019-0797無法在沙箱中被利用。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 嘶吼RoarTalk 的精彩文章:

LazyCat:針對澳大利亞議會的APT攻擊事件分析
AI新威脅:刷新即可生成逼真而不存在的人臉

TAG:嘶吼RoarTalk |