Hydra una gran herramienta

Hydra es una herramienta de seguridad muy utilizada para realizar ataques de fuerza bruta contra múltiples protocolos y servicios. Hydra permite a los usuarios identificar credenciales válidas mediante la prueba de combinaciones de nombres de usuario y contraseñas hasta encontrar una coincidencia. Esta herramienta está diseñada para ser rápida y efectiva, y soporta muchos protocolos, incluyendo HTTP, FTP, IMAP, SMB, entre otros.

¿Cómo funciona Hydra?

Hydra realiza ataques de fuerza bruta utilizando un enfoque de múltiples hilos. Esto significa que puede probar múltiples combinaciones de nombres de usuario y contraseñas en paralelo, lo que acelera significativamente el proceso de prueba. La herramienta utiliza listas de nombres de usuario y contraseñas (a menudo denominadas "wordlists" o "diccionarios") que el usuario debe proporcionar. La eficacia del ataque depende en gran medida de la calidad y relevancia de estas listas.

El proceso básico que Hydra sigue es el siguiente:

  1. Inicialización: Hydra comienza leyendo la configuración del usuario, incluyendo el host objetivo, el protocolo y las listas de nombres de usuario y contraseñas.

  2. Conexión: Establece conexiones con el servidor o servicio objetivo utilizando el protocolo especificado.

  3. Autenticación: Prueba combinaciones de nombres de usuario y contraseña en el servicio objetivo.

  4. Verificación: Verifica las respuestas del servidor para determinar si la combinación de credenciales es exitosa.

  5. Registro: Si se encuentra una combinación válida, Hydra registra el resultado y, opcionalmente, puede detenerse o continuar probando otras combinaciones.

Comandos típicos para realizar fuerza bruta en una aplicación web con Hydra

Para realizar un ataque de fuerza bruta en una aplicación web utilizando el protocolo HTTP o HTTPS, puedes utilizar comandos como el siguiente, ajustando los parámetros según sea necesario:

hydra -l usuario -P /ruta/a/lista/de/contrasenas.txt -s 80 -f -vV -t 4 www.ejemplo.com http-get /ruta/login

Aquí, los parámetros significan:

  • -l usuario: especifica un solo nombre de usuario para probar.

  • -P /ruta/a/lista/de/contrasenas.txt: especifica la ruta al archivo que contiene las contraseñas.

  • -s 80: especifica el puerto del servidor (80 es el predeterminado para HTTP).

  • -f: le dice a Hydra que se detenga cuando encuentre la primera combinación de credenciales válidas.

  • -vV: aumenta el nivel de verbosidad, mostrando más detalles durante la ejecución.

  • -t 4: configura el número de hilos paralelos.

  • www.ejemplo.com: es el dominio de la aplicación web.

  • http-get /ruta/login: especifica que el método de acceso es HTTP GET y la ruta donde se encuentra el formulario de login.

Ejemplo de peticiones de Login:

GET /ruta/login?username=usuario&password=contraseña_prueba HTTP/1.1
Host: www.ejemplo.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8
POST /ruta/login HTTP/1.1
Host: www.ejemplo.com
Content-Type: application/json
Content-Length: 55
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8

{"username":"usuario","password":"contraseña_prueba"}

Última actualización