
# Terminador de procesos en modo kernel mediante un controlador BYOVD firmado. Funciona en todos los Windows 10/11. Sin offsets, sin PDB. Rust.
Un terminador de procesos de Windows multiplataforma. Carga un controlador de kernel HONOR firmado (MonProcessEX.sys), resuelve el PID de cada proceso objetivo y lo termina desde el contexto del kernel mediante un único IOCTL. Sin offsets de kernel, sin descargas de PDB, sin shellcode específico de compilación: la técnica funciona de forma idéntica en todas las compilaciones de Windows 10 y Windows 11.
La herramienta es un único ejecutable autocontenido. Instala el controlador a través del Service Control Manager, realiza la eliminación y luego detiene y elimina el servicio, sin dejar ningún artefacto persistente. Los objetivos son configurables en tiempo de ejecución mediante un archivo de configuración, línea de comandos o los valores predeterminados integrados.
Multiplataforma por diseño. Un controlador, un IOCTL, una primitiva de eliminación. Funciona en todas las compilaciones de Windows 10 y Windows 11.
1. Keep moncrush.exe and MonProcessEX.sys in the same folder.
2. Run from an elevated shell.
moncrush.exe -n "notepad.exe,calc.exe"
3. Targets die. Driver unloads itself. Done.
Sin toolchain, sin offsets, sin paso de compilación.
| Característica | Detalles |
|---|---|
| Multiplataforma | Funciona en todas las compilaciones de Windows 10 y Windows 11, sin offsets |
| Eliminación en modo kernel | El controlador termina el PID desde el contexto del kernel |
| Bypass de PPL | La ruta de eliminación de MonProcessEX.sys omite las comprobaciones de procesos protegidos |
| Controlador firmado | MonProcessEX.sys es un controlador HONOR firmado real |
| No está en las reglas de bloqueo de MS | Ausente de las reglas de bloqueo de controladores vulnerables de Microsoft |
| Autosuficiente | Controlador instalado, iniciado y limpiado mediante SCM |
| Cero dependencias | Binario Rust estático; suelta el exe + controlador, ejecuta |
| Configurable | targets.conf o -n, sin necesidad de recompilar |
| Ofuscado | Ruta del dispositivo y lista de objetivos cifradas en reposo |
| Ejecutable único | Un solo binario; salida de consola desde un shell, silencioso al hacer doble clic |
| Modo dry-run | Enumera objetivos y PIDs antes de comprometer |
| Bucle con jitter | --repeat vuelve a comprobar con intervalo aleatorizado |
| Códigos de salida + JSON | Interfaz de automatización compatible con C2 |
+-------------------------------------------------------------------------------------------+
| USER MODE |
| |
| moncrush.exe |
| |
| +-------------------+ +-------------------+ +---------------------+ |
| | enumerate all | | resolve target | | match against | |
| | running | -> | PID via process | -> | target list, | |
| | processes | | entry | | collect PIDs | |
| +-------------------+ +-------------------+ +----------+----------+ |
| | |
| CreateFileW("\.\MonProcessEX") | |
| DeviceIoControl(IOCTL 0x22400C) | |
| output = termination status v |
+-------------------------------------------------------------------------------------------+
| KERNEL MODE |
| |
| MonProcessEX.sys signed HONOR kernel driver |
| +---------------------------------------------------------------------------------+ |
| | | |
| | IOCTL 0x22400C -> PID termination dispatch | |
| | | | |
| | | kernel-mode process lookup | |
| | v | |
| | EPROCESS located -> terminated from kernel context | |
| | | | |
| | v | |
| | process exit path invoked | |
| | | |
| +---------------------------------------------------------------------------------+ |
| |
| CLEANUP |
| +---------------------------------------------------------------------------------+ |
| | SCM service stopped and deleted | |
| | driver unloaded, no persistent artifact | |
| +---------------------------------------------------------------------------------+ |
+-------------------------------------------------------------------------------------------+
El controlador expone un IOCTL de eliminación que termina un proceso dado su PID. El componente en modo usuario enumera los procesos en ejecución, resuelve el PID de cada objetivo y lo envía a través de la interfaz del dispositivo. No se tocan estructuras del kernel desde el modo usuario, por lo que la técnica es inmune a los cambios de versión de Windows.
cargo build --release --target x86_64-pc-windows-gnu
El perfil de release habilita LTO y una única unidad de generación de código. El proyecto es autocontenido con su propia declaración [workspace].
moncrush.exe [options]