Replica Malevola di Active Directory: DCSync (T1003.006)
DCSync è una tecnica di credential dumping che sfrutta in modo malevolo il protocollo di replica di Active Directory. L'attaccante, invece di eseguire codice sul Domain Controller, impersona un DC legittimo e invoca l'API DRSUAPI (in particolare la funzione DsGetNCChanges) per richiedere copia dei segreti di dominio dal DC autentico. Il risultato è l'estrazione degli hash NTLM di qualsiasi utente, incluso l'account KRBTGT, la cui compromissione apre la strada alla forgiatura di Golden Ticket e al pieno controllo del dominio.
La tecnica ricade nella tattica TA0006 (Credential Access) e rappresenta uno degli snodi più critici della kill chain post-exploitation: si colloca tipicamente dopo una prima escalation a privilegi di Domain Admin, Enterprise Admin o membro del gruppo Administrators, oppure attraverso account computer del DC. Non richiede l'esecuzione di codice sul controller, il che la rende particolarmente insidiosa: il traffico appare come normale replica AD e non lascia i tipici artefatti di dumping locale come accesso a lsass.exe o creazione di file ntds.dit.
L'impatto operativo è massimo: con l'hash di KRBTGT l'attaccante ottiene persistenza pluriennale sul dominio. Quattro gruppi APT documentati (Mustang Panda, LAPSUS$, Earth Lusca, Storm-0501) e tre campagne di rilievo (Operation Wocao, SolarWinds Compromise, C0027) hanno impiegato DCSync come pilastro delle proprie operazioni.
L'esecuzione di DCSync in un contesto autorizzato di red teaming richiede un account con i diritti di replica sul naming context di dominio: Replicating Directory Changes, Replicating Directory Changes All e opzionalmente Replicating Directory Changes In Filtered Set. Questi permessi sono nativamente assegnati a Domain Admins, Enterprise Admins e Administrators, ma spesso vengono ereditati anche da account di servizio mal configurati o da gruppi custom, ed è proprio questa la superficie che vale la pena esplorare in un ingaggio.
La via più diretta è Mimikatz (open source). Dopo aver ottenuto una sessione con privilegi sufficienti, il comando canonico è:
mimikatz # lsadump::dcsync /domain:corp.local /user:krbtgt
Per estrarre tutti gli account in un colpo solo si usa il flag /all /csv. La variante NetSync (lsadump::netsync) sfrutta il protocollo legacy di replica ed è utile contro DC che ancora accettano MS-NRPC vulnerabile.
Impacket (open source) offre l'equivalente cross-platform con secretsdump.py, eseguibile da Linux o macOS senza toccare un endpoint Windows:
secretsdump.py -just-dc-user krbtgt corp.local/pentest:'Pwd'@dc01.corp.local
Il flag -just-dc estrae tutti gli hash del dominio, mentre -just-dc-ntlm limita l'output ai soli hash NTLM. Per operazioni più silenziose -outputfile consente di salvare direttamente su disco locale evitando output verboso.
PowerShell con il modulo DSInternals (open source) offre Get-ADReplAccount, utile in scenari dove Mimikatz viene bloccato da AV/EDR e serve una versione fileless più difficile da fingerprinting.
La catena tipica in laboratorio prevede: enumerazione iniziale con BloodHound (open source) per identificare principal con edge GetChanges e GetChangesAll verso il dominio; abuso di eventuali ACL misconfigurate con PowerView (open source) tramite Add-DomainObjectAcl; esecuzione di DCSync mirato su KRBTGT; forgiatura del Golden Ticket con kerberos::golden di Mimikatz.
Per emulazione avversariale strutturata, Atomic Red Team (open source) include test specifici per T1003.006 che generano traffico DRSUAPI controllato, utili per validare le detection del blue team senza compromettere realmente il dominio. Ricorda di ripulire eventuali ACL modificate a fine ingaggio e di documentare l'orario esatto delle azioni per facilitare la correlazione con i log del SOC.
Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?
Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo