
Interceptor is a kernel driver focused on tampering with EDR/AV solutions in kernel space
作者: @Cerbersec
Interceptorは、カーネルコールバックのパッチ適用とIRPのフックによって、カーネル空間でEDR/AVソリューションを改ざんすることに焦点を当てたカーネルドライバです。 Interceptorは、NVISO SecurityのRed Teamでのインターンシップの一環として作成されました。関連するブログ記事はこちら(kernel karnage)から参照できます。
2022年、Kernel KarnageはSANS Pen Test HackFestで発表され、これを機にこのリポジトリが公開されるとともに、以下のデモも公開されました。
要件:
ビルド手順:
git clone https://github.com/NVISO-ARES/Interceptor.gitこのドライバは、ドライバ署名強制(DSE)が無効になっているマシン、またはテスト署名モードのマシンにインストールできます。DSEを無効にするソリューションについてはこちらを参照してください。別の方法として、有効なコード署名証明書を使用してドライバに署名する方法もあります。
注: Secure BootまたはHVCI(Hypervisor-Protected Code Integrity)を有効にしたマシンは影響を受けません。
ドライバはコマンドプロンプトまたはPowerShellから作成および起動できます(スペースに注意):
sc create Interceptor type= kernel binPath= C:\Path\To\Driver\Interceptor.sys
sc start Interceptor
sc stop Interceptor
sc delete Interceptor
Usage: InterceptorCLI.exe <option> <parameter> <values>
Options:
-list <parameter>
vendors List all supported EDR vendors and their modules
modules List all loaded drivers
hooked List all hooked drivers
callbacks List all registered callbacks
-hook <parameter>
index <values> Hook driver(s) by index
name <device name> Hook driver by name (\Device\Name)
-unhook <parameter>
index <values> Unhook driver(s) by index
all Unhook all drivers
-patch <parameter>
vendor <name> Patch all modules associated with vendor
module <names> Patch all callbacks associated with module(s)
process <values> Patch process callback(s) by index
thread <values> Patch thread callback(s) by index
image <values> Patch image callback(s) by index
registry <values> Patch registry callback(s) by index
objectprocess <values> Patch object process callback(s) by index
objectthread <values> Patch object thread callback(s) by index
-restore <parameter>
vendor <name> Restore all modules associated with vendor
module <names> Restore all callbacks associated with module(s)
process <values> Restore process callback(s) by index
thread <values> Restore thread callback(s) by index
image <values> Restore image callback(s) by index
registry <values> Restore registry callback(s) by index
objectprocess <values> Restore object process callback(s) by index
objectthread <values> Restore object thread callback(s) by index
all Restore all callbacks
Values: space separated. see -list <modules | hooked | callbacks>
Name: case sensitive. see -list <vendors>