Ejecutar un ataque HTTP básico
En este paso, realizaremos un ataque HTTP básico utilizando Hydra. Hydra es una poderosa herramienta de cracking de contraseñas y se puede utilizar para probar la seguridad de varios servicios, incluyendo HTTP. Vamos a apuntar a un simple formulario de inicio de sesión HTTP para demostrar las capacidades de Hydra.
Antes de comenzar, entendamos algunos conceptos básicos:
- HTTP (Protocolo de Transferencia de Hipertexto): La base de la comunicación de datos en la World Wide Web.
- Hydra: Un cracker de inicio de sesión paralelizado que admite numerosos protocolos para atacar.
- Objetivo (Target): En nuestro caso, un servidor web con un formulario de inicio de sesión.
- Lista de nombres de usuario (Username List): Un archivo que contiene una lista de posibles nombres de usuario.
- Lista de contraseñas (Password List): Un archivo que contiene una lista de posibles contraseñas.
Primero, creemos una simple lista de nombres de usuario y una lista de contraseñas. Usaremos nano
para crear estos archivos en el directorio ~/project
.
Crea un archivo llamado users.txt
con el siguiente contenido:
nano ~/project/users.txt
Agrega los siguientes nombres de usuario al archivo:
admin
user
test
Guarda el archivo presionando Ctrl+X
, luego Y
y luego Enter
.
A continuación, crea un archivo llamado passwords.txt
con el siguiente contenido:
nano ~/project/passwords.txt
Agrega las siguientes contraseñas al archivo:
password
123456
test
Guarda el archivo presionando Ctrl+X
, luego Y
y luego Enter
.
Ahora, supongamos que tenemos un servidor web en funcionamiento en 127.0.0.1
en el puerto 80
con un formulario de inicio de sesión. El formulario requiere un nombre de usuario y una contraseña, y la página de inicio de sesión se encuentra en /login.php
. Usaremos Hydra para intentar crackear el inicio de sesión.
Nota: Para este laboratorio, simularemos el servicio HTTP. En un escenario del mundo real, reemplazarías 127.0.0.1
con la dirección IP real o el nombre de dominio del servidor objetivo.
Para realizar el ataque HTTP básico, utiliza el siguiente comando:
hydra -L ~/project/users.txt -P ~/project/passwords.txt 127.0.0.1 http-post-form "/login.php:username=^USER^&password=^PASS^:Invalid username or password"
Desglosemos este comando:
hydra
: El comando de Hydra.
-L ~/project/users.txt
: Especifica el archivo de la lista de nombres de usuario.
-P ~/project/passwords.txt
: Especifica el archivo de la lista de contraseñas.
127.0.0.1
: La dirección IP del objetivo.
http-post-form
: Especifica el módulo de ataque de formulario HTTP POST.
"/login.php:username=^USER^&password=^PASS^:Invalid username or password"
: Especifica la página de inicio de sesión, los campos de nombre de usuario y contraseña, y el mensaje de error que se muestra cuando el inicio de sesión falla. ^USER^
y ^PASS^
son marcadores de posición que Hydra reemplaza con nombres de usuario y contraseñas de las listas.
Después de ejecutar el comando, Hydra intentará iniciar sesión utilizando cada combinación de nombre de usuario y contraseña. Si se encuentra un inicio de sesión exitoso, Hydra mostrará el nombre de usuario y la contraseña.
Ejemplo de salida (si tiene éxito):
Hydra v9.6 (c) 2024 by van Hauser/THC - Use freely but only for legal purposes.
Hydra is starting...
[DATA] 1 task, 3 servers, 3 login tries (l:3/p:3), ~1 try per server
[DATA] attacking service http-post-form on port 80
[ATTACK] attacking 127.0.0.1:80/login.php
[80][http-post-form] host: 127.0.0.1 login: admin password: password
Esta salida indica que Hydra encontró con éxito la combinación de nombre de usuario admin
y contraseña password
.
Si no se encuentra ningún inicio de sesión exitoso, Hydra terminará sin mostrar ninguna credencial de inicio de sesión exitosa.