Imaginá SSH como el puente levadizo de una fortaleza digital: es la única vía por la que entran y salen los administradores de sistemas. Cuando se baja de forma controlada, permite el mantenimiento y la gestión segura; pero si se descuida o queda sin guardia, un atacante puede cruzarlo con la misma facilidad y moverse por todo el interior.
En la práctica, Secure Shell (SSH) es precisamente esa puerta de acceso privilegiada: el protocolo criptográfico que garantiza comunicaciones seguras a través de redes no confiables y la entrada predilecta para la administración remota de servidores. Su enorme adopción lo convierte en un blanco irresistible para quienes buscan accesos no autorizados, moverse lateralmente dentro de la red o exfiltrar datos de manera sigilosa.
Pero no todo es oscuridad. Entender cómo piensan y actúan los atacantes es el primer paso para levantar defensas sólidas. En este artículo, primero nos pondremos el buzo Rojo para recorrer las técnicas más habituales de ataque a SSH —desde el reconocimiento inicial hasta la explotación de configuraciones débiles— y luego nos vestiremos de Azul para reforzar los sistemas con prácticas efectivas de hardening.
Porque en ciberseguridad, la mejor defensa siempre comienza con un buen conocimiento del ataque.
Pero antes...
La información y herramientas mencionadas en este artículo,en su totalidad, tienen como único propósito la educación en ciberseguridad y la práctica del hacking ético. El acceso, intento de acceso o escaneo no autorizado a sistemas informáticos, redes o dispositivos es ilegal y constituye un delito en la mayoría de países.
Úsalo de forma legal: Solo utiliza las herramientas citadas en este artículo en objetivos que te pertenezcan o sobre los cuales tengas permiso explícito y por escrito para realizar pruebas de seguridad.
El conocimiento es responsabilidad: El autor y este blog no se hacen responsables del uso indebido o malintencionado de la información aquí proporcionada. La responsabilidad del uso ético y legal de estas herramientas recae únicamente en el usuario final.
El hacking ético es clave: Promovemos el uso de estas habilidades para fortalecer la seguridad, proteger sistemas y ayudar a construir un internet más seguro para todos.
Todo ataque exitoso comienza con una fase de reconocimiento meticulosa. El objetivo es simple, recopilar la mayor cantidad de información posible sin levantar sospechas.
1nmap -p 22 --script ssh2-enum-algos <target-ip>
Por qué importa? Los cifrados obsoletos son una invitación abierta a ataques.
1nmap -sV -p 22 --script ssh-hostkey <target-ip>
Un dato crucial: las versiones antiguas suelen tener vulnerabilidades conocidas y explotables.
1nc <target-ip> 22
Hasta el mensaje de bienvenida puede delatar versiones vulnerables o configuraciones descuidadas.
Si las contraseñas son débiles, tarde o temprano caerán. Herramientas como Hydra automatizan estos intentos con una eficacia alarmante.
1hydra -l <username> -P <password_list> ssh://<target-ip> -t 4 -v
1hydra -L <user_list> -p <common_password> ssh://<target-ip> -t 4 -v
Prueba una contraseña común contra múltiples usuarios. Sorprendentemente efectivo en entornos con políticas de contraseñas débiles.
1hydra -l <username> -P <password_list> -t 1 -w 30 ssh://<target-ip>
Este enfoque separa los intentos en el tiempo para eludir mecanismos de bloqueo por intentos fallidos (p. ej. reglas agresivas de fail2ban o bloqueos automáticos), haciendo el ataque más sigiloso pero mucho más lento.
A menudo, el eslabón más débil no es la tecnología, sino su configuración.
Listas como rockyou.txt son el diccionario de uso común de cualquier atacante.
1ssh-audit <target-ip>
Una herramienta esencial que revela configuraciones inseguras, protocolos obsoletos (¡SSHv1!) y algoritmos débiles.
1searchsploit openssh <version>
¿La versión es vulnerable? Searchsploit puede tener la llave para entrar.
La autenticación por clave pública es más segura que las contraseñas… hasta que no lo es.
Robo de claves privadas: Si un atacante accede a una clave privada (id_rsa) sin frase de paso, la puerta queda abierta de par en par.
1ssh -i <private_key> <username>@<target-ip>
Claves privadas sin passphrase , reutilizadas en múltiples servidores o permisos incorrectos (ej: chmod 644 ~/.ssh/id_rsa) son fallos críticos de seguridad.
Conocer las tácticas del enemigo es solo la mitad de la batalla. La otra mitad implica implementar defensas sólidas y perdurables.
En esta parte del post analizamos cómo transformar tu servicio SSH de un punto débil en un servicio robusto.
Una medida simple pero efectiva. Cambiar el puerto predeterminado (22) reduce drásticamente el ruido de escaneos automatizados y ataques de fuerza bruta indiscriminados.
En /etc/ssh/sshd_config:
1# Ejemplo de puerto personalizado2Port 2468
Recuerda: Esto es seguridad por ofuscación. Útil, pero no infalible. Siempre debe combinarse con otras medidas.
Elimina por completo el riesgo de ataques de fuerza bruta contra contraseñas obligando el uso de autenticación por clave pública
En /etc/ssh/sshd_config:
1PasswordAuthentication no2PermitEmptyPasswords no
Asegúrate de que el uso de llaves sea seguro y esté correctamente configurado.
En /etc/ssh/sshd_config:
1AuthorizedKeysFile .ssh/authorized_keys
1stat .ssh2Access: (0700/drwx------)34stat .ssh/authorized_keys5Access: (0600/-rw–-----)67stat .ssh/id_rsa8Access: (0600/-rw-------)
PermitRootLogin no
MaxAuthTries 3
LoginGraceTime 30s
ClientAliveInterval 300/ClientAliveCountMax
Desconecta al cliente después de 5 minutos de inactividad.
LogLevel VERBOSE
La configuración estática no es suficiente. La vigilancia activa es clave.
Revisa regularmente /var/log/auth.log en busca de múltiples intentos fallidos.
Herramientas como fail2ban o logwatch pueden automatizar esta detección y bloquear IPs maliciosas automáticamente.
Si has deshabilitado PermitRootLogin, cualquier intento de login como root debe ser investigado inmediatamente.
Usa comandos como who o w para listar sesiones activas e investigar aquellas anómalas.
Evita dar pistas gratuitas a los atacantes:
PrintMotd no
PrintLastLog no
En el panorama actual de amenazas, asegurar el acceso SSH es mucho más que una buena práctica, es una necesidad absoluta. Este protocolo, diseñado para ser seguro, solo será tan fuerte como su configuración más débil.
Al comprender algunas de las técnicas que usan los atacantes e implementar las tácticas de endurecimiento que hemos discutido —desde deshabilitar contraseñas hasta el monitoreo proactivo— transformarás tu servicio SSH de un blanco fácil en un bastión con defensas activas.
Recuerda revisar y auditar tu configuración de forma periódica.
La ciberseguridad no es un acto único, sino un ciclo continuo de mejora y adaptación.
!¡!¡Happy Hardening¡!¡! {◕_◕}