En este writeup vamos a resolver una de las máquinas de la plataforma Dockerlabs llamada BreakMySSH , con el nivel más sencillo de dificultad «Muy Fácil».

Resumen de conceptos trabajados:
Escaneo de Puertos Searchsploit Hydra Acceso SSH |
Si quieres conocer más sobre la plataforma Dockerlabs y ver cómo se configura, etc, en este post te cuento cómo hacerlo.
Para todas las máquinas, la IP de Dockerlabs es siempre la misma: 172.17.0.2

Una vez hemos descargado la máquina víctima de Dockerlabs y desplegada en nuestro entorno, empezamos con el escaneo.
Estructura del contenido
ENUMERACIÓN -> ESCANEO DE PUERTOS
Para asegurarme de que la máquina víctima está activa y puedo conectarme a ella, le lanzo o bien un PING con trace route (opcional) o directamente un nmap, de esta forma:
ping -c 1 172.17.0.2 -R

La máquina responde con un TTL de 64 al enviar 1 paquete de ping (una única solicitud ICMP), por lo que se trata de una máquina Linux.
La otra forma de verificar que la máquina está activa es mediante el comando -sn de nmap:
nmap -sn 172.17.0.2
donde se muestra que la máquina está activa.
El comando «-sn» indica a Nmap que haga un «Ping Scan» o «Host Discovery», es decir, Nmap solo identificará qué hosts están activos en la red, pero no intentará descubrir qué puertos están abiertos en esos hosts.
Cuando usas el comando nmap -sn [IP]
, Nmap enviará solicitudes ICMP Echo (ping), solicitudes TCP SYN a puertos 443, y solicitudes ARP si estás en una red local. Si alguno de estos intentos tiene éxito, Nmap marcará el host como activo «Host is up«.

Ahora que tenemos conexión a la máquina y está activa, pasamos a hacer un escaneo de puertos completo mediante los siguientes comandos de NMAP (ver resto aquí):
nmap -sCV -p- --open --min-rate 5000 -n -vvv -Pn 172.17.0.2 -oG Escaneo
mandamos los resultados del escaneo output al fichero «Escaneo» y vemos los resultados.
Desglose de cada comando del nmap
nmap
: Es el comando principal para ejecutar Nmap, una herramienta de escaneo de red.-sCV
:-sC
: Activa los scripts predeterminados de Nmap. Estos scripts están diseñados para obtener información adicional sobre los servicios que se ejecutan en el host objetivo. Pueden detectar detalles como versiones de software, información sobre el sistema operativo y posibles vulnerabilidades conocidas.-sV
: Realiza una detección de versiones de servicios. Esto intenta identificar la versión exacta del software que se ejecuta en cada puerto abierto.
-p-
: Indica a Nmap que escanee todos los puertos del 1 al 65535. Por defecto, Nmap solo escanea los puertos más comunes, pero con esta opción amplía el escaneo para incluir todos los posibles.--open
: Esta opción le dice a Nmap que solo muestre los puertos que están abiertos. Los puertos cerrados o filtrados no se mostrarán en los resultados.--min-rate 5000
: Define una tasa mínima de paquetes de 5000 paquetes por segundo. Esto acelera el escaneo, forzando a Nmap a enviar paquetes a esta velocidad mínima. Esta opción es útil si quieres resultados más rápidos, recomendable para entornos controlados o de plataforma de pentesting.-n
: Le dice a Nmap que no aplique resolución de nombres DNS. Esto significa que solo usará direcciones IP y no intentará convertirlas a nombres de dominio, lo cual puede acelerar el escaneo si no necesitas esos nombres.-vvv
: Activa el modo triple verbose o de verbosidad alta. Con tres «v», Nmap te mostrará mucha información detallada sobre el progreso del escaneo en tiempo real a medida que se está ejecutando..-Pn
: Indica a Nmap que no haga un «ping» previo para verificar si el host está activo antes de escanear. Esto se usa cuando sabes que el host está en línea, pero puede estar configurado para no responder a los «ping» como medida de seguridad.172.17.0.2
: Es la dirección IP del objetivo que quieres escanear. Aquí es donde Nmap dirigirá el escaneo para descubrir puertos abiertos y servicios.-oG Escaneo
: Esta opción le dice a Nmap que guarde los resultados del output en formato «grep-able» en un archivo llamadoEscaneo
. Este formato es fácil de procesar o filtrar más adelante con el comando | grep si necesitas buscar información específica en los resultados.
Teniendo en cuenta que el nombre de la máquina hace referencia a SSH, podemos intuir que el puerto 22 estará abierto.
Vemos por los resultados del escaneo que efectivamente, el puerto 22 SSH de autenticación es el único puerto abierto bajo la versión 7.7.

Searchsploit
Teniendo la versión de OpenSSH, tratamos de buscar en la base de datos de searchsploit-db si efectivamente existe alguna vulnerabilidad y exploit que podamos explotar.
searchsploit openssh 7.7

Se muestra una lista de posibles vulnerabilidades conocidas para OpenSSH 7.7 en la base de datos de Exploit-DB.
Hydra
Vemos que esta versión es vulnerable a la enumeración de usuarios, por lo que podemos intentar mediante fuerza bruta con herramientas como Hydra y diccionarios de usuarios y contraseñas comunes si se puede entrar al login.
En este punto lo que hacemos es probar con el usuario root y el diccionario de passwords que viene por defecto de rockyou para intentar ver si podemos encontrar la contraseña:

Acceso SSH
Efectivamente tenemos la contraseña para el usuario root, por lo que vamos a acceder al ssh y ver si efectivamente este usuario root tiene permisos root…

Finalmente hemos accedido como usuario root a la máquina con la contraseña encontrada mediante fuerza bruta usando Hydra y el diccionario de rockyou.txt para matchear la contraseña para el usuario root.
En este caso de la máquina, no es necesario logarte como usuario root, si no que simplemente con la contraseña puedes acceder como root a la máquina:
