如何使用CFB對(duì)Windows驅(qū)動(dòng)程序進(jìn)行模糊測(cè)試

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

如何使用CFB對(duì)Windows驅(qū)動(dòng)程序進(jìn)行模糊測(cè)試

關(guān)于CFB

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

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

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

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

盡管GUI顯然需要Windows 10環(huán)境(UWP應(yīng)用程序)中使用,但代理本身可以部署在任何Windows 7+主機(jī)(x86或x64)上。目標(biāo)主機(jī)必須啟用testsigning BCD策略,因?yàn)樽越鈮候?qū)動(dòng)程序不支持WHQL。

機(jī)制分析

IrpDumper.sys是CFB Broker代理的驅(qū)動(dòng)程序部分,它將在啟動(dòng)時(shí)自動(dòng)提取和安裝。驅(qū)動(dòng)程序?qū)⒇?fù)責(zé)通過代理傳遞的IOCTL掛接請(qǐng)求掛接到驅(qū)動(dòng)程序的IRP主功能表。成功后,驅(qū)動(dòng)程序的IRP表將指向IrpDumper.sys攔截程序,我們也可以輕松通過調(diào)試器或WinObjEx64之類的工具查看到相關(guān)信息。

如何使用CFB對(duì)Windows驅(qū)動(dòng)程序進(jìn)行模糊測(cè)試

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

工具構(gòu)建

(1) GUI

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

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

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

(2) 命令行

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

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

然后通過VS命令行終端運(yùn)行下列命令:

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

其中的$Conf可以設(shè)置為Releases或Debug。

工具安裝&配置

在Windows 7+設(shè)備上(推薦使用Windows 10 SDK VM),啟用BCD測(cè)試簽名選項(xiàng)(以管理員權(quán)限啟動(dòng)cmd.exe):

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

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

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

IRP攔截界面:

如何使用CFB對(duì)Windows驅(qū)動(dòng)程序進(jìn)行模糊測(cè)試

IRP詳情

如何使用CFB對(duì)Windows驅(qū)動(dòng)程序進(jìn)行模糊測(cè)試

如何使用CFB對(duì)Windows驅(qū)動(dòng)程序進(jìn)行模糊測(cè)試

IRP重放:

如何使用CFB對(duì)Windows驅(qū)動(dòng)程序進(jìn)行模糊測(cè)試

項(xiàng)目地址

CFB:【GitHub傳送門】

當(dāng)前標(biāo)題:如何使用CFB對(duì)Windows驅(qū)動(dòng)程序進(jìn)行模糊測(cè)試
本文網(wǎng)址:http://www.muchs.cn/news49/204549.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、App開發(fā)、云服務(wù)器、用戶體驗(yàn)、企業(yè)建站、靜態(tài)網(wǎng)站

廣告

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

外貿(mào)網(wǎng)站制作