Presento un script en Bash para simular ataques de fuerza bruta contra SSH, usado exclusivamente en laboratorios controlados con fines educativos.
El foco no es “romper” sistemas, sino entender cómo se comportan estos ataques para luego defender mejor servicios SSH reales: endurecimiento, monitoreo y respuesta.
Advertencia ética y legal: no utilices estas técnicas fuera de entornos autorizados. Atacar sistemas sin permiso es ilegal.
¿Por qué estudiar fuerza bruta en SSH?
SSH sigue siendo uno de los servicios más expuestos en servidores. Entender un ataque típico permite:
- Reconocer patrones en logs.
- Medir impacto de contraseñas débiles.
- Validar controles como Fail2ban, rate limiting y MFA.
- Justificar decisiones de hardening.
Este laboratorio ayuda a ver el problema desde el lado del atacante para defender.
¿Cómo funciona?
El proyecto consiste en un script Bash que:
- Automatiza intentos de autenticación SSH.
- Usa
sshpasspara pruebas controladas. - Acepta parámetros por CLI (
getopts). - Incluye validaciones básicas y ayuda integrada.
Importante: la simplicidad es intencional para que el comportamiento sea fácil de analizar.
Características técnicas
- Implementado en Bash.
- Dependencia mínima: sshpass.
- Parámetros por línea de comandos.
- Validación de entradas.
- Mensajes claros para el operador.
Requisitos del laboratorio
- Linux con Bash.
sshpassinstalado.- Host objetivo autorizado con SSH.
- Wordlist de contraseñas.
Recomendación: usar una VM aislada o contenedor con SSH para las pruebas.
Instalación y uso
Clonar el repositorio y otorgar permisos de ejecución:
git clone https://github.com/Gabriel-GR14/ssh-bruteforce.git
chmod +x ssh-bruteforce.sh
./ssh-bruteforce.sh
Inicio (laboratorio controlado)
El script acepta los siguientes parámetros:
- -i: IP o hostname del objetivo.
- -u: Usuario a probar.
- -w: Ruta a la wordlist.
- -h: Panel de ayuda.
Ejemplo solo en laboratorio autorizado:
./ssh-bruteforce.sh -i 192.168.1.100 -u admin -w /ruta/wordlist.txt
Observá los logs del servidor objetivo mientras corre el script.
Qué observar durante el ataque
En el host objetivo, revisar:
/var/log/auth.logojournalctl -u ssh.- Incremento de intentos fallidos.
- Tiempos entre intentos.
- Respuesta del servicio ante múltiples fallos.
Esto permite correlacionar teoría con práctica.
Defensa: cómo mitigar fuerza bruta en SSH
Este laboratorio tiene sentido solo si termina en defensa:
- Deshabilitar login por contraseña (usar llaves).
- Fail2ban o alternativas.
- Rate limiting.
- Contraseñas fuertes (si se usan).
- Cambiar puerto (no seguridad real, pero reduce ruido).
- Monitoreo y alertas.
En producción, llaves SSH + Fail2ban es el baseline mínimo.
Limitaciones del script
- No evade controles modernos.
- No paraleliza ataques.
- No maneja MFA.
- No es sigiloso.
Y eso es buena noticia: los controles correctos lo detienen rápidamente.
Conclusión
Estudiar ataques de fuerza bruta en SSH no es promover el ataque, sino mejorar la defensa.
- Herramienta educativa.
- Prueba de hardening.
- Punto de partida para análisis de logs.
Próximos post relacionados:
- Hardening real de SSH.
- Fail2ban paso a paso.
- Autenticación por llaves y MFA.
- Monitoreo de seguridad en Linux.
Código fuente en mi GitHub para análisis y aprendizaje responsable.
GabrielGR









