怎么样应用CFB对Windows驱动顺序举行含糊测试

欧冠赛程平台登录
你的位置:欧冠赛程平台登录 > 办公用品 > 怎么样应用CFB对Windows驱动顺序举行含糊测试
怎么样应用CFB对Windows驱动顺序举行含糊测试
发布日期:2022-08-07 08:54    点击次数:137

对付CFB

CFB,全名为Canadian Furious Beaver,是一款功用强盛的Windows驱动顺序含糊测试器材,该器材可以或许协助泛博研究人员监控Windows驱动顺序中的IRP处理惩罚器,并对Windows驱动顺序马脚举行阐发、复现和含糊测试。

CFB本质上是一款漫衍式器材,可以或许捕捉发送给任何Windows驱动顺序的IRP。它次要由两部份形成:

(1) 该器材的“Broker”(代理)联结了用户端代理和一个能将本身按部就班到目的体系上的自提取驱动顺序(IrpDumper.sys)。运行当前,它将表露(取决于编译选项)近程命名管道(可从\\target.ip.address\pipe\cfb拜访)或侦听TCP/1337的TCP端口。该器材所完成的通信和谈策画俭朴,准许任何第三方器材轻松地(经由过程俭朴的JSON音讯)从同一个代理转储驱动顺序IRP。

(2) CFB的GUI是一个给与ProcMon风格的Windows 10 UWP应用顺序:它将跟尾到代理所在的任何职位地方,并供应一个方便的GUI来操作代理(驱动顺序罗列、钩子和IRP捕捉)。它还供应了伪造/重放IRP、自动含糊测试(即对捕捉的每个IRP给与特定的含糊计策)或以种种名目提取IRP,方便研究人员举行深入阐发。捕捉的数据可以或许以易于剖析的名目(*.cfb=SQLite)生活生涯在磁盘上,以便进一步阐发,或随后在GUI中从头加载。

尽管GUI显明需求Windows 10情形(UWP应用顺序)中应用,但代理本身可以或许陈列在任何Windows 7+主机(x86或x64)上。目的主机必须启用testsigning BCD计策,因为自解压驱动顺序不支持WHQL。

机制阐发

IrpDumper.sys是CFB Broker代理的驱动顺序部份,它将在启动时自动提取和按部就班。驱动顺序将担当经由过程代理通报的IOCTL挂接要求挂接到驱动顺序的IRP主功用表。告成后,驱动顺序的IRP表将指向IrpDumper.sys拦阻顺序,办公用品我们也可以轻松经由过程调试器或WinObjEx64之类的器材查察到相干信息。

IrpDumper.sys本身可以或许充当一个rootkit,并代理全体对目的驱动顺序的调用。当DeviceIoControl被发送给挂钩的驱动顺序时,IrpDumper只有捕捉数据(假定有),并将音讯推送到用户端代理,尔后将执行前去给非法的驱动顺序,从而准许预期的代码按预期延续执行。代理睬将全体这些数据存储在用户地区中,等待事宜去要求它们。

器材构建

(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之类的内核调试器来查察整个的相干信息。此时,我们必须启用内核调试BCD选项(以打点员权限启动cmd.exe):

C:\> bcdedit.exe /set {whatever-profile} debug on 
器材运行截图

IRP拦阻界面:

IRP概况

IRP重放:

名目地点

CFB:【GitHub传递门】