Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/hika-sec/terminator_killer
Escalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónEvasión de IDS/IPSPruebas de PenetraciónRed Teaming
GitHubhika-sec/terminator_killer

Terminator_Killer

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.

Ver Repositorio
1hace 21h 36mAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Terminator - Asesino de Procesos para Red Team

Una herramienta de terminación de procesos en modo kernel que aprovecha un controlador vulnerable (CVE-2026-0828) para terminar procesos protegidos desde el modo usuario.

Compilación

Requiere MinGW-w64 (GCC) en Windows. Compile con:

root@kitploit:~
g++ --% .\terminator.cpp -o terminator.exe -Oz -ffunction-sections -fdata-sections -static -static-libgcc -static-libstdc++ -Wl,--gc-sections -W

Desglose de opciones:

OpciónPropósito
--%Token de parada de análisis de PowerShell (pasa los argumentos literalmente a g++)
-OzOptimiza para minimizar el tamaño
-ffunction-sections / -fdata-sectionsColoca 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-sectionsEl enlazador elimina mediante recolección de basura las secciones no utilizadas
-WHabilita advertencias

Salida: terminator.exe independiente (~20-30 KB sin símbolos).

Enfoque Técnico

Este proyecto demuestra la explotación de un controlador de kernel vulnerable (STProcessMonitorDriver) que expone un handler IOCTL_KILL_PROCESS sin validar, permitiendo la terminación arbitraria de procesos sin importar privilegios o mecanismos de protección (PPL, flags de EPROCESS, etc.).

Desglose de Arquitectura

ComponentePropósito
terminator.cppCliente en modo usuario que enumera procesos y envía IOCTLs de terminación
terminator.hppInterfaz de clase para enumeración y terminación de procesos
ProcessMonitorDriver.sysControlador de kernel vulnerable (externo, no incluido)

Análisis del Código

Terminator::GetProcessPids()

  • Crea una instantánea mediante CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS)
  • Itera todos los procesos con Process32First/Process32Next
  • Realiza coincidencias sin distinguir mayúsculas/minúsculas contra los nombres de procesos objetivo
  • Devuelve un vector de PIDs coincidentes

Terminator::ProcessKill()

  • Abre un handle a \\.\STProcessMonitorDriver
  • Entra en un bucle de monitoreo infinito (intervalo de 500 ms)
  • Para cada PID descubierto, envía IOCTL_KILL_PROCESS (0xB822200C) con un búfer PID de 8 bytes
  • Sin salida cuando no se encuentran procesos; solo registra en los intentos de terminación

Guía de Uso

Requisitos Previos

Cargue el controlador vulnerable (requiere Administrador):

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

Explotando un Servicio Existente

Si una versión vulnerable de ProcessMonitorDriver.sys ya está instalada y ejecutándose como un servicio (por ejemplo, desde una aplicación legítima), Terminator puede conectarse directamente sin cargar un nuevo controlador.

Compruebe si el servicio existe y está en ejecución:

root@kitploit:~
sc.exe query STProcessMonitor

Verifique si la versión del controlador es vulnerable (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
}

Si el servicio existe y está RUNNING con una versión vulnerable, omita los pasos de carga del controlador y ejecute Terminator directamente.

Versiones Afectadas (Probadas)

VersiónSHA-256
11.11.4.070bcec00c215fe52779700f74e9bd669ff836f594df92381cbfb7ee0568e7a8b
10.5.75.085d21ad0e0b43d122f3c9ec06036b08398635860c93d764f72fb550fb44cf786

Otras versiones pueden estar afectadas; verifique el handler IOCTL del controlador antes de usarlo.

Ejecutar Terminator

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

Ejemplo:

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

Salida

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

Análisis de CVE-2026-0828

Vulnerabilidad: El controlador STProcessMonitorDriver registra un handler IOCTL (0xB822200C) que:

  1. Acepta un PID de 64 bits suministrado por el usuario como búfer de entrada
  2. No realiza ninguna validación sobre el valor del PID
  3. Llama a PsLookupProcessByProcessId → ZwTerminateProcess directamente
  4. Se ejecuta en contexto de kernel (token SYSTEM), omitiendo todas las ACLs de modo usuario

Impacto: Cualquier usuario no administrador con acceso al controlador puede terminar:

  • Procesos Protegidos (PPL)
  • Agentes de antivirus/EDR
  • Procesos críticos del sistema (csrss, winlogon, etc.)
  • Procesos con requisitos de SeDebugPrivilege

Causa Raíz: Falta de validación de ObReferenceObjectByHandle, sin SeSinglePrivilegeCheck(SeDebugPrivilege), y sin comprobaciones de acceso al objeto de proceso.

Aviso Legal

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 prueba es ilegal. El autor no asume ninguna responsabilidad por el mal uso. Asegúrese de contar con autorización por escrito antes de implementarla en cualquier entorno.

El controlador vulnerable (ProcessMonitorDriver.sys) tiene fallos intencionados con fines de demostración y nunca debe implementarse en producción.

Descargar herramienta