今天就跟大家聊聊有關怎么進行CVE-2019-1132詳細分析,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
ESET研究人員發現了Buhtrap組織在針對東歐的APT攻擊中使用的樣本,樣本使用了Windows的0 DAY漏洞。微軟發布了針對此漏洞的補丁,這個漏洞是CVE-2019-1132。因為該漏洞被長期使用在APT攻擊中,所以這次事件也引起了很大的影響。本文的主要目的是對CVE-2019-1132這個漏洞做一個詳細的分析,利用的PoC來自于SHIVAM TRIVEDI。
安全人員發現該漏洞是一個提權漏洞,利用了win32k.sys中的空指針間接引用。SHIVAM TRIVEDI提供的PoC在Windows 7 32(Win7 32Bit Build 7601版本)位上可以成功利用。
漏洞描述:
漏洞編號:CVE-2019-1132
漏洞描述:當Win32k組件無法正確處理內存中的對象時,Windows中存在一個提權漏洞,即“Win32k提權漏洞”
受影響版本:
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
三、詳細分析1. 利用的基礎
為了完成這個利用,首先需要創建一個多級菜單和兩個窗口(我們稱它們為Main窗口和Hunt窗口)。

這三部分是完成整個利用的所有基礎,利用的兩個關鍵步驟在于tagPopupMenu和tagWND數據結構的修改(tagPopupMenu和tagWND分別是內核中表示菜單和窗體的數據結構。)。下面我們來看一下重要的代碼。
首先,需要創建一個3級的菜單,第一個菜單我們稱為Root菜單,其他兩個菜單被設置為Root菜單的子菜單。
然后創建兩個窗體,即Main窗體和Hunt窗體。

在窗體創建完成以后,需要給該進程設置窗體的消息Hook和事件Hook。
對于消息Hook來說,重要之處是在窗體創建的時候,向第一個Menu發送MN_CANCELMENUS消息,從而銷毀第一個菜單。
對于事件Hook來說,向窗體發送特定的菜單消息,以保證能觸發特定的內核函數。

2.利用的過程
接下來,我們看一下,漏洞的形成和觸發。
在這里我們要先說一下內核中菜單的數據結構tagWnd,tagWnd數據結構中的ppopupmenuRoot項指向了它的子菜單的數據結構,當它被銷毀的時候,這個指針被置為null,也就是0。
觸動漏洞的過程開始于TrackPopupMenu的使用。
當上面基礎都準備好后,在調用TrackPopupMenu函數在Main窗體上顯示菜單時,菜單被創建,所以菜單窗體的消息HOOK函數就會被執行,當消息HOOK函數檢測到WM_NCCREATE消息和其他條件都滿足的時候,就向ROOT菜單發送一個WM_CANCELMENUS消息,以銷毀ROOT菜單。這個時候ROOT菜單數據結構的ppopupmenuRoot項變成了0。而這個時候,其他的子菜單仍然會繼續創建。
ppopupmenuRoot為0,意味著在ROOT菜單可以引用地址為0的子菜單。接下來,在地址為0的地方分配內存,在這里構造了一個虛假的菜單。
和這個虛假的菜單相關聯的重要概念是tagWND,也就是內核窗體數據結構。我們看一下tagWND數據結構。其中有一個非常重要的標識bServerSideWindowProc,這個標識的值如果被置1,那么窗體的回調函數會在內核態中被執行。
該利用使用了Hunt窗體作為最終的利用目標。為了達到這個目的,首先要獲取窗口數據結構地址。
我們可以看到名為xxHMValidateHandle的函數獲取了PTHREDSKHEAD的數據結構,這個結構中包含了窗體數據結構的地址。這個函數的原型應該來自于內核函數win32k!ValidateMenu。
然后,Hunt窗體的數據結構的一個特殊地址被賦值給了這個精心構造的假菜單。
我們再次調用TrackPopupMenuEx函數通過ROOT菜單和虛假的菜單來撬動利用。這次,Hunt窗體的bServerSideWindowProc會被置為1。
最后向Hunt窗體發送消息0x1234,Hunt窗體的默認回調函數就會在內核空間中執行了。

在Hut窗體的默認回調函數中拷貝SYSMTEM進程的TOKEN給自身,就實現了進程的提權操作。

(上圖是成功提權)
1、不要輕易打開可疑文件,如電子郵件、可疑鏈接、可疑文檔等等。
2、及時安裝系統補丁,使用最新版本的軟件。
3、安裝殺毒軟件,及時更新病毒庫。
4、使用“鐵穹高級持續性威脅預警系統”(簡稱“鐵穹”)發現潛在的攻擊行為,及時響應和阻斷,避免造成業務中斷或經濟損失。
看完上述內容,你們對怎么進行CVE-2019-1132詳細分析有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。