HEVD內核攻擊:驅動程序的編譯、安裝、載入及調試(一)

HEVD是HackSys的一個Windows的訓練項目,是一個存在漏洞的內核的驅動,裡面存在多個漏洞,通過ControlCode控制漏洞類型,這個項目的驅動里幾乎涵蓋了內核可能存在的所有漏洞,從最基礎的棧溢出,到池溢出,釋放後重用等等類型,是一個非常好的項目。非常適合我們熟悉理解Windows內核漏洞的原理,利用技巧等等。

項目地址:hacksysteam/HackSysExtremeVulnerableDriver

編譯驅動程序

我們需要安裝Visual Studio 2015以及最新的SDK。還要安裝Windows驅動程序工具包(WDK)。因為我們想要的目標為Windows 7的 64位操作系統,所以我還要下載了Windows 7的SDK。

所有安裝都是我們從github所下載的HEVD源代碼的zip文件,而且我們還會把驅動程序源代碼提取到一個目錄。接下來,打開Visual Studio並啟動一個新項目。安裝WDK後,我們就可以選擇創建一個空的內核模式驅動程序,然後為這個新項目命名一個易於識別的名稱(例如HEVD-win7x64),然後點擊OK:

右鍵單擊解決方案資源管理器中右側的Header Files文件夾,然後單擊添加>現有項目……,直到我們瀏覽到驅動程序源代碼目錄,然後將這些目錄導入所有.h文件。這些操作完成後,我們就可以對解決方案資源管理器中的源文件文件夾執行相同操作,並導入所有.c文件。現在在項目菜單下,選擇HEVD-win7x64屬性……直到打開項目屬性對話框。不過要實現新項目的正常工作,我們還要進行一些操作,單擊C / C ++節點並將「Treat Warnings As Errors」更改為「No (/WX-)」,另外還需要向下滾動到代碼生成子節點,將安全檢查選項更改為「Disable Security Check (/GS-)」,以便我們可以使用此緩衝區溢出,而不會出現其他"並發攻擊"。單擊驅動程序設置節點,並確保目標操作系統是Windows 7,目標工作平台在桌面。在Build菜單下,單擊Build Solution,如果一切正常,我們應該在x64 Release中的項目文件夾下找到HEVD-Win7x64.sys:

安裝驅動程序

Windows 7 x64不允許安裝任何舊版的驅動程序。從Windows Vista開始,所有64位版本的Windows都需要驅動程序代碼為驅動程序載入數字簽名。Microsoft提供了各種解決方法來測試驅動程序,但我們認為最簡單的選項是使用TESTSIGNING引導配置選項,因為這能允許我們使用Visual Studio對驅動程序簽名的測試證書,並且不需要完全信任的驗證鏈。

打開管理員命令提示符,並發出以下命令:

載入驅動程序

通常,驅動程序是使用安裝程序創建的,但是為了到達測試效果,我們還是要選擇使用OSR驅動程序載入程序。從此鏈接下載實用程序並解壓縮OSRLOADER.exe。不過要想載入新編譯的驅動程序,我們還需要先「註冊服務」,註冊完畢,點擊「開始服務」就可以了!

內核調試

顯然,在VMWare工作環境中,我們為內核調試配置共享串列埠管道是很輕鬆的,但是OSX上的VMWare Fusion沒有正式支持它。因為一些最有用的鏈接已過時:

然後在關閉debugee VM(Win7x64之一)之前,我們需要使用另一個bcdedit命令。打開管理員命令提示符並輸入以下內容:

然後關閉它。打開debugee的.vmx文件,將以下內容附加到其中:

在此,我們建議與這兩個VM共享/ private / tmp文件夾。

無論如何,啟動調試VM並打開WinDBG AMD64。單擊文件>內核調試……直到啟動內核連接對話框。單擊串列選項卡,將COM1更改為COM2,然後單擊確定。現在啟動Win7x64 debugee VM。如果一切順利,我們應該能在調試器中看到下圖所示的情形:

如果我們註冊的HEVD驅動程序能自動啟動,那麼它應該已經被載入並準備好調試了。我們可以通過在調試器中發出一個Break並發出lmkm HEVD_Win7x64命令來進行檢查:

如果發現在自動啟動的狀態下,沒有載入,我們就需要使用OSRLOADER.exe再次啟動它,不過在這樣做之前,我們需要對調試環境做一個快速調整,必須在每個內核調試會話期間發出以下命令(意味著重新啟動後):

一旦完成,輸入g繼續執行debugee VM,以便我們可以重新載入驅動程序。 現在繼續使用OSRLOADER.exe來啟動驅動程序服務。如果一切順利,內核調試結果如下所示:

因為在的下一篇關於HEVD 內核攻擊的文章中,我們將會用到這些代碼。

本文參考來源於sizzop.github,如若轉載,請註明來源於嘶吼: HEVD內核攻擊:驅動程序的編譯、安裝、載入及調試(一) 更多內容請關注「嘶吼專業版」——Pro4hou

推薦閱讀:

TAG:操作系统内核 | 信息安全 |