Exploración y Explotación de SSH (Puerto 22)
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:
Conclusión
En este artículo, hemos explorado diversos métodos para conectar y explotar un servicio SSH en una máquina objetivo. Desde la instalación del servidor SSH en Ubuntu hasta la autenticación y explotación utilizando herramientas avanzadas como Hydra y Metasploit, hemos cubierto múltiples aspectos de las pruebas de penetración en el puerto 22. La autenticación basada en clave y la redirección de puertos son técnicas críticas que también se pueden emplear para asegurar un acceso a sistemas protegidos.
Es vital entender estos métodos no para cometer actos malintencionados, sino para proteger y fortalecer nuestros sistemas contra posibles ataques. La práctica continua y la familiarización con estas técnicas son esenciales para cualquier profesional de ciberseguridad, permitiendo anticiparse a las amenazas y asegurar entornos digitales de manera efectiva. Al conocer y aplicar estas estrategias, podemos crear defensas robustas y mantener la integridad y seguridad de nuestros sistemas.