Introducción
En este laboratorio, aprenderás a controlar los intervalos de conexión de la herramienta de craqueo de contraseñas Hydra. El laboratorio demuestra cómo configurar Hydra para introducir retrasos entre los intentos de conexión, permitiéndote gestionar el ritmo del ataque y potencialmente evadir la detección.
El laboratorio comienza configurando un servidor SSH básico en la máquina virtual LabEx utilizando OpenSSH. Instalarás el servidor, verificarás su estado y confirmarás que está escuchando en el puerto 22. Posteriormente, ejecutarás Hydra con los tiempos predeterminados y luego modificarás el comando para incluir la opción -W 5, que introduce un intervalo de 5 segundos entre los intentos de conexión. Finalmente, observarás el impacto de este ajuste de tiempo en el ritmo general del ataque.
Configurar el Servidor SSH
En este paso, configuraremos un servidor SSH básico en la máquina virtual LabEx. SSH (Secure Shell) es un protocolo de red criptográfico para operar servicios de red de forma segura a través de una red insegura. Se utiliza comúnmente para el inicio de sesión remoto por línea de comandos y la ejecución remota de comandos.
Primero, necesitamos instalar el servidor OpenSSH. OpenSSH es un conjunto de herramientas de red relacionadas con la seguridad basadas en el protocolo Secure Shell, y es la implementación SSH más común.
Abre una terminal en la máquina virtual LabEx. Puedes usar la terminal Xfce predeterminada.
Ejecuta el siguiente comando para actualizar las listas de paquetes:
sudo apt update
Este comando sincroniza los archivos de índice de paquetes desde sus fuentes. Es una buena práctica ejecutar esto antes de instalar cualquier software nuevo. Es posible que se te solicite tu contraseña, pero recuerda que el usuario labex tiene privilegios sudo sin contraseña.
A continuación, instala el servidor OpenSSH:
sudo apt install openssh-server -y
La bandera -y responde automáticamente "sí" a cualquier solicitud durante la instalación, haciendo el proceso no interactivo.
Una vez completada la instalación, el servidor SSH debería iniciarse automáticamente. Puedes verificar su estado utilizando el siguiente comando:
sudo service ssh status
Para confirmar que el servidor SSH está en funcionamiento, puedes comprobar si el puerto SSH (puerto 22) está escuchando. Utiliza el comando netstat:
netstat -tulnp | grep 22
Debes ver una salida similar a esta:
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp6 0 0 :::22 :::* LISTEN -
Esto indica que el servidor SSH está escuchando en el puerto 22 para conexiones IPv4 e IPv6.
Ahora que el servidor SSH está configurado, puedes conectarte a él desde otra máquina utilizando un cliente SSH. Sin embargo, para este laboratorio, nos centraremos en usar Hydra para intentar descifrar la contraseña SSH.
Ejecutar Hydra con Temporización Predeterminada
En este paso, ejecutaremos Hydra para intentar descifrar la contraseña SSH. Usaremos una lista de nombres de usuario y contraseñas simples y observaremos el ritmo del ataque con la configuración de temporización predeterminada.
Primero, creemos un archivo de lista de nombres de usuario llamado users.txt en el directorio ~/project. Este archivo contendrá un único nombre de usuario: labex.
En tu terminal, ejecuta el siguiente comando para crear el archivo users.txt:
echo "labex" > ~/project/users.txt
A continuación, crea un archivo de lista de contraseñas llamado passwords.txt en el directorio ~/project. Este archivo contendrá algunas contraseñas comunes, incluida la contraseña correcta para el usuario labex.
Importante: Debes ejecutar los siguientes comandos en la terminal de Escritorio, ya que la variable de entorno PASSWORD solo está disponible en el entorno de Escritorio.

En tu terminal de Escritorio, ejecuta los siguientes comandos para crear el archivo passwords.txt:
echo "password" > ~/project/passwords.txt
echo "123456" >> ~/project/passwords.txt
echo "$PASSWORD" >> ~/project/passwords.txt
La variable de entorno $PASSWORD contiene la contraseña real del usuario labex en este entorno.
Ahora, podemos ejecutar Hydra con la configuración de temporización predeterminada. La sintaxis básica de Hydra es:
hydra [options] <target> <service> [MODULE-OPTIONS]
En nuestro caso, el objetivo es localhost (la propia máquina virtual LabEx), el servicio es ssh, y usaremos las listas de nombres de usuario y contraseñas que acabamos de crear.
Ejecuta el siguiente comando en tu terminal:
hydra -L ~/project/users.txt -P ~/project/passwords.txt localhost ssh
Desglosemos este comando:
hydra: El comando para ejecutar la herramienta Hydra.-L ~/project/users.txt: Especifica el archivo de lista de nombres de usuario ubicado en~/project/users.txt.-P ~/project/passwords.txt: Especifica el archivo de lista de contraseñas ubicado en~/project/passwords.txt.localhost: El host objetivo (en este caso, la máquina local).ssh: El servicio a atacar (SSH).
Hydra comenzará ahora a intentar iniciar sesión en el servidor SSH utilizando los nombres de usuario y contraseñas de las listas. Verás una salida que muestra el progreso del ataque. Intentará cada combinación de nombre de usuario y contraseña. Dado que la contraseña correcta de la variable de entorno $PASSWORD está en el archivo passwords.txt, Hydra debería encontrarla con relativa rapidez.

La salida se verá algo así:
Hydra vX.X (c) XXXX by van Hauser/THC - use help for legal stuff
Hydra starting at YYYY-MM-DD HH:MM:SS
[DATA] 1 task/1 service to scan
[DATA] attacking ssh://localhost:22
[STATUS] X.XX tries/min
[STATUS] X of X passwords tested (X.XX%)
[22][ssh] host: localhost login: labex password: [actual_password]
Hydra finished.
La línea importante es [22][ssh] host: localhost login: labex password: [actual_password]. Esto indica que Hydra encontró correctamente la contraseña del usuario labex.
Observa la velocidad a la que Hydra está probando contraseñas. Esta es la temporización predeterminada. En el siguiente paso, modificaremos la temporización para ver cómo afecta al ritmo del ataque.
Añadir -W 5 para Intervalos de 5 Segundos
En este paso, añadiremos la opción -W 5 al comando Hydra. Esta opción introduce un retraso de 5 segundos entre cada intento de inicio de sesión. Esto es útil para evitar bloqueos de cuentas o la detección por sistemas de detección de intrusiones.
La opción -W en Hydra especifica el tiempo de espera para esperar una respuesta del servicio objetivo. De forma predeterminada, Hydra utiliza un tiempo de espera muy corto. Aumentar este tiempo de espera puede ayudar cuando el servicio objetivo tarda en responder o cuando hay problemas de latencia de red.
Ejecuta el siguiente comando en tu terminal:
hydra -L ~/project/users.txt -P ~/project/passwords.txt -W 5 localhost ssh
La única diferencia entre este comando y el anterior es la adición de la opción -W 5.
Ahora, Hydra intentará iniciar sesión en el servidor SSH, pero esperará 5 segundos después de cada intento de inicio de sesión fallido antes de probar la siguiente contraseña.
Observa la salida. Notarás que el ritmo del ataque es significativamente más lento que en el paso anterior. Hydra seguirá encontrando la contraseña correcta ("labex"), pero tardará más en hacerlo.
La salida se verá algo así:
Hydra vX.X (c) XXXX by van Hauser/THC - use help for legal stuff
Hydra starting at YYYY-MM-DD HH:MM:SS
[DATA] 1 task/1 service to scan
[DATA] attacking ssh://localhost:22
[STATUS] X.XX tries/min
[STATUS] X of X passwords tested (X.XX%)
[22][ssh] host: localhost login: labex password: labex
Hydra finished.
Sin embargo, la diferencia clave es el tiempo que tarda en aparecer el mensaje Hydra finished.. Con la opción -W 5, tardará al menos 10 segundos (2 intentos fallidos * 5 segundos/intento) antes de que Hydra encuentre la contraseña correcta.
En el siguiente paso, discutiremos el impacto de este cambio en el ritmo del ataque y las implicaciones para las pruebas de seguridad.
Observar el Impacto en la Velocidad del Ataque
En este paso, analizaremos el impacto de la opción -W 5 en el ritmo del ataque de Hydra.
Como observaste en los pasos anteriores, añadir -W 5 ralentizó significativamente el ataque. Sin la opción -W 5, Hydra intenta inicios de sesión lo más rápido posible, limitado únicamente por la latencia de la red y el tiempo de respuesta del servidor. Con -W 5, Hydra pausa durante 5 segundos después de cada intento de inicio de sesión fallido.
Esta diferencia en el ritmo del ataque tiene varias implicaciones importantes:
Bloqueo de Cuentas: Muchos sistemas tienen políticas de bloqueo de cuentas que deshabilitan una cuenta después de un cierto número de intentos de inicio de sesión fallidos. Al ralentizar el ritmo del ataque con
-W 5, puedes reducir el riesgo de activar estas políticas de bloqueo y evitar quedar bloqueado del objetivo.Sistemas de Detección de Intrusiones (IDS): Los IDS monitorizan el tráfico de red en busca de actividades sospechosas, como ataques de fuerza bruta. Una serie rápida de intentos de inicio de sesión fallidos es un indicador claro de un ataque de fuerza bruta y puede activar una alerta. Al ralentizar el ritmo del ataque, puedes dificultar que un IDS detecte el ataque.
Consumo de Recursos: Un ritmo de ataque rápido puede consumir recursos significativos tanto en la máquina atacante como en el servidor objetivo. Ralentizar el ritmo del ataque puede reducir el consumo de recursos y hacer que el ataque sea menos perceptible.
Tiempo de Finalización: El impacto más evidente es el aumento del tiempo necesario para completar el ataque. Si tienes una lista de contraseñas grande, añadir un retraso entre los intentos puede aumentar significativamente el tiempo total necesario para descifrar la contraseña.
En resumen, la opción -W en Hydra te permite controlar el ritmo del ataque y equilibrar la necesidad de velocidad con el riesgo de detección y bloqueo de cuentas. La elección del valor correcto para -W depende del objetivo específico y de los objetivos del ataque. Para las pruebas de penetración, a menudo es mejor ser sigiloso y evitar la detección, incluso si significa que el ataque tarda más.
Este laboratorio demostró un ejemplo básico del uso de Hydra para descifrar una contraseña SSH. En escenarios del mundo real, los atacantes a menudo utilizan listas de nombres de usuario y contraseñas mucho más grandes y técnicas más sofisticadas para eludir las medidas de seguridad. Es crucial utilizar contraseñas fuertes y únicas e implementar medidas de seguridad apropiadas para protegerse contra ataques de fuerza bruta.
Resumen
En este laboratorio, aprendiste a controlar los intervalos de conexión de Hydra para gestionar el ritmo del ataque y evitar la detección.
Pasos clave completados:
- Configurar un servidor SSH utilizando OpenSSH y verificar que estaba escuchando en el puerto 22.
- Crear listas de nombres de usuario y contraseñas para las pruebas con Hydra.
- Ejecutar Hydra con el tiempo predeterminado para observar el ritmo rápido del ataque.
- Añadir la opción
-W 5para introducir retrasos de 5 segundos entre los intentos de conexión. - Observar cómo el control del tiempo afecta a la velocidad del ataque y ayuda a evitar bloqueos de cuentas y sistemas de detección.
La opción -W te permite equilibrar la velocidad del ataque con la sigilo, convirtiéndola en un parámetro crucial para las pruebas de penetración efectivas, minimizando al mismo tiempo el riesgo de activar medidas de seguridad.


