
📦 Pluck CMS 4.7.18 - Authentifizierter RCE-Exploit (CVE-2023-50564). Umgehung der Upload-Beschränkungen und Remote-Ausführung. 🎯
exploit.py 🐍💥
⚠️ Rechtlicher/ethischer Hinweis: Dieses Skript ist nur für autorisierte Umgebungen geeignet ✅ (CTFs, Labore, Pentesting mit Erlaubnis). Verwende es nicht gegen Systeme ohne Genehmigung ❌.
🧾 Was macht dieses Skript?
exploit_greenhorn.py automatisiert eine typische Exploit-Kette in einem Web-Panel:
✅ Einloggen in das Panel (gültiges Passwort erforderlich) ✅ Erstellt ein ZIP im Speicher (ohne lokale Dateien zu schreiben) 📦 ✅ Packt ein rev.php mit einer Reverse Shell hinein 🔁🐚 ✅ Lädt das ZIP als "Modul" in das Panel hoch 🧩⬆️ ✅ "Zündet" das Payload durch Öffnen der URL des hochgeladenen PHP 🚀
📌 Der Modulname wird zufällig generiert, um Konflikte zu vermeiden (z.B. abcdefg, xqpmzui, etc.) 🎲
🧰 Voraussetzungen
Python 3.8+ 🐍
Abhängigkeit: requests 📌
Installation: Installiere die Bibliothek requests mit pip (pip install requests) ✅
⚙️ Konfiguration (WICHTIG 🔧)
Innerhalb des Skripts gibt es einen Abschnitt "TUS DATOS", den du anpassen musst:
RHOST_DOMAIN 🌐 → URL des Ziels (inklusive http:// oder https://)
LHOST_IP 🧭 → deine IP, auf der du die Shell empfangen möchtest (normalerweise die VPN/tun0)
LHOST_PORT 🔌 → Port, auf dem du lauschen wirst
PASSWORD 🔑 → Passwort des Panels (das Skript macht kein Brute-Force)
✅ Tipp: Am häufigsten scheitert es an LHOST_IP (setze die richtige IP deines VPN-Interfaces ein) 😅
🎧 Listener (vor der Ausführung)
Bevor du den Exploit ausführst, öffne einen Listener, um die Reverse Shell zu empfangen 👂🐚
Beispiel: Netcat lauscht auf demselben Port, den du in LHOST_PORT angegeben hast (z.B. 4444). Wenn du nicht lauschst, kommt nichts an 📭.
▶️ Verwendung
Konfiguriere RHOST_DOMAIN, LHOST_IP, LHOST_PORT und PASSWORD ✅
Öffne deinen Listener 🎧
Führe das Skript mit Python aus 🐍
Typische Ausgabe, die du sehen könntest:
[] Ziel: http://greenhorn.htb
[] Erstelle sauberes Modul: xqpmzui [] Einloggen... [+] Login OK. [] Lade Payload hoch... [*] Zünde an: http://greenhorn.htb/data/modules/xqpmzui/rev.php
[+] Timeout! (Gutes Zeichen, überprüfe dein Netcat)
😎 Achtung: Das "Timeout! (Gutes Zeichen)" ist normalerweise NORMAL ✅ Denn wenn das PHP die Reverse Shell öffnet, kann die Webanfrage "hängen" bleiben, solange die interaktive Sitzung aktiv ist 🔁
🧠 Wie funktioniert es intern? (einfach erklärt)
Generiert einen zufälligen Modulnamen 🎲
Erstellt ein ZIP im Speicher 📦 (flache Struktur, ohne interne Ordner)
Packt rev.php mit einer Reverse Shell hinein, die mit deiner LHOST_IP:LHOST_PORT verbindet 📡
Loggt sich bei /login.php ein 🔑 (enthält Referer für Kompatibilität)
Lädt das ZIP unter /admin.php?action=installmodule hoch ⬆️🧩
Führt das Payload durch Zugriff auf /data/modules/<module_name>/rev.php aus 🚀🐚
🧪 Fehlerbehebung (falls etwas schiefgeht)
❌ Login fehlgeschlagen
Überprüfe PASSWORD 🔑
Bestätige, dass der Endpunkt /login.php ist
In Labs muss manchmal die Maschine/der Dienst neu gestartet werden 🔄
❌ Shell kommt nicht an
Überprüfe LHOST_IP 🧭 (die richtige IP, normalerweise tun0)
Bestätige, dass du auf dem richtigen Port lauschst 🔌🎧
Probiere einen anderen Port, falls gefiltert wird (z.B. 443 oder 9001) 🚧
❌ 404 beim Zünden
Möglicherweise wurde das Modul nicht installiert 🧩
Manche Installationen ändern Pfade; überprüfe die Struktur von /data/modules/ 📁
🛡️ Hinweise
Hinterlässt kein ZIP auf der lokalen Festplatte (alles im Speicher) ✅
Importiert sys, wird aber nicht verwendet (du kannst es bei Bedarf entfernen) 🧹
Verwende es mit Verstand 🧠😄
✅ Haftungsausschluss
Ohne Gewähr. Nur für Bildungszwecke und autorisierte Nutzung. Wenn du es ohne Erlaubnis verwendest, liegt die Verantwortung bei dir 🚫⚖️