Vault
Executive summary — Vault doesn't hinge on a single exploit but on a pivoting chain through a segmented network of virtual machines hosted behind the entry box. A blacklist upload filter that forgets
.php5gives the first foothold; credentials left in cleartext on a user's desktop open an SSH hop into an internal VM where an OpenVPN configurator executes whatever.ovpnfile gets uploaded to it as root; and the real target — "The Vault" — sits isolated behind a firewall that filters by source port, an access-control mechanism that authenticates nothing and is bypassed by simply spoofing that port. Root's flag is also GPG-encrypted, so the compromise isn't done until the encrypted file, the private key and the passphrase are all gathered — each one sitting on a different host in the chain.
| Platform | Hack The Box |
| Operating system | Linux (Ubuntu 16.04 Xenial) |
| Difficulty | Medium |
| Status | Retired |
| Target IP | 10.129.49.29 |
Attack map
[80/HTTP] "Slowdaddy" decoy portal -> /sparklays/ (hidden path)
| changelogo.php: unauthenticated file upload, blacklist filter misses ".php5"
v
[RCE www-data] .php5 webshell -> /home/dave/Desktop in cleartext
| ssh: dave / Dav3therav3123 -- key: GPG passphrase "itscominghome"
v
[SSH host ubuntu] dave -> internal KVM network 192.168.122.0/24 (virbr0)
| DNS VM .4: vpnconfig.php saves and runs an .ovpn file as ROOT
v
[RCE root DNS VM] OpenVPN "up" directive -> user.txt + Vault creds (dave:dav3gerous567)
| firewall .5 only allows src-port 53/4444 into 192.168.5.0/24
v
[Firewall bypass] ncat -p 53 -> Vault SSH 192.168.5.2:987 (rbash)
v
[ROOT] base32 exfiltrates root.txt.gpg -> decrypted on ubuntu with dave's GPG key + passphrase -> root.txt
1. Reconnaissance
sudo nmap -Pn -sCV -p- -T4 -oN nmap-allports.txt 10.129.49.29
22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.4 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.18 ((Ubuntu))
|_http-server-header: Apache/2.4.18 (Ubuntu)
Only two ports: SSH and HTTP. The OpenSSH 7.2p2 + Apache 2.4.18 combo places the system on Ubuntu 16.04 (Xenial), long out of support — useful context, but the real surface is in the web content.
curl -s http://10.129.49.29/
<b>Welcome to the Slowdaddy web interface</b>
We specialise in providing financial orginisations with strong web and database
solutions and we promise to keep your customers financial data safe.
We are proud to announce our first client: Sparklays
(Sparklays.com still under construction)
Identification note: this 299-byte placeholder cover page is identical to another HTB box's (Bank), and enumerating against that wrong "map" — hunting for
/balance-transfer/,/login.php, a BIND service on port 53 — leads to wrongly concluding the machine is broken. The real signal on Vault is the name "Sparklays" quoted right in the page text: that's where the hidden path lives. Against an ambiguous fingerprint, confirm the exact machine name and enumerate directories before assuming a platform failure.
for p in /sparklays/ /sparklays/login.php /sparklays/admin.php \
/sparklays/design/ /sparklays/design/design.html \
/sparklays/design/changelogo.php /sparklays/design/uploads/; do
printf "%-40s " "$p"
curl -s -m 8 -o /dev/null -w "code=%{http_code} size=%{size_download}\n" "http://10.129.49.29$p"
done
/sparklays/ code=403 size=297
/sparklays/login.php code=200 size=16 -> "access denied"
/sparklays/admin.php code=200 size=615 -> login form (rabbit hole)
/sparklays/design/ code=403 size=304
/sparklays/design/design.html code=200 size=72
/sparklays/design/changelogo.php code=200 size=484 -> UPLOAD FORM <--
/sparklays/design/uploads/ code=403 size=312
design.html links straight to the vulnerable functionality (<a href="changelogo.php">Change Logo</a>), a file-upload form with no authentication in front of it whatsoever. admin.php (a login form) and login.php ("access denied") are deliberate decoys: the real vector is the upload at changelogo.php.
Resumen ejecutivo — Vault no depende de un único exploit, sino de una cadena de pivoting a través de una red segmentada de máquinas virtuales alojadas tras el host de entrada. Un filtro de subida por lista negra que olvida
.php5da el primer acceso; credenciales dejadas en claro en el escritorio de un usuario abren un salto SSH hacia una VM interna donde un configurador de OpenVPN ejecuta cualquier fichero.ovpnque se le suba como root; y el objetivo real —"The Vault"— vive aislado detrás de un firewall que filtra por puerto de origen, un mecanismo de control de acceso que no autentica nada y se sortea falsificando ese puerto. La flag de root llega además cifrada con GPG, así que el compromiso no termina hasta reunir el fichero cifrado, la clave privada y la passphrase — cada uno en una máquina distinta de la cadena.
| Plataforma | Hack The Box |
| Sistema operativo | Linux (Ubuntu 16.04 Xenial) |
| Dificultad | Medium |
| Estado | Retired |
| IP objetivo | 10.129.49.29 |
Mapa del ataque
[80/HTTP] Portal señuelo "Slowdaddy" -> /sparklays/ (ruta oculta)
| changelogo.php: subida de fichero sin auth, filtro blacklist sin ".php5"
v
[RCE www-data] webshell .php5 -> /home/dave/Desktop en claro
| ssh: dave / Dav3therav3123 -- key: passphrase GPG "itscominghome"
v
[SSH host ubuntu] dave -> red interna KVM 192.168.122.0/24 (virbr0)
| VM DNS .4: vpnconfig.php guarda y ejecuta un .ovpn como ROOT
v
[RCE root VM DNS] directivo OpenVPN "up" -> user.txt + creds del Vault (dave:dav3gerous567)
| firewall .5 solo deja pasar src-port 53/4444 hacia 192.168.5.0/24
v
[Bypass firewall] ncat -p 53 -> SSH del Vault 192.168.5.2:987 (rbash)
v
[ROOT] base32 exfiltra root.txt.gpg -> descifrado en ubuntu con clave GPG de dave + passphrase -> root.txt
1. Reconocimiento
sudo nmap -Pn -sCV -p- -T4 -oN nmap-allports.txt 10.129.49.29
22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.4 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.18 ((Ubuntu))
|_http-server-header: Apache/2.4.18 (Ubuntu)
Solo dos puertos: SSH y HTTP. La combinación OpenSSH 7.2p2 + Apache 2.4.18 sitúa el sistema en Ubuntu 16.04 (Xenial), fin de soporte hace años — un dato de contexto útil, pero la superficie real está en el contenido web.
curl -s http://10.129.49.29/
<b>Welcome to the Slowdaddy web interface</b>
We specialise in providing financial orginisations with strong web and database
solutions and we promise to keep your customers financial data safe.
We are proud to announce our first client: Sparklays
(Sparklays.com still under construction)
Nota de identificación: esta portada placeholder de 299 bytes es idéntica a la de otra máquina de HTB (Bank), y enumerar con ese "mapa" equivocado —buscando
/balance-transfer/,/login.php, un BIND en el puerto 53— lleva a concluir erróneamente que la máquina está rota. El indicador real de Vault es el nombre "Sparklays" citado en el propio texto: ahí está la ruta oculta. Ante una huella ambigua, confirmar el nombre exacto de la máquina y enumerar directorios antes de asumir un fallo de plataforma.
for p in /sparklays/ /sparklays/login.php /sparklays/admin.php \
/sparklays/design/ /sparklays/design/design.html \
/sparklays/design/changelogo.php /sparklays/design/uploads/; do
printf "%-40s " "$p"
curl -s -m 8 -o /dev/null -w "code=%{http_code} size=%{size_download}\n" "http://10.129.49.29$p"
done
/sparklays/ code=403 size=297
/sparklays/login.php code=200 size=16 -> "access denied"
/sparklays/admin.php code=200 size=615 -> formulario login (rabbit hole)
/sparklays/design/ code=403 size=304
/sparklays/design/design.html code=200 size=72
/sparklays/design/changelogo.php code=200 size=484 -> FORMULARIO DE SUBIDA <--
/sparklays/design/uploads/ code=403 size=312
design.html enlaza directamente a la funcionalidad vulnerable (<a href="changelogo.php">Change Logo</a>), un formulario de subida de ficheros sin ningún control de autenticación delante. admin.php (formulario de login) y login.php ("access denied") son señuelos deliberados: el vector real es la subida en changelogo.php.
This content is Root Access only. Everything else on the site — the free tier, the whole public library — stays open.
See Root Access plansNo account? Create one free then upgrade from your console.
Este contenido es solo para Root Access. Todo lo demás del sitio — el nivel gratuito, toda la biblioteca pública — sigue abierto.
Ver planes de Root Access¿Sin cuenta? Crea una gratis y luego mejora desde tu consola.