Exploración y Explotación de SSH (Puerto 22)
- Yober Jimenez
- 9 jul 2024
- 3 Min. de lectura
Actualizado: 21 mar

Introducción
Secure Shell (SSH) es un protocolo criptográfico fundamental para la comunicación segura en redes no protegidas. Es una alternativa segura a los protocolos de inicio de sesión no protegidos y métodos de transferencia de archivos inseguros, como telnet y FTP. SSH se utiliza ampliamente para la gestión remota de servidores, transferencia segura de datos y otras tareas críticas que requieren alta seguridad. Este artículo está diseñado con fines educativos para ayudar a comprender los métodos utilizados en pruebas de penetración SSH, con el objetivo de fortalecer la seguridad y proteger nuestros sistemas de posibles vulnerabilidades.
Preparación del Entorno de Pruebas
Para este artículo, configuraremos y explotaremos un servidor SSH en una máquina Ubuntu desde una máquina Kali Linux. Las máquinas utilizadas son:
Máquina Objetivo: Ubuntu (192.168.31.205)
Máquina Atacante: Kali Linux (192.168.31.141)
Instalación del Servicio SSH
Para instalar el servidor SSH en la máquina Ubuntu, ejecuta el siguiente comando:
SSH se autentica contra la base de datos de usuarios estándar de Unix (/etc/passwd, /etc/shadow, /etc/group), por lo que la contraseña para iniciar sesión en SSH será la misma que la utilizada para iniciar sesión en la máquina Ubuntu.
Exploración Inicial
La exploración inicial se puede realizar con nmap en Kali Linux usando el siguiente comando:
El puerto 22 está abierto y se ejecuta un servicio OpenSSH 8.9p1.
Ataque de Fuerza Bruta con Hydra
Dado que la autenticación es basada en contraseña, podemos forzarla usando hydra con un diccionario de nombres de usuario y contraseñas. Después de crear los archivos users.txt y pass.txt, usa el siguiente comando:
Una vez obtenidos el usuario pentest y la contraseña 123, autentícate en el servicio SSH:
Autenticación con Metasploit
Alternativamente, podemos usar Metasploit para autenticarnos en el servicio SSH. Usamos el módulo multi/ssh/sshexec:
Ejecución Remota de Comandos
SSH también se puede usar para ejecutar comandos en la máquina remota. Usa el siguiente comando:
Cambio de Puertos SSH
Por defecto, SSH usa el puerto 22. Podemos cambiarlo modificando el archivo sshd_config en /etc/ssh:
Cambia la línea del puerto a:
Después, ejecuta nmap para verificar el nuevo puerto:
Para la fuerza bruta con hydra en el nuevo puerto, usa:
Uso de Nmap para Fuerza Bruta
Usa el script ssh-brute de Nmap para fuerza bruta:
Para usar archivos personalizados de usuarios y contraseñas:
Análisis de Métodos de Autenticación SSH
Para enumerar los métodos de autenticación SSH, usa el siguiente comando:
Autenticación con Claves SSH
La autenticación basada en clave proporciona un acceso seguro sin necesidad de contraseñas. Genera un par de claves con ssh-keygen en Ubuntu:
Copia la clave pública al archivo authorized_keys:
Desactiva la autenticación por contraseña en sshd_config:
Establece los permisos correctos para la clave privada:
Para descifrar una frase de paso:
Uso de Claves SSH en Metasploit
En Metasploit, usa el módulo auxiliary/scanner/ssh/ssh_login_pubkey:
Actualiza la sesión de shell a meterpreter:
Mitigación y Protección en OpenSSH
1. Mantén el Software Actualizado
📌 Asegúrate de que OpenSSH esté siempre actualizado con los últimos parches de seguridad para mitigar vulnerabilidades conocidas.
2. Configuración Segura
🔒 Refuerza la seguridad del servicio SSH con las siguientes medidas:
Deshabilita la autenticación por contraseña, utilizando claves públicas para mayor protección.
Restringe el acceso SSH mediante reglas de firewall, permitiendo conexiones solo desde direcciones IP de confianza.
Habilita autenticación multifactor (MFA) para añadir una capa adicional de seguridad.
3. Monitoreo y Detección de Amenazas
🛡️ Implementa herramientas de monitoreo y detección de intrusiones para identificar y responder ante actividades sospechosas en SSH.
Importancia de la Seguridad en OpenSSH
La explotación de vulnerabilidades en OpenSSH resalta la necesidad de mantener el software actualizado y configurado de manera segura. Herramientas como Nmap, Metasploit y Hydra pueden utilizarse en entornos controlados para identificar puntos débiles y fortalecer la seguridad del sistema.
⚠️ Recuerda siempre actuar de manera ética y contar con los permisos adecuados antes de realizar pruebas de penetración. 🚀