Parte: 7 — Red Team y operaciones ofensivas · Fuente: The Hacker Recipes (Kerberos) / MITRE ATT&CK T1558 ⏱️ Duración estimada: 110 min · Nivel: Avanzado
Entender el protocolo Kerberos lo suficiente para atacar sus puntos débiles: Kerberoasting (robo y crackeo offline de tickets de servicio), AS-REP Roasting (usuarios sin preautenticación) y las bases de los ataques de tickets. El alumno ejecutará estos ataques en su AD lab y comprenderá por qué funcionan y cómo se detectan.
Al finalizar, el alumno podrá:
| # | Tema | Por qué importa |
|---|---|---|
| 1 | Flujo Kerberos | Base para entender los ataques |
| 2 | TGT vs TGS | Distintos tickets, distintos abusos |
| 3 | Kerberoasting (T1558.003) |
Crackeo offline de cuentas de servicio |
| 4 | AS-REP Roasting (T1558.004) |
La ausencia de preautenticación expone material verificable fuera de línea |
| 5 | Tipos de cifrado (RC4 vs AES) | RC4 facilita el crackeo |
| 6 | Crackeo offline | Hashcat sobre los tickets |
| 7 | Detección y mitigación | Cómo lo ve y frena el Blue Team |
En un dominio, el Key Distribution Center (KDC) se ejecuta en los controladores de dominio y ofrece dos funciones lógicas: el Authentication Service y el Ticket Granting Service. Tras una autenticación válida, el cliente obtiene un TGT; después lo presenta para solicitar un ticket destinado a un SPN concreto. De esta forma, la contraseña del usuario no se envía a cada servicio.
Un ticket contiene información para el cliente y una parte protegida con una clave que el servicio correspondiente puede validar. El TGT está protegido con claves de krbtgt; el ticket de servicio incluye material protegido con la clave de la cuenta asociada al SPN. Esto explica por qué la calidad de la contraseña de una cuenta de servicio importa: un TGS capturado puede someterse a verificación de candidatos fuera del dominio, sin generar un inicio de sesión por cada candidato.
Solicitar tickets para servicios es una operación normal. El riesgo aparece cuando el SPN está ligado a una cuenta con contraseña débil, reutilizada o muy antigua. ATT&CK clasifica esta actividad como T1558.003: se obtiene un TGS y se prueban candidatos contra su parte cifrada. No hace falta que el servicio acepte finalmente una conexión para iniciar esa comprobación fuera de línea.
El tipo de cifrado afecta al coste, pero no es una garantía aislada. RC4 utiliza material derivado del hash NT y facilita cracking muy optimizado; AES incorpora claves derivadas con sal. Aun así, una contraseña predecible sigue siendo una debilidad. La defensa preferente es usar cuentas administradas —como gMSA cuando corresponda—, contraseñas largas y aleatorias, mínimo privilegio y retirar RC4 donde la compatibilidad lo permita.
La preautenticación obliga al cliente a demostrar conocimiento de su clave antes de que el KDC entregue una respuesta aprovechable. Si una cuenta tiene deshabilitado ese requisito, puede solicitarse un AS-REP con material verificable fuera de línea. Esto es T1558.004, no Kerberoasting. Separar ambas técnicas dirige la remediación: una exige revisar cuentas con SPN y sus claves; la otra, localizar la bandera que desactiva preautenticación salvo excepciones justificadas.
El evento 4768 registra solicitudes de TGT y el 4769 solicitudes de tickets de servicio cuando la auditoría correspondiente está habilitada. Un único 4769 no prueba abuso: es parte normal de Kerberos. La detección gana contexto al observar una cuenta que solicita numerosos SPN poco habituales, tipos de cifrado heredados, concentración temporal y desviación de su línea base. El ejercicio debe correlacionar identidad, endpoint y servicio, y evitar afirmar compromiso solo por volumen.
krbtgt.GetUserSPNs.py, GetNPUsers.py.⚠️ Ejecuta estos ataques solo en tu AD lab / GOAD. El crackeo offline no toca el DC más de lo normal, pero solicitar muchos TGS es telemetría; hazlo comprendiendo la detección. Nunca contra dominios ajenos sin autorización.
bash
GetUserSPNs.py lab.local/lowuser:Passw0rd -dc-ip 10.10.10.10 -request -outputfile roast.txt
bash
hashcat -m 13100 roast.txt /usr/share/wordlists/rockyou.txt
Recupera la contraseña de la cuenta de servicio. 4. AS-REP Roasting:
bash
GetNPUsers.py lab.local/ -usersfile users.txt -dc-ip 10.10.10.10 -no-pass -format hashcat
hashcat -m 18200 asrep.txt rockyou.txt
Rubeus.exe kerberoast /outfile:roast.txt y compara el flujo con Impacket.4769 (TGS solicitado) con etype 0x17 (RC4) y documenta cómo el Blue Team los usa para alertar.Compromete la contraseña de una cuenta de servicio de tu AD lab mediante Kerberoasting y crackeo offline, y documenta el evento que el DC generó.
Criterio de aceptación: obtienes en claro la contraseña de una cuenta con SPN, muestras el comando de solicitud y el de crackeo, e identificas el evento 4769 con etype RC4 correspondiente en el registro del DC.
| Síntoma / mensaje | Causa y cómo arreglar |
|---|---|
| No devuelve hashes | No hay cuentas con SPN o credenciales inválidas; revisa enumeración (Clase 170) |
| Hashcat no cracker | Contraseña fuerte o modo incorrecto; verifica -m 13100/18200 y el diccionario |
| AS-REP Roasting vacío | Ninguna cuenta con "no preauth"; configúrala en el lab para practicar |
| Solo hashes AES | Servicio con AES; el crackeo es más lento, usa mejor diccionario/reglas |
| Detectado al instante | Muchas solicitudes RC4; el SOC alerta por eventos 4769 anómalos |
❓ ¿Kerberoasting necesita privilegios? No. Cualquier cuenta de dominio puede solicitar TGS de servicios con SPN. Por eso es tan popular: bajo requisito, alto impacto si hay contraseñas débiles.
❓ ¿Por qué importa retirar RC4? El material RC4 permite comprobaciones de candidatos mucho más económicas que los tipos AES habituales. Su retirada debe planificarse con inventario de compatibilidad, y siempre se combina con claves de servicio fuertes y cuentas administradas.
❓ ¿Cómo se previene? Contraseñas largas y aleatorias para cuentas de servicio, uso de gMSA/dMSA, deshabilitar RC4 y monitorizar solicitudes de TGS anómalas.
T1558.003). https://attack.mitre.org/techniques/T1558/003/ — condiciones, fuentes de detección y mitigaciones de la técnica.T1558.004). https://attack.mitre.org/techniques/T1558/004/ — referencia para no confundir la ausencia de preautenticación con Kerberoasting.Clase 170 — Active Directory: enumeración
Clase 172 — Active Directory: Pass-the-Hash y Pass-the-Ticket