Appearance
🔑 SSH (Secure Shell)
El protocolo SSH (puerto 22) es el estándar de oro para la administración remota segura en sistemas Unix/Linux. A diferencia de Telnet o FTP, SSH cifra toda la comunicación. Sin embargo, su seguridad depende totalmente de la robustez de las credenciales o de la correcta gestión de las claves privadas.
🚀 Acceso y Autenticación
Existen dos formas principales de ganar acceso a través de SSH:
1. Basada en Contraseña
Es el método tradicional. Si el servidor permite autenticación por contraseña, podemos conectar directamente:
bash
ssh <usuario>@<IP>2. Basada en Claves (Public Key)
Es más segura y común en entornos profesionales. Si logramos robar una clave privada (id_rsa) durante la fase de post-explotación, podemos entrar sin conocer la contraseña:
bash
# Es vital asignar permisos 600 a la clave para que SSH la acepte
chmod 600 id_rsa
ssh -i id_rsa <usuario>@<IP>🔍 Enumeración
El objetivo es identificar la versión del servidor (para buscar exploits de software) y validar nombres de usuarios.
1. Identificación y Banner Grabbing
bash
nc -vn <IP> 22
# Ejemplo de respuesta: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.12. Automatización con Metasploit
- Versión:
auxiliary/scanner/ssh/ssh_version. Útil para detectar versiones vulnerables a RCE o enumeración de usuarios (como el famoso bug de OpenSSH < 7.7). - Fuerza Bruta:
auxiliary/scanner/ssh/ssh_login. Permite probar múltiples credenciales y, si tiene éxito, crea automáticamente una sesión en Metasploit.
💀 Explotación y Fuerza Bruta
Ataque de Diccionario con Hydra
Si tenemos un nombre de usuario pero no su contraseña, Hydra es la herramienta más rápida para SSH.
bash
# Fuerza bruta con usuario conocido y lista de contraseñas
hydra -l <usuario> -P /usr/share/wordlists/rockyou.txt <IP> ssh🛡️ Fail2Ban y Bloqueos
A diferencia de otros servicios, SSH suele estar protegido por herramientas como Fail2Ban. Si realizas un ataque de fuerza bruta demasiado agresivo, tu IP será bloqueada automáticamente tras pocos intentos.
🔄 SSH para Pivoting y Túneles
SSH no es solo una puerta de entrada, es una herramienta de post-explotación para moverte por la red interna del cliente mediante el Local/Dynamic Port Forwarding.
- Túnel SOCKS (Proxy): Convierte la máquina comprometida en un proxy para navegar por su red interna.
bash
ssh -D 1080 <usuario>@<IP_COMPROMETIDA>(Luego configuramos proxychains para usar el puerto 1080).