
Terminatore di processi in modalità kernel che utilizza un driver BYOVD firmato. Funziona su tutti i Windows 10/11. Nessun offset, nessun PDB. Rust.
Un terminatore di processi Windows cross-version. Carica un driver kernel HONOR firmato (MonProcessEX.sys), risolve il PID di ogni processo target e lo termina dal contesto kernel tramite un singolo IOCTL. Nessun offset kernel, nessun download di PDB, nessuno shellcode specifico per build - la tecnica funziona in modo identico su ogni build di Windows 10 e Windows 11.
Lo strumento è un singolo eseguibile autonomo. Installa il driver tramite il Service Control Manager, esegue il kill, quindi arresta ed elimina il servizio, non lasciando alcun artefatto persistente. I target sono configurabili a runtime tramite un file di configurazione, riga di comando o i valori predefiniti integrati.
Cross-version by design. Un driver, un IOCTL, una primitiva di kill. Funziona su tutte le build di Windows 10 e 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.
Nessun toolchain, nessun offset, nessuno step di build.
| Funzionalità | Dettagli |
|---|---|
| Cross-version | Funziona su tutte le build di Windows 10 e Windows 11, senza offset |
| Kill in kernel-mode | Il driver termina il PID dal contesto kernel |
| Bypass PPL | Il percorso di kill di MonProcessEX.sys aggira i controlli sui processi protetti |
| Driver firmato | MonProcessEX.sys è un vero driver HONOR firmato |
| Non nelle regole di blocco MS | Assente dalle regole di blocco dei driver vulnerabili di Microsoft |
| Autosufficiente | Driver installato, avviato e rimosso tramite SCM |
| Zero dipendenze | Binario Rust statico; copia exe + driver, esegui |
| Configurabile | targets.conf o -n, nessuna ricompilazione necessaria |
| Offuscato | Percorso del device e lista dei target cifrati a riposo |
| Eseguibile singolo | Un solo binario; output su console da una shell, silenzioso se avviato con doppio clic |
| Modalità dry-run | Enumera target e PID prima di procedere |
| Loop con jitter | --repeat ricontrolla con intervallo randomizzato |
| Exit code + JSON | Interfaccia di automazione C2-friendly |
+-------------------------------------------------------------------------------------------+
| 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 | |
| +---------------------------------------------------------------------------------+ |
+-------------------------------------------------------------------------------------------+
Il driver espone un IOCTL di kill che termina un processo dato il suo PID. Il componente user-mode enumera i processi in esecuzione, risolve il PID di ogni target e lo invia attraverso l'interfaccia del device. Nessuna struttura kernel viene toccata da user mode, quindi la tecnica è immune ai cambiamenti di versione di Windows.
cargo build --release --target x86_64-pc-windows-gnu
Il profilo release abilita LTO e una singola codegen unit. Il progetto è autonomo con la propria dichiarazione [workspace].
moncrush.exe [options]