Credenziali di Dominio in Cache: Cached Domain Credentials (T1003.005)

La tecnica T1003.005 riguarda l'estrazione delle credenziali di dominio memorizzate localmente sui sistemi Windows e Linux per consentire l'autenticazione degli utenti anche quando il domain controller non è raggiungibile. Su Windows Vista e versioni successive queste credenziali sono conservate in forma di hash DCC2 (noto anche come MS-Cache v2), derivato tramite PBKDF2 e non utilizzabile per attacchi pass-the-hash: l'attaccante deve necessariamente ricorrere al password cracking offline per recuperare la password in chiaro.

La tecnica si colloca nella tattica TA0006 (Credential Access) e rappresenta un tassello ricorrente nella kill chain post-exploitation: dopo aver ottenuto privilegi SYSTEM o sudo su un endpoint, l'avversario preleva gli hash dalle cache locali per poi muoversi lateralmente o elevare privilegi sfruttando password decifrate offline, riducendo il rumore rispetto a un dump diretto di LSASS.

Su sistemi Linux integrati con Active Directory tramite SSSD o Quest Authentication Services, gli hash risiedono in database Trivial DB (/var/lib/sss/db/cache.[domain].ldb e /var/opt/quest/vas/authcache/vas_auth.vdb) leggibili con utility come tdbdump. I dati MITRE censiscono 4 gruppi APT, 4 famiglie di software e 5 mitigazioni, con un forte overlap sull'uso di LaZagne come tool preferito per l'harvesting delle credenziali cached.

In un ingaggio red team autorizzato, il prelievo delle credenziali cached parte quasi sempre da un accesso privilegiato già acquisito. Su Windows il percorso classico consiste nell'esportare gli hive di registro SECURITY e SYSTEM, che contengono rispettivamente il materiale cifrato dei DCC2 e la SysKey necessaria a decifrarli.

Con privilegi SYSTEM (via PsExec -s o token stealing) i comandi sono:

reg save HKLM\SYSTEM C:\Windows\Temp\sys.hive reg save HKLM\SECURITY C:\Windows\Temp\sec.hive

Gli hive vengono poi processati offline con impacket-secretsdump (open source), parte del framework Impacket di Fortra:

secretsdump.py -system sys.hive -security sec.hive LOCAL

L'output include la sezione [*] Dumping cached domain logon information (domain/username:hash) con hash in formato $DCC2$10240#user#hash, direttamente utilizzabile con Hashcat (open source, modalità -m 2100) o John the Ripper (open source, formato mscash2). Data la derivazione PBKDF2 con 10240 iterazioni, il cracking è considerevolmente più lento rispetto a NTLM: pianificare wordlist mirate (aziendali, stagionali) e regole di mutazione è essenziale.

In alternativa Mimikatz (open source) offre il modulo dedicato:

privilege::debug token::elevate lsadump::cache

Il vecchio Cachedump di fizzgig e strumenti automatizzati come LaZagne (open source, modulo windows all) semplificano la raccolta ma sono ampiamente firmati dagli AV, quindi in scenari evasivi conviene lavorare direttamente con hive esportati e trasferiti fuori host.

Su Linux con integrazione SSSD, dopo aver ottenuto root:

tdbdump /var/lib/sss/db/cache.CORP.LOCAL.ldb | grep -i hash

Per Quest VAS il file è vas_auth.vdb, apribile con la stessa utility del pacchetto tdb-tools (open source). Lo strumento Linikatz (open source, progetto di CyberArk Labs su GitHub) automatizza l'estrazione da entrambi i backend e produce hash pronti per il cracking.

Durante l'esercizio è raccomandato limitare l'attività a host segregati di laboratorio, documentare hash e password recuperati in vault cifrati, e coordinare con il blue team le finestre temporali per validare la telemetria di detection. Verificare anche il valore di HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\CachedLogonsCount: se è impostato a 0 la cache è vuota e la tecnica non produce risultato.

Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?

Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo

TEST GRATUITO
2 minuti · 7 domande Che professionista cyber sei? Scopri il profilo più vicino al tuo modo di pensare e inizia dal percorso giusto.