
Ядро: инструмент завершения процессов (эксплойт CVE-2026-0828)


?? Отказ от ответственности: Этот проект предназначен строго для образовательных целей и исследований в области безопасности. Автор не несёт ответственности за любое неправомерное использование, ущерб или незаконную деятельность, вызванную этим инструментом. Используйте только в изолированных лабораторных средах с явного разрешения.
KillChain — это инструмент пользовательского режима, который использует уязвимый драйвер ядра (ProcessMonitorDriver.sys, CVE-2026-0828) для завершения защищённых процессов из пользовательского пространства. Он взаимодействует с ядром через пользовательский интерфейс IOCTL, обходя стандартные механизмы защиты процессов.
Инструмент встраивает бинарный файл драйвера непосредственно в исполняемый файл, извлекает его во временное расположение во время выполнения, регистрирует его как службу ядра, загружает через NtLoadDriver и отправляет запросы на завершение через DeviceIoControl.
KillChain/
??? KillChain.cpp Точка входа, разбор аргументов CLI, основной цикл завершения
??? LoadDriver.h Извлечение драйвера, регистрация службы, логика NtLoadDriver/NtUnloadDriver
??? Logger.h Потокобезопасное ведение журнала в консоль/файл с цветовой кодировкой
??? driverBytes.h Встроенный бинарный файл драйвера (массив байтов)
ProcessMonitorDriver.sys (встроен в исполняемый файл)
??? Предоставляет IOCTL_KILL_PROCESS (0xB822200C) завершает целевой процесс по PID
1. Разбор аргументов CLI
2. Извлечение встроенного .sys ? %TEMP%\EmbeddedDriverService.sys
3. Создание ключа службы в реестре + регистрация через SCM
4. Загрузка драйвера в ядро через NtLoadDriver (требуется SeLoadDriverPrivilege)
5. Открытие дескриптора устройства: \\.\STProcessMonitorDriver
6. Цикл (до 360 секунд):
a. Определение PID по имени на каждой итерации (если использовался --name)
b. Отправка IOCTL_KILL_PROCESS с целевым PID
c. После 2 успешных завершений — опциональное отключение 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 целевого процесса |
| Выходной буфер |
Вывод потокобезопасен (на основе 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, очистка реестра, удаление временного файла |
| Настраиваемое ведение журнала | Четыре уровня детализации с опциональным выводом в файл |
DWORD| Не используется (заглушка) |
| Путь к устройству | \\.\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 |