Personalización de números de puerto en Hydra

HydraBeginner
Practicar Ahora

Introducción

En este laboratorio, aprenderás a personalizar el número de puerto FTP en un sistema objetivo y, posteriormente, a utilizar Hydra para realizar un ataque de fuerza bruta contra el servicio FTP en dicho puerto personalizado. Esta es una habilidad valiosa para los profesionales de seguridad y especialistas en pruebas de penetración (pentesting) que necesitan evaluar la seguridad de sistemas configurados con puertos FTP no estándar.

El laboratorio consiste en configurar el servidor FTP en la máquina virtual de LabEx para que escuche en un puerto no estándar, modificando el archivo vsftpd.conf y reiniciando el servicio FTP. Luego, utilizarás el comando netstat para verificar que el servidor FTP esté escuchando en el nuevo puerto. Finalmente, usarás Hydra con la opción -s para especificar el puerto personalizado y ejecutar un ataque FTP, validando que Hydra pueda conectarse exitosamente al servicio FTP en el puerto configurado.

Configurar FTP en un puerto no estándar

En este paso, configuraremos el servidor FTP en la máquina virtual de LabEx para que escuche en un puerto no estándar. Por defecto, FTP utiliza el puerto 21. Cambiar el puerto FTP puede ayudar a reducir el riesgo de ataques automatizados que se dirigen al puerto predeterminado.

Primero, editemos el archivo de configuración de FTP. Utilizaremos el editor nano, que viene preinstalado en la máquina virtual de LabEx.

sudo nano /etc/vsftpd.conf

Este comando abre el archivo vsftpd.conf en el editor nano.

Añade la siguiente línea al archivo:

listen_port=2121

add listen_port

Si la línea listen_port no existe, añádela al archivo. Es una buena práctica añadirla cerca de la parte superior del archivo.

Después de realizar los cambios, guarda el archivo presionando Ctrl+X, luego Y para confirmar, y finalmente Enter para guardar con el mismo nombre de archivo.

A continuación, debemos reiniciar el servicio FTP para que los cambios surtan efecto.

sudo service vsftpd restart

Este comando reinicia el servicio FTP. Deberías ver una salida que indica que el servicio ha sido reiniciado.

Finalmente, verifiquemos que el servidor FTP esté escuchando ahora en el nuevo puerto. Podemos usar el comando netstat para comprobar los puertos en escucha.

sudo netstat -tulnp | grep vsftpd

Este comando muestra toda la información de TCP, UDP, puertos en escucha y procesos, y luego filtra la salida para mostrar solo las líneas que contienen "vsftpd". Deberías ver una línea que indica que vsftpd está escuchando en el puerto 2121 (o el puerto que hayas elegido).

Ejemplo de salida:

tcp6       0      0 :::2121                 :::*                    LISTEN      1027/vsftpd

check FTP port

Si ves el nuevo número de puerto en la salida, significa que el servidor FTP está escuchando correctamente en el nuevo puerto.

Especificar el puerto con la opción -s

En este paso, aprenderemos cómo especificar un puerto no estándar al utilizar el comando ftp. Esto es crucial porque en el paso anterior cambiamos el puerto de escucha del servidor FTP del 21 predeterminado a un puerto personalizado (por ejemplo, 2121). Ahora, al conectarnos al servidor, debemos indicarle al cliente ftp qué puerto utilizar.

Para el comando ftp, puedes especificar un puerto no estándar proporcionando HOST PORT, como por ejemplo ftp localhost 2121. Sin embargo, Hydra utiliza la opción -s para especificar el puerto. Es importante entender esta diferencia mientras nos preparamos para el ataque con Hydra en el siguiente paso.

Intentemos conectarnos al servidor FTP usando la forma de host y puerto del comando ftp para verificar la conexión. Reemplaza localhost con la dirección IP de la máquina virtual de LabEx. Si estás ejecutando este laboratorio en la misma máquina virtual, puedes usar localhost o 127.0.0.1.

ftp localhost 2121

Se te solicitará el nombre de usuario y la contraseña. Presiona Ctrl+C para salir.

Ahora, simulemos cómo Hydra especificará el puerto. Aunque todavía no usaremos Hydra, este paso es importante para entender la sintaxis. Hydra utiliza la opción -s para especificar el puerto.

La sintaxis de Hydra para especificar el puerto es diferente a la del comando ftp estándar. Hydra utiliza -s seguido del número de puerto. Por ejemplo, si estuviéramos usando Hydra para atacar el servicio FTP en el puerto 2121, incluiríamos -s 2121 en el comando de Hydra.

Para demostrar esto, creemos un comando de Hydra de prueba. No lo ejecutaremos, pero ilustrará la sintaxis correcta.

hydra -l ftpuser -P ~/project/password.txt localhost ftp -s 2121

hydra syntax

El punto clave aquí es la parte -s 2121. Esto le indica a Hydra que se conecte al servicio FTP en el puerto 2121.

En resumen, el comando ftp estándar puede usar HOST PORT para especificar el puerto objetivo, mientras que Hydra utiliza -s. Entender esta diferencia es crucial para el siguiente paso, donde ejecutaremos un ataque FTP usando Hydra.

Ejecutar un ataque FTP en un puerto personalizado

En este paso, utilizaremos Hydra para realizar un ataque de fuerza bruta contra el servicio FTP que se ejecuta en el puerto no estándar que configuramos en el primer paso. Usaremos la lista de contraseñas que se creó durante la fase de configuración.

Ahora estamos listos para lanzar el ataque con Hydra. Reemplaza localhost con la dirección IP de la máquina virtual de LabEx. Si estás ejecutando este laboratorio en la misma máquina virtual, puedes usar localhost o 127.0.0.1.

hydra -l ftpuser -P ~/project/password.txt localhost ftp -s 2121 -vV

Desglosemos este comando:

  • hydra: El comando para ejecutar la herramienta Hydra.
  • -l ftpuser: Especifica el nombre de usuario a atacar.
  • -P ~/project/password.txt: Especifica la ruta al archivo de lista de contraseñas que se creó durante la configuración.
  • localhost: Especifica la dirección IP objetivo. Reemplaza localhost con la dirección IP real.
  • ftp: Especifica el servicio a atacar (FTP en este caso).
  • -s 2121: Especifica el número de puerto. Esto es crucial porque cambiamos el puerto FTP a 2121 en el primer paso.
  • -vV: Habilita el modo detallado (verbose), que muestra los intentos de inicio de sesión en tiempo real.

Ejecuta el comando. Hydra comenzará a probar diferentes contraseñas del archivo ~/project/password.txt contra el servicio FTP en el puerto especificado.

Si Hydra encuentra la contraseña correcta, mostrará la información de inicio de sesión exitoso. Por ejemplo:

[ATTACKER] attacking ftp://localhost:2121/
[2121][ftp] host: localhost   login: ftpuser   password: password123

Si Hydra no encuentra la contraseña correcta, probará todas las contraseñas de la lista y luego finalizará sin mostrar un inicio de sesión exitoso.

Nota de seguridad importante: Este laboratorio es solo para fines educativos. No utilices Hydra para atacar sistemas sin permiso explícito. El acceso no autorizado a sistemas informáticos es ilegal y poco ético.

Validar la conexión al puerto correcto

En este paso final, validaremos que aún podemos conectarnos al servidor FTP en el puerto personalizado después del intento de ataque de Hydra. Esto confirma que el servicio FTP se está ejecutando como se esperaba y que podemos acceder a él utilizando el puerto especificado.

Usa el comando ftp con host y puerto para conectarte al servidor FTP en el puerto personalizado. Reemplaza localhost con la dirección IP de la máquina virtual de LabEx. Si estás ejecutando este laboratorio en la misma máquina virtual, puedes usar localhost o 127.0.0.1.

ftp localhost 2121

Se te solicitará el nombre de usuario y la contraseña. Usa las credenciales que creamos en la configuración:

  • Nombre de usuario: ftpuser
  • Contraseña: password123

Si la conexión es exitosa, habrás iniciado sesión en el servidor FTP.

ftp login

Si no puedes conectarte, verifica lo siguiente:

  • Asegúrate de que el servicio FTP siga ejecutándose. Puedes comprobarlo usando el comando netstat -tulnp | grep vsftpd, como hicimos en el primer paso.
  • Verifica que el puerto FTP siga configurado en 2121 (o el puerto que hayas elegido) en el archivo /etc/vsftpd.conf.
  • Asegúrate de que no haya reglas de firewall bloqueando las conexiones al puerto personalizado. (Nota: El entorno de la máquina virtual de LabEx normalmente no tiene un firewall habilitado por defecto, pero es bueno tenerlo en cuenta para escenarios del mundo real).
  • Confirma que estás utilizando el nombre de usuario y la contraseña correctos.

Una conexión exitosa confirma que el servidor FTP se está ejecutando en el puerto personalizado y que puedes conectarte a él con ftp localhost 2121. Esto también valida que el ataque de Hydra, incluso si no tuvo éxito, no interrumpió el servicio FTP.

Esto completa el laboratorio. Has configurado con éxito FTP en un puerto no estándar, aprendido a especificar el puerto usando la opción -s con Hydra, ejecutado un ataque básico de Hydra y validado la conexión al puerto correcto.

Resumen

En este laboratorio, configuramos el servidor FTP en la máquina virtual de LabEx para que escuche en un puerto no estándar, específicamente el puerto 2121, en lugar del puerto 21 predeterminado. Esto implicó editar el archivo /etc/vsftpd.conf usando nano para modificar o añadir la directiva listen_port, seguido de reiniciar el servicio FTP usando sudo service vsftpd restart.

Finalmente, verificamos que el servidor FTP estuviera efectivamente escuchando en el nuevo puerto utilizando el comando netstat -tulnp | grep vsftpd para comprobar los puertos en escucha y confirmar que vsftpd estaba asociado con el puerto 2121.