
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 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, senza lasciare artefatti persistenti. I target sono configurabili a runtime tramite file di configurazione, riga di comando o le impostazioni predefinite integrate.
Cross-version by design. Un driver, un IOCTL, una primitiva di kill. Funziona su tutte le build di Windows 10 e Windows 11.
1. Tieni moncrush.exe e MonProcessEX.sys nella stessa cartella.
2. Esegui da una shell con privilegi elevati.
moncrush.exe -n "notepad.exe,calc.exe"
3. I target vengono terminati. Il driver si scarica da solo. Fine.
Nessuna toolchain, nessun offset, nessuna fase di build.
| Funzionalità | Dettagli |
|---|---|
| Cross-version | Funziona su tutte le build di Windows 10 e Windows 11, senza offset |
| Kill in modalità kernel | Il driver termina il PID dal contesto kernel |
| Bypass PPL | Il percorso di kill di MonProcessEX.sys bypassa 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 ripulito tramite SCM |
| Zero dipendenze | Binario Rust statico; inserisci exe + driver, esegui |
| Configurabile | targets.conf o -n, nessuna ricompilazione necessaria |
| Offuscato | Percorso del dispositivo e lista target crittografati a riposo |
| Singolo eseguibile | Un binario; output console da una shell, silenzioso al doppio clic |
| Modalità dry-run | Enumera target e PID prima di eseguire il kill |
| Loop con jitter | --repeat ricontrolla con intervallo randomizzato |
| Codici di uscita + JSON | Interfaccia di automazione adatta a C2 |
+-------------------------------------------------------------------------------------------+
| USER MODE |
| |
| moncrush.exe |
| |
| +-------------------+ +-------------------+ +---------------------+ |
| | enumera tutti | | risolve il PID | | confronta con | |
| | i processi | -> | target tramite | -> | la lista target, | |
| | in esecuzione | | voce di processo| | raccoglie i PID | |
| +-------------------+ +-------------------+ +----------+----------+ |
| | |
| CreateFileW("\.\MonProcessEX") | |
| DeviceIoControl(IOCTL 0x22400C) | |
| output = stato di terminazione v |
+-------------------------------------------------------------------------------------------+
| KERNEL MODE |
| |
| MonProcessEX.sys driver kernel HONOR firmato |
| +---------------------------------------------------------------------------------+ |
| | | |
| | IOCTL 0x22400C -> dispatch di terminazione PID | |
| | | | |
| | | ricerca processo in modalità kernel | |
| | v | |
| | EPROCESS individuato -> terminato dal contesto kernel | |
| | | | |
| | v | |
| | invocato il percorso di uscita del processo | |
| | | |
| +---------------------------------------------------------------------------------+ |
| |
| PULIZIA |
| +---------------------------------------------------------------------------------+ |
| | servizio SCM arrestato ed eliminato | |
| | driver scaricato, nessun artefatto persistente | |
| +---------------------------------------------------------------------------------+ |
+-------------------------------------------------------------------------------------------+
Il driver espone un IOCTL di kill che termina un processo dato il suo PID. Il componente in modalità utente enumera i processi in esecuzione, risolve il PID di ogni target e lo invia tramite l'interfaccia del dispositivo. Nessuna struttura kernel viene toccata dalla modalità utente, quindi la tecnica è immune ai cambi di versione di Windows.
cargo build --release --target x86_64-pc-windows-gnu
Il profilo release abilita LTO e una singola unità di codegen. Il progetto è
autonomo con la propria dichiarazione [workspace].
moncrush.exe [options]
-s, --silent sopprime tutto l'output console
-r, --repeat continua a eseguire, ricontrolla i target
-d, --dry-run enumera i target senza eseguire il kill
-j, --json output JSON leggibile dalla macchina
-l, --list stampa i nomi dei target ed esce
-v, --version stampa la versione ed esce
-x, --self-destruct elimina se stesso dopo un'esecuzione riuscita
--no-check salta i controlli VM e debugger
--delay <ms> attende prima di eseguire
--jitter <ms> randomizza l'intervallo di ripetizione
--max-attempts <n> si ferma dopo n passaggi di kill (0=infinito)
--svc <name> nome del servizio personalizzato
--driver <path> percorso file driver personalizzato
-n, --names <csv> override della lista target separata da virgole
-c, --config <path> carica i target dal file di configurazione
-h, --help mostra questo aiuto
Codici di uscita: 0 ok, 2 nessun target, 3 driver non riuscito, 5 abort
dell'ambiente. Ordine di risoluzione dei target: --names > --config >
targets.conf (disco) > impostazioni predefinite integrate.
--no-check quando si testa all'interno di una VM.--delay <ms> attende prima di fare qualsiasi
cosa, interrompendo la correlazione temporale con l'esecuzione iniziale.-x elimina l'eseguibile e ripulisce la sua voce
Prefetch dopo un'esecuzione riuscita.La lista target è completamente configurabile senza ricompilare:
File di configurazione. Inserisci un targets.conf accanto
all'eseguibile, un nome di processo per riga. Le righe che iniziano con #
vengono ignorate:
MsMpEng.exe
csfalconservice.exe
SentinelAgent.exe
cortex_agent.exe
Un modello è incluso come targets.example.conf.
Riga di comando. moncrush.exe -n "MsMpEng.exe,csfalconservice.exe"
Impostazioni predefinite integrate. Senza configurazione e senza flag, il set integrato è:
MIT. Vedi LICENSE.
Questo progetto è pubblicato solo per ricerca e test autorizzati. Caricare driver non firmati o vulnerabili in un sistema di cui non si è proprietari è illegale nella maggior parte delle giurisdizioni. Sei responsabile della conformità a tutte le leggi applicabili e all'ambito di autorizzazione dei sistemi che testi.