Plum - Writeup

Plum - Writeup

sáb. 14 mar 2026
4 minutos


Plum es una máquina de Proving Grounds de dificultad media. Es una buena máquina para afianzar conceptos para la OSCP.

Reconocimiento Link to Reconocimiento

Empezaremos escaneando los puertos abiertos de la máquina cuya IP es 192.168.213.28 con nmap.

BASH
1
2
3
4
5
6
7
8
sudo nmap -sS -p- --open -Pn -oN tcp_scan_192.168.213.28.txt 192.168.213.28
Nmap scan report for 192.168.213.28
Host is up (0.18s latency).
Not shown: 64510 closed tcp ports (reset), 1023 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:

BASH
1
2
3
4
5
6
7
8
9
10
11
12
13
14
sudo nmap --privileged -p22,80 -sCV -Pn -oN scan_192.168.213.28.txt 192.168.213.28
Nmap scan report for 192.168.213.28
Host is up (0.033s latency).

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.4p1 Debian 5+deb11u1 (protocol 2.0)
| ssh-hostkey: 
|   3072 c9:c3:da:15:28:3b:f1:f8:9a:36:df:4d:36:6b:a7:44 (RSA)
|   256 26:03:2b:f6:da:90:1d:1b:ec:8d:8f:8d:1e:7e:3d:6b (ECDSA)
|_  256 fb:43:b2:b0:19:2f:d3:f6:bc:aa:60:67:ab:c1:af:37 (ED25519)
80/tcp open  http    Apache httpd 2.4.56 ((Debian))
|_http-server-header: Apache/2.4.56 (Debian)
|_http-title: PluXml - Blog or CMS, XML powered !
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.

Escaneamos el puerto 80 con whatweb para obtener más información.

BASH
1
2
whatweb http://192.168.213.28/
http://192.168.213.28/ [200 OK] Apache[2.4.56], Cookies[PHPSESSID], Country[RESERVED][ZZ], HTML5, HTTPServer[Debian Linux][Apache/2.4.56 (Debian)], HttpOnly[PHPSESSID], IP[192.168.213.28], PoweredBy[ ], Title[PluXml - Blog or CMS, XML powered !]

Como podemos observar, se detecta un CMS llamado PluXml.

Si entramos a la página web podremos encontrar lo siguiente:

home

Si nos movemos a la parte inferior de la aplicación, podremos ver un link en el footer que pone Administration. Si hacemos hovering podemos ver lo siguiente.

administration-hovering

Si clickamos en el link, se nos redirige a una página de admin.

login

Si probamos con las credenciales admin:admin accedemos como usuario administrador.

admin-view

Explotación Link to Explotación

Como es un CMS de php, podemos intentar modificar los archivos para poder subir una reverse shell y poder ganar acceso a la máquina.

En la sección Themes, podemos modificar el código php de diferentes vistas.

theme

Para la reverse shell, usé la página web revshells.com. Elegí el payload de PHP Monkey Pentest.

revshells

Como resultado, copié el código y lo pegué en la vista home.php del CMS. Al ponerme en escucha y al entrar a la página web /index.php obtuve la reverse shell.

La flag local.txt la podremos encontrar en /var/www.

local-flag

Escalada de privilegios Link to Escalada de privilegios

Si vemos los puertos que usa la máquina:

BASH
1
2
3
4
5
6
7
www-data@plum:/var/www$ netstat -putnoa

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name     Timer
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -                    off (0.00/0/0)
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      -                    off (0.00/0/0)
tcp        0    292 192.168.225.28:41402    192.168.45.248:443      ESTABLISHED 1121/sh              on (0.24/0/0)
tcp6       0      0 192.168.225.28:80       192.168.45.248:44798    ESTABLISHED -                    keepalive (7041.40/0/0)

Como podemos observar, el puerto 25 está abierto en local. Este puerto se suele usar par el correo electrónico SMTP. Esto nos puede hacer pensar de que existan correos electrónicos en la máquina que podamos enumerar.

Si investigamos en /var/mail/www-data que corresponde a nuestro usuario actual, podremos ver lo siguiente.

mail

Podremos ver las credenciales root:6s8kaZZNaZZYBMfh2YEW.

Si usamos esta contraseña para cambiar al usuario root, conseguiremos escalar privilegios.

proof

Conclusión Link to Conclusión

Con esto concluye la máquina Plum. Si quieres más writeups de máquinas para la OSCP accede aquí: máquinas para la OSCP.