Smascherare la Backdoor della VPN: Come una Vulnerabilità nel Driver di FortiClient Ha Consegnato le Chiavi del Regno
Sottotitolo: Un’analisi approfondita di una vulnerabilità critica di escalation dei privilegi scoperta in FortiClient VPN dall’HackerHood di RHC, e cosa rivela sulla sicurezza dei sistemi moderni.
In un tranquillo giorno di gennaio 2025, un membro del collettivo HackerHood, operante sotto la sigla RHC, si è imbattuto in uno scheletro digitale nell’armadio di FortiClient VPN per Windows. Quella che era iniziata come una semplice indagine di routine si è trasformata nella scoperta di una falla a livello kernel-capace di trasformare utenti comuni in sovrani del sistema. Questa è la storia di CVE-2025-47761: un bug che non solo ha messo a nudo le difese di Fortinet, ma ha anche acceso i riflettori sul continuo gioco del gatto col topo tra cacciatori di exploit e architetti della sicurezza.
L’Anatomia di una Catastrofe Kernel
FortiClient VPN, utilizzato da aziende di tutto il mondo per l’accesso remoto sicuro, è diventato un complice inaspettato in attacchi di escalation dei privilegi a causa di una falla nel suo driver kernel Fortips_74.sys. La radice del problema? Un gestore IOCTL che si fidava dei puntatori forniti dall’utente, permettendo a qualsiasi processo-privilegiato o meno-di sussurrare istruzioni pericolose direttamente al kernel di Windows.
L’exploit ruota attorno al codice IOCTL 0x12C803, che utilizza METHOD_NEITHER-il più rischioso tra i metodi di trasferimento dati di Windows. Questo approccio salta tutti i controlli di sanità del kernel, passando i puntatori user-mode direttamente al driver. Nel caso di FortiClient, il driver copiava quattro byte dalla memoria stack non inizializzata a qualsiasi indirizzo specificato dal chiamante. Nessuna validazione. Nessuna restrizione. Nelle mani di un attaccante esperto, ciò significava la possibilità di sovrascrivere strutture sensibili del kernel-come il token di sicurezza di un processo-e ottenere privilegi di livello SYSTEM.
Ciò che rendeva questo bug particolarmente pericoloso erano i controlli di accesso permissivi del driver. Di default, qualsiasi processo poteva aprire un handle verso il driver, anche quelli in sandbox del browser o con diritti minimi. Questa politica di “porta aperta” rendeva la vulnerabilità facilmente accessibile agli attaccanti locali.
Difese Moderne vs. Vecchi Trucchi
Ma questa storia non riguarda solo un singolo bug; parla dell’evoluzione della sicurezza Windows. Le ultime build di Windows 11 (24H2) hanno alzato l’asticella, limitando l’accesso agli indirizzi di memoria kernel a meno che l’attaccante non possieda già privilegi avanzati (SeDebugPrivilege). Questo significa che, sebbene la falla sia tecnicamente ancora sfruttabile, individuare il giusto indirizzo kernel da colpire è diventato molto più difficile senza concatenare più vulnerabilità.
Il proof-of-concept di Alex Ghiotto ha sfruttato abilmente un altro bug (CVE-2025-53136) per ottenere l’indirizzo necessario, ma man mano che le patch vengono distribuite, gli attaccanti dovranno trovare metodi sempre più creativi per aggirare le difese stratificate. Fortinet, dal canto suo, è stata lenta a riconoscere pubblicamente il problema-correggendolo silenziosamente a settembre, ma divulgandolo solo a novembre, mesi dopo la segnalazione iniziale.
Conclusione: Lezioni dalla Violazione
La vulnerabilità di FortiClient VPN è un duro promemoria che anche i prodotti di sicurezza più maturi possono nascondere pericolose falle al loro interno. Man mano che Windows rafforza le sue protezioni kernel, gli attaccanti sono costretti a concatenare exploit e lavorare di più per ogni piccolo privilegio guadagnato. Ma la lezione per i difensori è chiara: mai fidarsi dell’input utente nei driver kernel, e mai sottovalutare l’ingegnosità del sottobosco hacker.
WIKICROOK
- Escalation dei Privilegi: L’escalation dei privilegi si verifica quando un attaccante ottiene accesso di livello superiore, passando da un account utente normale a privilegi di amministratore su un sistema o una rete.
- Driver Kernel: Un driver kernel è un programma fondamentale che consente l’interazione diretta tra un sistema operativo e l’hardware, gestendo funzioni chiave a basso livello.
- IOCTL (Input/Output Control): Gli IOCTL sono comandi speciali che permettono al software di comunicare con i driver dei dispositivi, abilitando il controllo avanzato e il recupero di informazioni dai dispositivi hardware.
- METHOD_NEITHER: METHOD_NEITHER è un metodo di trasferimento IOCTL di Windows che passa i puntatori utente direttamente ai driver, richiedendo una validazione rigorosa per prevenire vulnerabilità di sicurezza.
- SeDebugPrivilege: SeDebugPrivilege è un permesso di Windows che consente ai processi di accedere e controllare altri processi, spesso utilizzato nel debugging e preso di mira negli attacchi informatici.




