Cached Domain Credentials: OS Credential Dumping - Cached Domain Credentials (T1003.005)
Gli attaccanti sfruttano le credenziali di dominio memorizzate nella cache per ottenere accesso anche quando i domain controller non sono raggiungibili. Questa tecnica rientra nella tattica TA0006 (Credential Access), parte fondamentale della fase di post-exploitation nella kill chain.
Su Windows Vista e versioni successive, le credenziali sono salvate in formato DCC2 (Domain Cached Credentials version 2), noto anche come MS-Cache v2. A differenza degli hash NTLM, questi non permettono attacchi pass-the-hash ma richiedono il cracking della password per ottenere il testo in chiaro.
I sistemi Linux con integrazione Active Directory mantengono cache simili attraverso SSSD (System Security Services Daemon) o Quest Authentication Services. Le credenziali si trovano tipicamente in /var/lib/sss/db/cache.[domain].ldb per SSSD o /var/opt/quest/vas/authcache/vas_auth.vdb per Quest.
L'impatto di questa tecnica è significativo: 4 gruppi APT documentati la utilizzano attivamente, insieme a 4 software specializzati nel dumping delle credenziali. La derivazione delle credenziali su Windows Vista utilizza PBKDF2, rendendo il processo di cracking computazionalmente intensivo ma non impossibile.
Il dumping delle credenziali cached richiede privilegi elevati su tutti i sistemi operativi. Su Windows, con accesso SYSTEM, puoi utilizzare diversi approcci operativi.
reg save HKLM\SECURITY security.hiv reg save HKLM\SYSTEM system.hiv
Questi comandi esportano i registry hive necessari per l'estrazione offline. Successivamente, puoi processarli con secretsdump.py di Impacket:
secretsdump.py -security security.hiv -system system.hiv LOCAL
Per un approccio più diretto, Mimikatz offre il modulo dedicato:
privilege::debug token::elevate lsadump::cache
Su Linux, l'estrazione richiede prima l'identificazione del database corretto. Per sistemi con SSSD:
sudo tdbdump /var/lib/sss/db/cache.DOMAIN.COM.ldb | grep -i cached
Quest VAS richiede un approccio diverso. Prima identifica il database, poi estrai:
sudo strings /var/opt/quest/vas/authcache/vas_auth.vdb | grep -i '$DCC2$'
Linikatz automatizza il processo su Linux, richiedendo solo:
sudo ./linikatz.sh
Per testare in laboratorio, configura prima un ambiente con credenziali cached. Su Windows, autentica un utente di dominio poi disconnetti la rete. Le credenziali rimarranno nella cache per il numero di logon configurato nel registro.
Il numero di credenziali cached è controllabile via registro in HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\cachedlogonscount. Il valore predefinito è 10 su workstation e 25 su server.
Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?
Scarica la guida gratuita e segui il percorso corretto fin dal primo passo