Iscriviti al webinar gratuito del 20 Ottobre per diventare Ethical Hacker! Scopri di più
Password Filter DLL Malevola: Password Filter DLL (T1556.002)
La tecnica T1556.002 descrive l'abuso del meccanismo dei Password Filter DLL di Windows, componenti legittimi che il sistema usa per applicare policy di complessità sulle password. Ogni volta che un utente cambia o imposta una password, la Local Security Authority (LSA) interpella tutti i filtri registrati passando loro la password in chiaro, prima di scriverla nel database SAM. Un attaccante che riesce a registrare un proprio filtro ottiene di fatto un keylogger permanente sulle credenziali di dominio o locali.
MITRE ATT&CK cataloga la tecnica su tre tattiche: TA0003 (Persistence) perché il filtro sopravvive ai riavvii, TA0005 (Defense Evasion) perché opera dentro lsass.exe mascherato da componente di sicurezza, e TA0006 (Credential Access) perché intercetta password in plaintext senza necessità di dump di memoria o cracking di hash.
L'impatto è severo soprattutto quando il filtro è installato su un Domain Controller: ogni cambio password di ogni utente del dominio, inclusi amministratori e account di servizio, viene esfiltrato. La tecnica è documentata in uso da almeno 2 gruppi APT (Strider e OilRig) e implementata nel malware Remsec. Richiede privilegi SYSTEM per la registrazione, ma una volta piazzata è estremamente silenziosa e sopravvive a rotazioni credenziali che neutralizzerebbero altre forme di persistenza.
In un esercizio red team autorizzato, la simulazione di T1556.002 richiede un laboratorio isolato con un Domain Controller di test, perché la tecnica intercetta password reali di ogni utente e non deve mai toccare produzione.
La catena tipica parte da un accesso con privilegi amministrativi sul DC (o su una workstation per credenziali locali), seguita dallo sviluppo di una DLL che esporta le funzioni richieste dall'API di Windows: InitializeChangeNotify, PasswordChangeNotify e PasswordFilter. Microsoft documenta queste esportazioni nella sezione Password Filters di Win32 API; la DLL può essere scritta in C con Visual Studio o MinGW. Per finalità didattiche esiste il progetto PasswordFilter di Clymb3r su GitHub (open source), che mostra un'implementazione di riferimento che scrive le password in chiaro su file — da usare solo in lab.
Il deployment richiede due passaggi. Prima la DLL va copiata in *C:\Windows\System32* con lo stesso ACL delle DLL legittime, cosa che tipicamente si fa con:
*copy filtro.dll C:\Windows\System32*
Poi va registrata aggiungendo il nome (senza estensione) alla chiave di registro dei Notification Packages. Da PowerShell elevato:
$key = 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa'; $current = (Get-ItemProperty -Path $key -Name 'Notification Packages').'Notification Packages'; Set-ItemProperty -Path $key -Name 'Notification Packages' -Value ($current + 'filtro')
Dopo un riavvio del sistema, lsass.exe carica il nuovo filtro e inizia a passargli ogni password validata. Per un red team la validazione dell'operazione consiste nel cambiare la password di un utente di test e verificare che la DLL abbia intercettato il valore in chiaro.
Come alternativa più realistica ai tool custom, Mimikatz (open source) include il modulo misc::memssp che, pur essendo tecnicamente un Security Support Provider (T1556.005) e non un Password Filter, ottiene un risultato analogo iniettando in lsass un componente che logga credenziali in chiaro. La distinzione va mantenuta nel report finale.
Durante l'esercizio è utile documentare il tempo tra registrazione e primo cambio password intercettato, la persistenza attraverso riavvii, e verificare quali soluzioni EDR presenti nell'ambiente cliente rilevano la modifica alla chiave Notification Packages o il caricamento di una DLL non firmata da parte di lsass.exe. Al termine dell'esercizio, rimuovere il valore dal registro, riavviare, cancellare la DLL e ruotare tutte le password intercettate.
Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?
Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo
2 minuti · 7 domande
Che professionista cyber sei?
Scopri il profilo più vicino al tuo modo di pensare e inizia dal percorso giusto.