# HYDRA

**Hydra**, también conocida como **THC-Hydra**, es una poderosa herramienta de código abierto diseñada para realizar **ataques de fuerza bruta o diccionario contra múltiples protocolos y servicios de autenticación**. Es ampliamente utilizada por profesionales de la ciberseguridad durante pruebas de penetración para comprobar la robustez de credenciales en redes y sistemas.

Esta herramienta ya viene instalado por defecto en Kali Linux, en caso de querer instarlo de manera manual, usa el siguiente comando:

```bash
sudo apt install hydra
```

* Ver opciones o parámetros que puedes usar para la herramienta

```bash
hydra -h
```

#### 🔍 ¿Qué servicios puede atacar?

Hydra soporta una gran cantidad de protocolos y servicios. Algunos de los más comunes son:

* **HTTP / HTTPS**
* **FTP**
* **SSH**
* **Telnet**
* **SMB**
* **POP3 / IMAP / SMTP**
* **RDP**
* **MySQL / PostgreSQL / Oracle**
* **VNC**
* **LDAP**
* **SNMP**
* ¡Y muchos más!

> 🔧 Puede extenderse mediante módulos para atacar nuevos servicios personalizados

## ⚒️ Estructura de comando en Hydra

```bash
hydra [options + wordlists] [protocolo + objetivo] 
```

### Ejemplo de fuerza bruta a SSH

```bash
hyda -l "admin" -P /usr/share/wordlists/rockyou.txt ssh://192.168.119.25
```

* -l = Indicamos el user directamente, en este caso usamos "admin", en caso de querer usar un diccionario usamos el parámetro en mayúscula -L e indicamos la ruta del de .txt
* -P= Indicamos la ruta donde se encuentra el diccionario que queremos usar para el ataque, en caso de especificar una contraseña usamos el parámetro en minúscula, por ejemplo; -p "password123"
* ssh://= Este es protocolo por el cuál intentamos hacer el ataque, podemos cambiarlo para el protocolo que deseemos hacer, por ejemplo:
  * ftp\://IP
  * telnet://IP
  * rdp\://IP
  * etc.
* IP: es el objetivo que tiene activo el servicio

### Ataque a formulario HTTP

Esta opción nos permite poder hacer un ataque de fuerza bruta a sistemas de logueo en paneles administrativos como Wordpress, cpanel,etc\
\
**🌐 Estructura HTTP Form**

hydra \[opciones] \[host] \[servicio] \[formato del ataque]

<figure><img src="https://2635113826-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5daWhBxoDFtT9Z7bT21e%2Fuploads%2Fn8yJ9CeLxty4GrbgHKD8%2Fimage.png?alt=media&#x26;token=21c20c2d-5b3f-4e60-9033-2b651fdb7bfd" alt="" width="420"><figcaption><p>Ejemplo: /wp-admin </p></figcaption></figure>

```bash
hydra -l admin -P /usr/share/wordlists/rockyou.txt 127.0.0.1 http-post-form "/vulnerabilities/brute/:username=^USER^&password=^PASS^&Login=Login:F=Username and/or password incorrect" -s 42001
```

## 🧠 ¿Qué hace cada parte?

| Parte                                                                                                        | Significado                                  |
| ------------------------------------------------------------------------------------------------------------ | -------------------------------------------- |
| `hydra`                                                                                                      | Herramienta para fuerza bruta.               |
| `-l admin`                                                                                                   | Usuario objetivo (`admin`).                  |
| `-P /usr/share/wordlists/rockyou.txt`                                                                        | Lista de contraseñas a probar (rockyou.txt). |
| `127.0.0.1`                                                                                                  | IP del objetivo (localhost).                 |
| `http-post-form`                                                                                             | Tipo de ataque: POST en formulario web.      |
| `"/vulnerabilities/brute/:username=^USER^&password=^PASS^&Login=Login:F=Username and/or password incorrect"` |                                              |
| Cadena de ataque con:                                                                                        |                                              |

* Ruta al formulario: `/vulnerabilities/brute/`
* Parámetros POST (`username`, `password`, `Login`)
* Marcadores:
  * `^USER^` y `^PASS^` → se reemplazan por Hydra.
  * `F=...` → texto que aparece cuando el **login falla**. | | `-s 42001` | Puerto personalizado donde corre el servidor (en este caso, el 42001). |

### 🛡️ ¿Cómo defenderse?

El uso de Hydra revela **fallas de configuración** o **credenciales débiles**. Para prevenir ataques:

* Implementar **bloqueo temporal por intentos fallidos (rate limit)**.
* Usar **2FA** y contraseñas robustas.
* Deshabilitar cuentas innecesarias.
* Monitorear logs y comportamiento anómalo.
