
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, Driver Signature Enforcement)이 비활성화되었거나 테스트 서명 모드인 시스템에 설치할 수 있습니다. 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>