Máquina First (Vulnyx)

Comenzamos con averiguar la dirección IP de la Máquina Victima, para ello primeramente utilizaremos la herramienta netdiscover, para ello ejecutaremos 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.42

Comprobamos si tenemos conexión con la Máquina Victima, para ello ejecutamos el siguiente comando:

$ ping -c 1 10.0.2.42

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

Como podemos comprobar la Máquina Victima tiene abierto el puerto 22 80.

Comprobamos que es lo que corre en 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.42 -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-big.txt


Encontramos el directorio tasklist, accedemos a el.


Encontramos una lista de tareas, y en una de ellas dice de "actualizar raspberry".

Hacemos una búsqueda en internet de credenciales por defecto de Raspberry.


Encontramos las credenciales pi:raspberry.

A continuación, nos conectamos por ssh, para ello ejecutamos el siguiente comando:

$ ssh pi@10.0.2.42

Introducimos la contraseña obtenida anteriormente.

¡¡¡Somos pi!!!

Al intentar enumerar binarios con el bit SUID, nos damos cuenta de que estamos en una shell restringida rbash.

Nos desconectamos del sistema, y nos volvemos a conectar por ssh ignorando tanto el archivo de inicio de todo el sistema /etc/profile como los archivos de inicio a nivel de usuario ~/.bash_profile, ~/.bash_login y ~/.profile, para ello ejecutamos el siguiente comando:

$ ssh pi@10.0.2.42 -t "bash --noprofile"

Enumeramos las tareas crontab, para ello ejecutamos el siguiente comando.

$ cat /etc/crontab


Nos encontramos que dentro de este fichero en el PATH tenemos /var/www/html antes que el PATH de /usr/bin que es donde se encuentra el verdadero binario ping, teniendo permisos de escritura sobre /var/www/html, y el usuario root ejecuta el comando ping sin establecer el path como ruta absoluta si no como ruta relativa, siendo esto vulnerable a PATH Hijacking en cron, por lo tanto, creamos un binario llamado ping dentro de /var/www/html, para ello ejecutamos el siguiente comando:

$ nano ping


Le damos permisos de ejecución al binario, para ello ejecutamos el siguiente comando:

$ chmod +x ping

Esperamos a que se ejecute el binario, nos dirigimos al directorio /tmp y ejecutamos el binario bash con la opción -p para que preserve los privilegios efectivos, para ello ejecutamos los siguientes comandos:

$ cd /tmp
$ ./bash -p


¡¡¡Ya somos root!!!

Ya podemos leer las flags de user root.