En este paso, utilizarás Hydra para realizar un ataque de fuerza bruta al servicio SSH que se ejecuta en la dirección IPv6 que configuraste anteriormente. Hydra es una potente herramienta de descifrado de contraseñas que admite varios protocolos, incluido SSH.
Antes de comenzar, crearás una lista de contraseñas simple. Esta lista contendrá las contraseñas que Hydra intentará usar para autenticarse en el servicio SSH.
-
Iniciar el servicio SSH:
Primero, necesitas asegurarte de que el servicio SSH se esté ejecutando en el sistema. Ejecuta el siguiente comando para iniciar el servicio SSH:
sudo systemctl start ssh
Puedes verificar que el servicio SSH se esté ejecutando comprobando su estado:
sudo systemctl status ssh
La salida debería mostrar que el servicio está activo y en ejecución.
-
Configurar SSH para escuchar en IPv6:
De forma predeterminada, SSH solo puede escuchar en direcciones IPv4. Necesitas configurarlo para que también escuche en IPv6. Primero, comprueba en qué direcciones está escuchando actualmente SSH:
ss -tlnp | grep :22
Deberías ver una salida como LISTEN 0 128 0.0.0.0:22 0.0.0.0:*, lo que significa que SSH solo está escuchando en IPv4.
Ahora, edita el archivo de configuración de SSH para habilitar la escucha en IPv6:
sudo nano /etc/ssh/sshd_config
Busca la línea que contiene #AddressFamily any o AddressFamily inet y cámbiala a:
AddressFamily any
Si la línea no existe, agrégala. Esto indica a SSH que escuche en direcciones IPv4 e IPv6.
Guarda el archivo presionando Ctrl + X, luego Y para confirmar el guardado y Enter para confirmar el nombre del archivo.
Reinicia el servicio SSH para aplicar los cambios:
sudo systemctl restart ssh
Verifica que SSH ahora esté escuchando en IPv4 y IPv6:
ss -tlnp | grep :22
Ahora deberías ver a SSH escuchando tanto en 0.0.0.0:22 (IPv4) como en [::]:22 (IPv6).
-
Crear una lista de contraseñas:
Abre tu terminal en la máquina virtual LabEx. Actualmente estás en el directorio ~/project. Usa el editor nano para crear un archivo llamado passwords.txt en este directorio:
nano passwords.txt
Agrega las siguientes contraseñas al archivo, una contraseña por línea:
password
123456
qwerty
admin
labex
Guarda el archivo presionando Ctrl + X, luego Y para confirmar el guardado y Enter para confirmar el nombre del archivo.
-
Ejecutar Hydra para atacar el servicio SSH IPv6:
Ahora, usarás Hydra para atacar el servicio SSH. Utilizarás la opción -6 para especificar que deseas atacar la dirección IPv6. También especificarás el nombre de usuario a atacar (por ejemplo, labex), la lista de contraseñas que creaste (passwords.txt) y la dirección IPv6 del servidor SSH (2001:db8:1::1).
Ejecuta el siguiente comando:
hydra -6 -l labex -P passwords.txt ssh://[2001:db8:1::1]
Desglose del comando:
hydra: El comando para ejecutar la herramienta Hydra.
-6: Especifica que Hydra debe usar IPv6.
-l labex: Especifica el nombre de usuario a atacar. En este caso, estás atacando al usuario labex.
-P passwords.txt: Especifica la lista de contraseñas a usar. En este caso, estás usando el archivo passwords.txt que creaste en el directorio actual ~/project.
ssh://[2001:db8:1::1]: Especifica el servicio SSH de destino. El prefijo ssh:// indica que estás atacando un servicio SSH, y [2001:db8:1::1] es la dirección IPv6 del servidor encerrada entre corchetes (requerido para direcciones IPv6 en Hydra).
Hydra comenzará a probar las contraseñas del archivo passwords.txt contra el servicio SSH. Si Hydra encuentra una contraseña válida, mostrará las credenciales. La salida puede ser similar a esto si no se encuentra ninguna contraseña:
(Salida de Hydra sin contraseña válida omitida)
Si no se encuentra ninguna contraseña, puedes intentar agregar más contraseñas comunes a tu archivo passwords.txt. También puedes usar la opción -V para ver una salida detallada que muestre cada intento.
(Salida de Hydra con contraseña válida omitida)
Esta salida indica que Hydra descifró con éxito la contraseña del usuario labex.
Nota importante: Forzar el acceso a contraseñas en un sistema sin autorización es ilegal y poco ético. Este laboratorio es solo para fines educativos, y solo debes usar estas técnicas en sistemas que poseas o tengas permiso explícito para probar.