
Interceptor is a kernel driver focused on tampering with EDR/AV solutions in kernel space
المؤلف: @Cerbersec
Interceptor هو برنامج تشغيل على مستوى النواة (Kernel Driver) يركّز على العبث بحلول EDR/AV في مساحة النواة من خلال تصحيح استدعاءات النواة (Kernel Callbacks) وخطف طلبات IRP. تم تطوير Interceptor كجزء من تدريب داخلي في الفريق الأحمر لشركة NVISO Security. يمكن العثور على المقالات المرتبطة بالمشروع هنا (kernel karnage).
في عام 2022، تم تقديم Kernel Karnage في SANS Pen Test HackFest، مما دفع إلى إصدار هذا المستودع للعموم بالإضافة إلى العروض التوضيحية التالية:
المتطلبات:
خطوات البناء:
git clone https://github.com/NVISO-ARES/Interceptor.gitيمكن تثبيت برنامج التشغيل على الأجهزة التي يتم فيها تعطيل فرض توقيع برنامج التشغيل (Driver Signature Enforcement - DSE) أو التي تكون في وضع التوقيع التجريبي (Test Signing). للحصول على حل لتعطيل DSE انظر هنا. تشمل الخيارات البديلة توقيع برنامج التشغيل بشهادة توقيع كود صالحة.
ملاحظة: الأجهزة التي يتم فيها تمكين Secure Boot أو تكامل الكود المحمي بواسطة Hypervisor (Hypervisor-Protected Code Integrity - HVCI) ليست عرضة للخطر
يمكن إنشاء برنامج التشغيل وتشغيله من موجه الأوامر أو 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>