
Proof-of-concept che sfrutta una vulnerabilità del driver kernel Fortinet fortimon3_74.sys per aggirare PPL e terminare processi protetti come lsass.exe tramite un comando di kill non autenticato.
Una vulnerabilità nel driver kernel fortimon3_74.sys di Fortinet (il minifilter "anti-exploit" di FortiClient) consente a qualsiasi amministratore locale di terminare qualsiasi processo - inclusi i processi protetti PPL (Protected Process Light) come Windows Defender (MsMpEng.exe) e lsass.exe - inviando un messaggio di 8 byte a una porta di comunicazione non autenticata.
Nessun buffer overflow. Nessuno heap spray. Nessuna ROP chain. Solo 8 byte.
| Campo | Valore |
|---|
| Driver | fortimon3_74.sys (FortiClient Anti-Exploit Minifilter) |
| Porta | \Fortimon3FilterAntiExploitPort |
| Impatto | Bypass PPL, terminazione arbitraria di processi |
| Accesso | Amministratore locale |
| Autenticazione | Nessuna |
| Rischio BYOVD | Alto - il driver è firmato da Fortinet |
Il driver espone una porta di comunicazione minifilter senza alcuna autenticazione del chiamante. Accetta un semplice messaggio di 8 byte:
struct {
DWORD magic; // 0x6C6C696B ("kill" in little-endian ASCII)
DWORD pid; // Target process ID
};
Alla ricezione di questo messaggio, il driver chiama ZwOpenProcess con PROCESS_ALL_ACCESS da kernel mode (aggirando i controlli PPL), quindi ZwTerminateProcess. Non viene eseguita alcuna validazione sul chiamante o sul target.
L'handle ZwOpenProcess viene creato nella tabella degli handle del chiamante (manca il flag OBJ_KERNEL_HANDLE), creando una breve finestra in cui un attaccante in usermode potrebbe duplicare un handle PROCESS_ALL_ACCESS verso un processo protetto PPL come lsass.exe - consentendo il furto di credenziali senza terminare il processo.
PROCESS_ALL_ACCESS invece di PROCESS_TERMINATEOBJ_KERNEL_HANDLE mancante espone l'handle kernel a usermode
Guarda la demo completa - dimostra il bypass PPL contro processi protetti.
| File | Descrizione |
|---|---|
poc.c | Proof of Concept - termina qualsiasi processo per nome tramite il driver vulnerabile |
fortimon3_74.sys | Binario del driver vulnerabile (firmato Fortinet) |
poc.jpg | Screenshot - lsass.exe terminato, riavvio del sistema attivato |
forti.mp4 | Video demo dell'exploit |
cl.exe poc.c /Fe:poc_kill.exe
poc_kill.exe MsMpEng.exe
Richiede: privilegi di amministratore locale, fortimon3_74.sys caricato.
me1n