Atacar FTP con Contraseñas Generadas
En este paso, utilizarás las capacidades de generación de contraseñas de Hydra para atacar un servidor FTP ficticio. Utilizarás una lista de contraseñas generada "sobre la marcha" con la opción -x.
Primero, necesitas configurar un servidor FTP simple para pruebas. Utilizarás python3-pyftpdlib, que es una biblioteca de servidor FTP ligera para Python.
Instala python3-pyftpdlib si aún no está instalado:
sudo apt update
sudo apt install -y python3-pyftpdlib
Inicia el servidor FTP en segundo plano en el puerto 2121, sirviendo archivos desde el directorio ~/project. La opción -w permite acceso de escritura.
nohup python3 -m pyftpdlib -p 2121 -w -u testuser -P secret ~/project > /dev/null 2>&1 &
La parte nohup ... & ejecuta el comando en segundo plano y evita que se detenga si cierras la terminal. > /dev/null 2>&1 redirige la salida estándar y el error estándar a /dev/null, manteniendo tu terminal limpio. Las opciones -u testuser -P secret configuran un usuario con la contraseña "secret" que puede acceder al servidor.
Ahora, usarás Hydra para atacar este servidor FTP. Utilizarás la opción -x para generar contraseñas e intentar iniciar sesión como el usuario "testuser".
Ejecuta el siguiente comando en la terminal:
hydra -l testuser -vV -x 4:6:a-z 127.0.0.1 ftp -s 2121
Descompongamos este comando:
hydra: La herramienta de línea de comandos Hydra.
-l testuser: Especifica el nombre de usuario a usar: "testuser".
-vV: Habilita la salida detallada, mostrando cada intento de inicio de sesión.
-x 4:6:a-z: Le indica a Hydra que genere contraseñas con:
4: Longitud mínima de 4 caracteres.
6: Longitud máxima de 6 caracteres.
a-z: Utiliza solo letras minúsculas (a-z).
127.0.0.1: El host de destino (localhost). Usas 127.0.0.1 en lugar de localhost para evitar posibles problemas de resolución de DNS dentro del contenedor.
ftp: El servicio a atacar (FTP).
-s 2121: Especifica el número de puerto. Estás atacando el servidor FTP que se ejecuta en el puerto 2121.
Deberías ver a Hydra intentando inicios de sesión con contraseñas generadas. Dado que el servidor FTP está configurado con credenciales específicas (nombre de usuario: testuser, contraseña: secret), Hydra encontrará la contraseña correcta cuando genere "secret" durante sus intentos de fuerza bruta.
Importante: Usa Ctrl+C para detener el ataque, ya que tomará mucho tiempo completarlo.
La salida mostrará los intentos de inicio de sesión y, finalmente, un mensaje de inicio de sesión exitoso.
Hydra v[...] (c) 2023 by van Hauser / THCO
...
[INTENTO] target 127.0.0.1:2121 servicio ftp en dispositivo eth0 - inicio de sesión testuser contraseña aaaa
[INTENTO] target 127.0.0.1:2121 servicio ftp en dispositivo eth0 - inicio de sesión testuser contraseña aaab
...
[2121][ftp] host: 127.0.0.1 login: testuser password: secret
Ahora, probemos un ejemplo ligeramente más complejo, combinando letras minúsculas y dígitos:
hydra -l testuser -vV -x 3:5:a-z0-9 127.0.0.1 ftp -s 2121
Esto generará contraseñas como "aaa", "aab", "aac", y así sucesivamente, pasando sistemáticamente por todas las combinaciones de 3 caracteres primero, luego de 4 caracteres, y finalmente de 5 caracteres. Observa la salida para ver las contraseñas generadas y el inicio de sesión exitoso.
Hydra v[...] (c) 2023 by van Hauser / THCO
...
[INTENTO] target 127.0.0.1:2121 servicio ftp en dispositivo eth0 - inicio de sesión testuser contraseña aaa
[INTENTO] target 127.0.0.1:2121 servicio ftp en dispositivo eth0 - inicio de sesión testuser contraseña aab
...
[2121][ftp] host: 127.0.0.1 login: testuser password: secret
Este paso demostró cómo usar Hydra con la opción -x para generar contraseñas y atacar un servidor FTP. Recuerda usar estas técnicas de forma responsable y ética.