
Interceptor is a kernel driver focused on tampering with EDR/AV solutions in kernel space
लेखक: @Cerbersec
इंटरसेप्टर एक कर्नेल ड्राइवर है जो कर्नेल स्पेस में EDR/AV समाधानों के साथ छेड़छाड़ करने पर केंद्रित है, कर्नेल कॉलबैक को पैच करके और IRPs को हुक करके। इंटरसेप्टर को NVISO सिक्योरिटी की रेड टीम में इंटर्नशिप के हिस्से के रूप में बनाया गया था। संबंधित ब्लॉगपोस्ट यहाँ (kernel karnage) पाए जा सकते हैं।
2022 में, Kernel Karnage को SANS Pen Test HackFest में प्रस्तुत किया गया था, जिसके परिणामस्वरूप इस रिपॉजिटरी को सार्वजनिक रूप से जारी किया गया और साथ ही निम्नलिखित डेमो भी:
आवश्यकताएँ:
बिल्ड चरण:
git clone https://github.com/NVISO-ARES/Interceptor.gitड्राइवर उन मशीनों पर स्थापित किया जा सकता है जिन पर Driver Signature Enforcement (DSE) अक्षम है या जो परीक्षण हस्ताक्षर मोड में हैं। DSE को अक्षम करने के समाधान के लिए यहाँ देखें। वैकल्पिक विकल्पों में ड्राइवर को एक वैध कोड साइनिंग प्रमाणपत्र के साथ हस्ताक्षरित करना शामिल है।
नोट: Secure Boot या 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>