Estrazione SAM: Security Account Manager (T1003.002)
Il Security Account Manager è il database Windows che custodisce le credenziali degli account locali di un host, quelle stesse che emergono con un semplice net user. Estrarne il contenuto significa mettere le mani sugli hash NTLM degli utenti locali, incluso il famigerato RID 500 (l'amministratore built-in) e gli account utente numerati da 1000 in su. La tecnica T1003.002 si colloca nella tattica TA0006 (Credential Access) e rappresenta uno dei passaggi più ricorrenti nella kill chain post-exploitation, tipicamente subito dopo l'escalation a SYSTEM e prima del movimento laterale.
L'attacco richiede privilegi SYSTEM e può seguire due strade: la lettura in-memory tramite strumenti come Mimikatz, pwdump, gsecdump o secretsdump.py, oppure il dump degli hive di registro HKLM\SAM e HKLM\SYSTEM tramite l'utility nativa reg.exe. Quest'ultima variante è particolarmente insidiosa perché sfrutta un binario firmato Microsoft, difficile da bloccare senza generare falsi positivi.
I numeri parlano chiaro: 13 gruppi APT documentati, 15 famiglie di software offensivo, 5 campagne attribuite fra cui Night Dragon, Operation CuckooBees e il recente FrostyGoop Incident contro infrastrutture di teleriscaldamento ucraine. La tecnica attraversa trasversalmente APT cinesi, russi, iraniani e nordcoreani, dimostrando che il SAM resta un obiettivo di valore universale nel panorama offensivo contemporaneo.
In un ingaggio red team la sequenza classica parte con l'ottenimento di privilegi SYSTEM, ad esempio tramite abuso di token, exploit locali o sfruttamento di servizi mal configurati. Una volta assicurato il contesto privilegiato, il dump degli hive è banale con i binari nativi:
reg save HKLM\SAM %TEMP%\sam.save reg save HKLM\SYSTEM %TEMP%\system.save reg save HKLM\SECURITY %TEMP%\security.save
I tre file vengono poi esfiltrati e processati offline. Il flusso più pulito prevede l'uso di Impacket (open source) con il modulo secretsdump.py, che accetta gli hive locali con la sintassi secretsdump.py -sam sam.save -system system.save -security security.save LOCAL. L'output contiene gli hash NTLM pronti per attacchi di pass-the-hash o cracking con hashcat (open source) in modalità -m 1000.
Sull'endpoint compromesso, Mimikatz (open source) offre l'estrazione in-memory con il comando lsadump::sam dopo aver acquisito il privilegio di debug via privilege::debug. Chi preferisce un approccio più stealthy può orchestrare l'operazione da remoto con CrackMapExec o il suo successore NetExec (open source): nxc smb
Cobalt Strike (a pagamento) integra la funzionalità nativamente tramite il comando hashdump del Beacon, mentre Koadic (open source) espone moduli equivalenti per operazioni via JScript. Per scenari in cui il Volume Shadow Copy è disponibile, la tecnica adottata da APT41 consiste nel creare una copia shadow con vssadmin create shadow /for=C: e leggere gli hive dal path shadow, evitando i lock del filesystem su file di sistema attivi.
In laboratorio è utile testare anche la variante di lettura diretta dei file %SystemRoot%\System32\config\SAM e SYSTEM montando il disco offline (ad esempio con una live ISO), scenario tipico degli attacchi con accesso fisico. Per validare la catena, uno script Atomic Red Team (open source) copre buona parte delle varianti di reg save e permette di misurare la copertura di detection dell'ambiente. Ricordare sempre di operare in perimetro autorizzato e di eliminare gli artefatti a fine test, compresi i file .save residui in %TEMP% e nelle cartelle pubbliche.
Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?
Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo