如何使用CFB對Windows驅動程序進行模糊測試

2022-10-11    分類: 網(wǎng)站建設

如何使用CFB對Windows驅動程序進行模糊測試

關于CFB

CFB,全名為Canadian Furious Beaver,是一款功能強大的Windows驅動程序模糊測試工具,該工具可以幫助廣大研究人員監(jiān)控Windows驅動程序中的IRP處理器,并對Windows驅動程序漏洞進行分析、復現(xiàn)和模糊測試。

CFB本質上是一款分布式工具,可以捕捉發(fā)送給任何Windows驅動程序的IRP。它主要由兩部分組成:

(1) 該工具的“Broker”(代理)結合了用戶端代理和一個能將自己安裝到目標系統(tǒng)上的自提取驅動程序(IrpDumper.sys)。運行之后,它將暴露(取決于編譯選項)遠程命名管道(可從\\target.ip.address\pipe\cfb訪問)或偵聽TCP/1337的TCP端口。該工具所實現(xiàn)的通信協(xié)議設計簡單,允許任何第三方工具輕松地(通過簡單的JSON消息)從同一個代理轉儲驅動程序IRP。

(2) CFB的GUI是一個采用ProcMon風格的Windows 10 UWP應用程序:它將連接到代理所在的任何位置,并提供一個方便的GUI來操作代理(驅動程序枚舉、鉤子和IRP捕獲)。它還提供了偽造/重放IRP、自動模糊測試(即對捕獲的每個IRP采用特定的模糊策略)或以各種格式提取IRP,方便研究人員進行深入分析。捕獲的數(shù)據(jù)可以以易于解析的格式(*.cfb=SQLite)保存在磁盤上,以便進一步分析,或隨后在GUI中重新加載。

盡管GUI顯然需要Windows 10環(huán)境(UWP應用程序)中使用,但代理本身可以部署在任何Windows 7+主機(x86或x64)上。目標主機必須啟用testsigning BCD策略,因為自解壓驅動程序不支持WHQL。

機制分析

IrpDumper.sys是CFB Broker代理的驅動程序部分,它將在啟動時自動提取和安裝。驅動程序將負責通過代理傳遞的IOCTL掛接請求掛接到驅動程序的IRP主功能表。成功后,驅動程序的IRP表將指向IrpDumper.sys攔截程序,我們也可以輕松通過調試器或WinObjEx64之類的工具查看到相關信息。

如何使用CFB對Windows驅動程序進行模糊測試

IrpDumper.sys本身可以充當一個rootkit,并代理所有對目標驅動程序的調用。當DeviceIoControl被發(fā)送給掛鉤的驅動程序時,IrpDumper只需捕獲數(shù)據(jù)(如果有),并將消息推送到用戶端代理,然后將執(zhí)行返回給合法的驅動程序,從而允許預期的代碼按預期繼續(xù)執(zhí)行。代理會將所有這些數(shù)據(jù)存儲在用戶區(qū)域中,等待事件去請求它們。

工具構建

(1) GUI

首先,我們需要使用下列命令將該項目源碼克隆至本地:

git clone https://github.com/hugsy/CFB.git

接下來,使用Visual Studio構建項目根目錄中的CFB.sln代理解決方案。除此之外,我們還可以通過構建GUI(Unicersal Windows)項目來構建App GUI。

(2) 命令行

首先,我們需要使用下列命令將該項目源碼克隆至本地:

git clone https://github.com/hugsy/CFB.git

然后通過VS命令行終端運行下列命令:

C:\cfb\> msbuild CFB.sln /p:Configuration=$Conf

其中的$Conf可以設置為Releases或Debug。

工具安裝&配置

在Windows 7+設備上(推薦使用Windows 10 SDK VM),啟用BCD測試簽名選項(以管理員權限啟動cmd.exe):

C:\> bcdedit.exe /set {whatever-profile} testsigning on

如果使用了調試模式,IrpDumper.sys將提供更多的詳細信息。我們可以通過DebugView.exe之類的工具或WinDbg之類的內(nèi)核調試器來查看全部的相關信息。此時,我們必須啟用內(nèi)核調試BCD選項(以管理員權限啟動cmd.exe):

C:\> bcdedit.exe /set {whatever-profile} debug on 工具運行截圖

IRP攔截界面:

如何使用CFB對Windows驅動程序進行模糊測試

IRP詳情

如何使用CFB對Windows驅動程序進行模糊測試

如何使用CFB對Windows驅動程序進行模糊測試

IRP重放:

如何使用CFB對Windows驅動程序進行模糊測試

項目地址

CFB:【GitHub傳送門】

分享文章:如何使用CFB對Windows驅動程序進行模糊測試
文章網(wǎng)址:http://www.muchs.cn/news/204549.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站、自適應網(wǎng)站定制開發(fā)、App設計網(wǎng)站建設、網(wǎng)站設計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)