
أداة إنهاء عمليات النواة (استغلال CVE-2026-0828)


?? إخلاء مسؤولية: هذا المشروع مخصص لأغراض تعليمية وبحوث أمنية فقط بشكل صارم. المؤلف غير مسؤول عن أي إساءة استخدام أو ضرر أو نشاط غير قانوني ناتج عن هذه الأداة. استخدمها فقط في بيئات معملية معزولة وبإذن صريح.
KillChain هي أداة تعمل في وضع المستخدم تستغل برنامج تشغيل نواة ضعيفًا (ProcessMonitorDriver.sys, CVE-2026-0828) لإنهاء العمليات المحمية من مساحة المستخدم. تتواصل مع النواة عبر واجهة IOCTL مخصصة، متجاوزةً آليات حماية العمليات القياسية.
تقوم الأداة بتضمين ملف برنامج التشغيل الثنائي مباشرة داخل الملف التنفيذي، وتستخرجه إلى موقع مؤقت في وقت التشغيل، وتسجّله كخدمة نواة، وتحمّله عبر NtLoadDriver، وترسل طلبات الإنهاء عبر DeviceIoControl.
KillChain/
??? KillChain.cpp نقطة الدخول، تحليل وسائط سطر الأوامر، حلقة الإنهاء الرئيسية
??? LoadDriver.h استخراج برنامج التشغيل، تسجيل الخدمة، منطق NtLoadDriver/NtUnloadDriver
??? Logger.h تسجيل آمن للخيوط في وحدة التحكم/الملف مع مخرجات ملونة
??? driverBytes.h برنامج التشغيل المضمّن (مصفوفة بايت خام)
ProcessMonitorDriver.sys (مضمّن داخل الملف التنفيذي)
??? يعرض IOCTL_KILL_PROCESS (0xB822200C) ينهي عملية مستهدفة بواسطة PID
1. تحليل وسائط سطر الأوامر
2. استخراج .sys المضمّن إلى %TEMP%\EmbeddedDriverService.sys
3. إنشاء مفتاح خدمة في السجل + التسجيل عبر SCM
4. تحميل برنامج التشغيل إلى النواة عبر NtLoadDriver (يتطلب SeLoadDriverPrivilege)
5. فتح مقبض الجهاز: \\.\STProcessMonitorDriver
6. حلقة (حتى 360 ثانية):
أ. حل PID بالاسم في كل تكرار (إذا تم استخدام --name)
ب. إرسال IOCTL_KILL_PROCESS مع PID المستهدف
ج. بعد عمليتي إنهاء ناجحتين، تعطيل Windows Defender اختياريًا عبر السجل
7. إغلاق مقبض الجهاز؛ تشغيل --uninstall-driver اختياريًا للتنظيف
SeLoadDriverPrivilege والوصول إلى السجلKillChain.sln في Visual Studio 2022Ctrl+Shift+B للبناءالمخرجات: x64\Release\KillChain.exe
KillChain.exe [options]
Options:
--pid <PID> إنهاء عملية بواسطة PID
--name <ProcessName> إنهاء عملية باسم الملف التنفيذي
--disable-defender تعطيل Windows Defender أيضًا عبر السجل
--log-level <0-3> مستوى تفصيل التسجيل (0=أخطاء، 1=عادي، 2=مفصّل، 3=تصحيح)
--output <file> حفظ مخرجات السجل إلى ملف
--uninstall-driver إلغاء تحميل برنامج التشغيل، حذف الخدمة وملف برنامج التشغيل
--help عرض هذه المساعدة
REM إنهاء عملية محمية بالاسم
KillChain.exe --name MsMpEng.exe
REM إنهاء بواسطة PID مع تسجيل مفصّل مكتوب إلى ملف
KillChain.exe --pid 1234 --log-level 2 --output log.txt
REM إنهاء عملية وتعطيل Windows Defender بعد ذلك
KillChain.exe --name notepad.exe --disable-defender
REM تنظيف برنامج التشغيل بعد الاختبار
KillChain.exe --uninstall-driver
| الثابت | القيمة |
|---|---|
IOCTL_KILL_PROCESS | 0xB822200C |
| الحقل | النوع | الوصف |
|---|---|---|
| مخزن الإدخال | ULONG64 | PID العملية المستهدفة |
| مخزن الإخراج | DWORD |
المخرجات آمنة للخيوط (مدعومة بـ CRITICAL_SECTION) ويمكنها الكتابة إلى وحدة التحكم بألوان ANSI وإلى ملف سجل في نفس الوقت.
CVE-2026-0828 يعرض ProcessMonitorDriver.sys IOCTL يسمح لأي مستدعي في وضع المستخدم يمتلك مقبضًا للجهاز بإنهاء عمليات عشوائية بما في ذلك عمليات النظام المحمية دون فحوصات التحكم في الوصول القياسية.
Eleven Red Pandas
هذا المشروع مقدم لأغراض تعليمية وبحوث أمنية فقط. إعادة التوزيع أو الاستخدام في بيئات الإنتاج محظور تمامًا.
| الميزة | الوصف |
|---|
| الإنهاء بواسطة PID | إنهاء أي عملية برقم PID الخاص بها عبر IOCTL للنواة |
| الإنهاء بالاسم | حل وإنهاء عملية باسم الملف التنفيذي، مع إعادة الفحص في كل تكرار |
| حلقة الاستمرار | مراقبة مستمرة وإعادة إنهاء الهدف لمدة تصل إلى 360 ثانية |
| تعطيل Defender | الكتابة إلى HKLM\SOFTWARE\Policies\Microsoft\Windows Defender لتعطيل الحماية في الوقت الفعلي |
| برنامج تشغيل مضمّن | ملف برنامج التشغيل الثنائي مدمج داخل الملف التنفيذي لا حاجة لملف .sys خارجي |
| إلغاء تثبيت برنامج التشغيل | إلغاء تحميل برنامج التشغيل من النواة، إزالة خدمة SCM، تنظيف السجل، حذف الملف المؤقت |
| تسجيل قابل للتكوين | أربعة مستويات للتفصيل مع إخراج ملف اختياري |
| غير مستخدم (وهمي) |
| مسار الجهاز | \\.\STProcessMonitorDriver |
| المستوى | القيمة | الوصف |
|---|
LOG_ERROR | 0 | الأخطاء فقط |
LOG_INFO | 1 | رسائل التشغيل العادية (الافتراضي) |
LOG_WARNING | 2 | التحذيرات والرسائل المعلوماتية |
LOG_DEBUG | 3 | تتبع تصحيح كامل |
| الخطوة | Win32 / NT API |
|---|
| الاستخراج إلى الملف المؤقت | CreateFile + WriteFile |
| تسجيل الخدمة | RegCreateKeyEx + CreateService (SCM) |
| التحميل إلى النواة | NtLoadDriver (ntdll) |
| التحقق من النشاط | EnumDeviceDrivers + GetDeviceDriverBaseName |
| إلغاء التحميل من النواة | NtUnloadDriver (ntdll) |
| إزالة الخدمة | DeleteService (SCM) + RegDeleteTree |
| حذف الملف المؤقت | DeleteFile |