Qué es un ataque por fuerza bruta
Un ataque por fuerza bruta intenta adivinar credenciales probando combinaciones de usuarios y contraseñas de forma sistemática hasta encontrar una válida. En su forma pura prueba todas las combinaciones posibles dentro de un alfabeto y una longitud; en la práctica casi siempre se combina con listas de palabras (ataque de diccionario), con contraseñas filtradas en brechas anteriores y con patrones comunes (fechas, nombres, teclado). Dos variantes cercanas conviene distinguirlas: el credential stuffing reutiliza pares usuario-contraseña ya filtrados, y el password spraying prueba pocas contraseñas comunes contra muchos usuarios para evitar los bloqueos por intentos. El objetivo típico son servicios de acceso remoto expuestos a internet: SSH, RDP, FTP, paneles web, VPN y formularios de inicio de sesión. Sigue vigente porque las contraseñas débiles y reutilizadas siguen siendo comunes; la defensa moderna combina contraseñas largas y únicas, autenticación multifactor (MFA) o llaves de acceso, y bloqueo de intentos repetidos.
Herramientas modernas para auditoría de fuerza bruta
Para auditar estos servicios en un ejercicio autorizado, las herramientas actuales de referencia son:
Tabla de Contenido
- Hydra (THC-Hydra): el estándar para fuerza bruta en línea contra decenas de protocolos (SSH, FTP, HTTP, SMB, entre otros), con ataques paralelos y listas de usuarios y contraseñas. Proyecto en github.com/vanhauser-thc/thc-hydra.
- Hashcat: para el caso complementario fuera de línea, cuando ya se obtuvo un hash y se quiere evaluar su resistencia usando CPU y GPU con diccionarios, reglas y máscaras. Proyecto en hashcat.net.
- Ncrack: herramienta de cracking de autenticación de red del proyecto Nmap, orientada a servicios como SSH, RDP, FTP y HTTP. Proyecto en github.com/nmap/ncrack.
- Patator: herramienta modular que permite fuerza bruta contra muchos servicios con una sintaxis uniforme. Proyecto en github.com/lanjelot/patator.
La práctica que sigue usa Medusa, una de las herramientas clásicas para este mismo propósito, y conserva su valor como ejercicio de laboratorio: muestra el ataque real contra SSH y las contramedidas que lo frenan.
Práctica 49 – Fuerza bruta con Medusa al servicio SSH (Secure Shell)
Herramienta: Medusa
Prerequisitos: Máquina objetivo con el servicio SSH habilitado y en ejecución
Contramedidas: Monitoreo de sesiones, controles de acceso en los routers (ACLs), servidor SSH actualizado, autenticación solo con llaves, fail2ban, límite de intentos (MaxAuthTries) y login de root deshabilitado.

Descripción: Medusa es una herramienta desarrollada para llevar ataques del tipo brute force de manera paralela y modular, se destaca en su uso por la rapidez en que realiza dichos ataques. El aplicativo permite llevar a cabo múltiples ataques a diferentes sistemas con diferentes usuarios. El objetivo de la herramienta es auditar el inicio de sesión de varios servicios entre ellos MS-SQL Server, VNC, HTTP, SMB, Telnet, el servicio SSH (Secure Shell) y un largo etc. SSH (Secure SHell) es el nombre de un protocolo y del programa que lo implementa, y sirve para acceder a máquinas remotas a través de una red. Permite manejar por completo la computadora mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder ejecutar programas gráficos si tenemos un Servidor X arrancado.
Además de la conexión a otras máquinas, SSH nos permite copiar datos de forma segura (tanto ficheros sueltos como simular sesiones FTP cifradas), gestionar claves RSA para no escribir claves al conectar a las máquinas y pasar los datos de cualquier otra aplicación por un canal seguro tunelizado mediante SSH. (más información sobre SSH)
Procedimiento: Descargar, configurar e instalar la herramienta. Luego ejecutar mediante la siguiente sintaxis:
medusa -h objetivo -u usuario -P passwords -M ssh
Para el objetivo del laboratorio utilizaremos Kali Linux, la distribución enfocada a los test de penetración (sucesora de BackTrack), que trae la herramienta Medusa instalada, configurada y lista para ser usada.
Además como máquina objetivo utilizaré otro sistema Linux con el servicio ssh habilitado, en ejecución y tristemente mal configurado. Cuando afirmo que está mal configurado es porque cambié los parámetros que vienen establecidos por defecto, específicamente los que se refieren a intentos de inicio de sesión.
Este laboratorio lo único que pretende, al igual que los anteriores, es acercar de manera didáctica y metodológica a los investigadores y entusiastas del tema, en el manejo de herramientas, conceptualización, y puesta en práctica de conocimientos relacionados al proceder y actuar en técnicas de intrusión a sistemas.
Específicamente, este laboratorio quiere acercar al usuario en los conceptos técnicos del servicio ssh y como atacarlo de manera controlada. Quiero aclarar desde un comienzo, que el ataque por medio de fuerza bruta al servicio ssh es una técnica casi obsoleta, ya que por defecto este servicio viene configurado con un sistema de seguridad medio, el cual bloquea este tipo de ataques. No obstante se pueden dar casos en los que un administrador descuidado o “bondadoso”, tenga que habilitar de manera casi ilimitada los inicios de sesión a su servidor por motivos meramente en pro de ofrecer completa prestación y disponibilidad del servicio a usuarios “lentos” a los cuales se les olvida la contraseña, pero que al intento 200 la recuerdan XD.
Veamos entonces:
Comprobemos que efectivamente se encuentra habilitado el servicio ssh en la máquina objetivo (para ello haré uso de la herramienta insignia para este tipo de conexiones “PuTTY“) desde Windows.
Tratemos de iniciar sesión con algunas contraseñas al azar
Algunos intentos fallidos de inicio de sesión
Vamos ahora a ejecutar medusa desde Kali Linux
Para objeto del laboratorio crearé una carpeta en el escritorio de BackTrack con el nombre de medusa, en ella guardaré el diccionario con el cual realizaré los intentos.
Ejecutemos la sintaxis medusa sin ningún parametro para observar algunas de sus opciones de uso
Ahora agreguemos el comando -d para visualizar los módulos activos de medusa
Algunos de ellos son: mssql, telnet, mysql, vnc, ftp, postgres, ssh, http, etc.
Es justo esa, la tarea de cada investigador. Utilizar las diferentes opciones de configuración y uso de la herramienta medusa (más información y manual de uso de medusa).
Para nuestro laboratorio bastará con hacer uso de la siguiente sintaxis:
medusa -h 192.168.198.133 -u root -P password -M ssh
Donde:
medusa: Orden de ejecución de la herramienta -h: Dirección IP objetivo (host) -u: Usuario (en este caso root) -P: Archivo contenedor de contraseñas (puede asignarse la ruta completa de ubicación de este archivo, ej. /root/Desktop/carpeta/passwords.txt) -M: Módulo de ejecución de medusa, para este caso ssh (Secure Shell)
Veamos en acción la herramienta
Resultado en pantalla del ataque de fuerza bruta al servicio SSH
Hagamos ahora el intento de conexión con la contraseña encontrada
Se ha logrado con éxito el acceso al servidor objetivo. Solo queda aclarar que este tipo de ataques son de los más “ruidosos” en un sistema y que cada uno de nuestros intentos (691 en nuestro caso) quedarán registrados en el sistema objetivo.
Para finalizar quisiera mostrar algunos otros usos de la herramienta medusa para otros protocolos haciendo uso de los diferentes módulos del aplicativo.
Veamos como hacerlo para auditar a telnet
Resultado y conexión
Ahora para MS-SQL Server: servidor objetivo con SQL Server en ejecución.
Sintaxis para el módulo mssql (en este caso tengo el servidor SQL estableciendo conexiones en el puerto 1074, el parámetro puerto puede ser configurado mediante -n)
Resultado
Ahora un ataque con medusa dirigido a un servidor FTP
Resultados
Y finalmente un ataque a un servidor mysql. Para ello identificaré la disponibilidad del servicio mediante nmap
Sintaxis de medusa para MySQL
Resultado:
Medusa hoy y cómo frenar la fuerza bruta contra SSH
Medusa sigue disponible y mantenida en su repositorio oficial, y viene incluida en Kali Linux, así que el procedimiento de este laboratorio se reproduce tal cual con la sintaxis mostrada arriba. Lo que cambió desde 2008 es la defensa: hoy un servidor SSH expuesto no debería aceptar contraseñas en absoluto. La combinación que deja sin efecto un ataque de fuerza bruta es autenticación solo con llaves SSH, login de root deshabilitado (PermitRootLogin no), límite de intentos (MaxAuthTries) y fail2ban bloqueando las IP con intentos fallidos repetidos. Con eso, los 691 intentos del laboratorio se quedan en ruido de registro: el ataque es detectable, lento y, contra llaves, inútil.
Taller individual: Uso de otras opciones de medusa (-n, -s, -g, -r, etc.) Consultar acerca de como llevar a cabo una monitorización de sesiones.