
Umfassender Penetrationstest-Bericht und Exploit-Details für Hack The Box - Enigma-Maschine, einschließlich lokaler Enumeration, OliveTin CVE-2026-27626 Command Injection und Root-Privilegieneskalation
Enigma ist eine Linux-Maschine der mittleren Schwierigkeitsstufe, die auf Hack The Box gehostet wird. Die Bewertungsmethodik folgt einem standardmäßigen Penetrationstest-Lebenszyklus: Reconnaissance, Enumeration, initialer Zugriff durch Credential Harvesting, lokale Enumeration und Root-Privilegieneskalation durch eine Schwachstelle auf Service-Ebene (CVE-2026-27626 in OliveTin). Dieser Write-Up beschreibt detailliert die schrittweise Vektoranalyse, die Toolsets, die Code-Ausführungsstrategien und die erforderlichen Behebungsrichtlinien, um das Ziel vollständig zu kompromittieren und administrative Kontrolle zu erlangen.
Nmap)Die Bewertung begann mit einem TCP-SYN-Scan, um offene Ports und Dienste auf dem Zielhost zu identifizieren.
nmap -p- --min-rate=1000 -T4 <TARGET_IP>
Scan-Ergebnisse:
Mit Verzeichnis-Erkennungstools (gobuster / ffuf) scannten wir den Webdienst auf Port 80, um versteckte Endpunkte, administrative Portale oder Konfigurationsartefakte aufzudecken.
Durch detaillierte Analyse der Webanwendungsdateien und zusätzlicher NFS-Freigaben deckten wir gültige Entwickler-Anmeldedaten auf.
harisbestfriendsMit den entdeckten Anmeldedaten authentifizierten wir uns am SSH-Dienst, um eine interaktive Shell mit niedrigen Privilegien auf dem Zielsystem zu etablieren:
ssh haris@<TARGET_IP>
haris@enigma:~$user.txt) erfolgreich lokalisiert und abgerufen.Nach Etablierung einer Shell auf Benutzerebene überprüften wir lokale lauschende Ports und aktive Prozesse, um potenzielle Angriffsflächen zu identifizieren, die nicht extern exponiert sind:
ss -tulpn
Wichtige Entdeckung:
127.0.0.1:1337 unter root-Privilegien.Weitere Untersuchungen der OliveTin-Anwendungskonfigurationsdatei (/opt/OliveTin/config.yaml) ergaben, dass Datenbank-Backup-Aktionen über einen Shell-Wrapper ausgeführt wurden. Insbesondere nutzte die Konfiguration den Parameter db_pass innerhalb eines mysqldump-Befehlsstrings:
shell: "mysqldump -u {{ db_user }} -p'{{ db_pass }}' {{ db_name }} > /opt/backups/backup.sql"
arguments:
- name: db_pass
type: password
Diese Konfiguration führt zu einer kritischen Command-Injection-Schwachstelle (CVE-2026-27626), da der Parameter db_pass in einem Shell-Kontext in einfache Anführungszeichen eingeschlossen ist, aber Eingaben mit Shell-Steueroperatoren (z. B. Semikolons ;, Pipes | oder Backticks) nicht ordnungsgemäß bereinigt.
Da der verwundbare OliveTin-Dienst strikt an 127.0.0.1:1337 gebunden ist, werden externe Anfragen von der angreifenden Kali-Maschine mit einem Connection refused-Fehler blockiert. Um mit dem Dienst zu interagieren, richteten wir einen lokalen Port-Forwarding-Tunnel über SSH ein:
ssh -L 1337:127.0.0.1:1337 haris@<TARGET_IP>
Mit einem Python-Exploit-Skript, das auf den OliveTin-API-Endpunkt (/api/olivetin.api.v1.OliveTinApiService/StartAction) abzielt, injizierten wir beliebige Systembefehle in den verwundbaren Parametervektor.
Aufgrund strikter Shell-Syntax und Verzeichnisabhängigkeiten im ursprünglichen mysqldump-Befehlswrapper konnte die direkte Dateierstellung manchmal zu Exit-Status-Fehlern führen (wie fehlende Zielverzeichnisse oder Berechtigungsbeschränkungen). Durch die Erstellung präziser Ausführungsstrings oder die direkte Abfrage des Dateisystems über die API-Schwachstelle umgingen wir Ausführungshürden.
Ausführen der Befehls-Payload über die Exploit-Schnittstelle:
python3 CVE-2026.27626.py -u http://127.0.0.1 -x "cat /root/root.txt"
Ausführungsausgabe:
[+] Execution ID: 7fd15259-3996-4e03-9ebd-329034ee4e0d
======================================================================
Command Output
======================================================================
exit status 127
Usage: mysqldump [OPTIONS] database [tables]
...
ae9306f5690c4812c6f9445027d0d060
sh: 1: : Permission denied
======================================================================
Das Root-Flag wurde erfolgreich direkt über den Befehlsausgabestream extrahiert.
ae9306f5690c4812c6f9445027d0d060/root/.ssh/authorized_keys anzuhängen, was nahtlosen administrativen Terminalzugriff gewährt.root-Sicherheitskontext, es sei denn, dies ist absolut notwendig. Führen Sie Dienste unter dedizierten Dienstkonten mit minimalen Berechtigungen aus.