Il credential dumping tramite SAM è una tecnica fondamentale nel post-exploit, che consente ad un aggressore di estrarre gli hash delle password dal database Security Account Manager (SAM) dei sistemi Windows. Questo vettore di attacco rappresenta una delle vie per ottenere il controllo completo del computer.
Cos'è SAM
SAM è l’acronimo di Security Account Manager, che gestisce tutti gli account utente e le relative password. Funziona come un database. Tutte le password vengono sottoposte a hash e quindi memorizzate in SAM. È responsabilità dell’LSA (Local Security Authority) verificare l’accesso degli utenti confrontando le password con il database gestito in SAM. Le password sottoposte a hashing vengono salvate nel file SAM che si trova in C:\Windows\System32\config, ma è accessibile anche dal registro di sistema in HKEY_LOCAL_MACHINE\SAM.
Come vengono archiviate le password in Windows?
LM authentication
LAN Manager (LM), sviluppato da IBM per OS/2 e poi adottata da Microsoft per i sistemi operativi Windows, oggi è considerato obsoleto ed estremamente vulnerabile. il metodo adottato consisteva nel crittografare la password suddividendola in due blocchi di sette caratteri ciascuno, convertendo l’intera stringa in caratteri maiuscolo e poi calcolandone l’hash; qualora la password fosse stata più lunga di 14 caratteri l’hash non veniva calcolato. Un attacco di tipo brute force o dizionario, può evitare del tutto la possibilità di considerare i caratteri minuscoli. La chiave utilizzata per la crittografia è DES a 56 bit.
NTLM authentication
L’autenticazione NTLM (NT Lan Manager) è stato sviluppato in quanto LM all’epoca si era rivelato insicuro. Il metodo utilizzato si basa su un meccanismo di challenge-response (sfida-risposta) che utilizza tre componenti: challenge (sfida), response (risposta) e message (messaggio di autenticazione).
Prima che la password NTLM sia salvata, viene crittografata e ne viene calcolato l’hash che sarà poi effettivamente salvato in SAM.
Client-Server challenge-response:
Il client invia il nome utente al server, il quale risponde generando una stringa numerica casuale di 16 byte chiamata nonce che rinvia al client, Il client calcola, dal nonce e dalla password utente, un hash e lo invia come risposta. Questo passaggio è noto come risposta. Il controller di dominio recupera l’hash della password dal database SAM, controlla il nonce e la risposta e se corrispondono, l’autenticazione ha esito positivo.
Il funzionamento di NTLM v1 e NTLM v2 è simile, sebbene ci siano alcune differenze importanti, ad esempio, NTLM v1 usa MD4 per l’hashing, mentre NTLM v2 usa MD5; inoltre, NTLM v1 ha una lunghezza C/R (challenge-response) di 56 bit + 56 bit + 16 bit, mentre NTLM v2 usa 128 bit. Per quanto riguarda l’Algoritmo crittografia, NTLM v1 usa DES (modalità ECB), mentre NTLM v2 si basa su HMAC-MD5.
NOTA: A partire da Windows 10 versione 1607, Microsoft ha sostituito il codice RC4 con AES rendendo obsoleti molti strumenti di estrazione che si trovano in rete. Alcuni di questi sono stati aggiornati e gestiscono correttamente il nuovo metodo di crittografia, altri invece non sono stati al passo.
Devifare il login per poter inviare un commento.