Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Fortigate-SSL-VPN-Exploit-Kit — FortiGate SSL-VPNの金塊。CVE-2024-21762およびCVE-2023-27997。79の動作するエクスプロイトクライアント。53のハードウェアSKU。55のFortiOSビルド。 | Kitploit
ツール/GitHubGitHub/abraxas/fortigate-ssl-vpn-exploit-kit
エクスプロイトフレームワーク脆弱性分析エクスプロイトウェブアプリケーション悪用データ流出ネットワークセキュリティペネトレーションテストコマンド&コントロールレッドチーミング
ペイロード開発
GitHubabraxas/fortigate-ssl-vpn-exploit-kit

Fortigate-SSL-VPN-Exploit-Kit

FortiGate SSL-VPNの金塊。CVE-2024-21762およびCVE-2023-27997。79の動作するエクスプロイトクライアント。53のハードウェアSKU。55のFortiOSビルド。

リポジトリを見る
1421ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

FortiGate SSL-VPN キット(野外で回収)

研究アーカイブ。 発見されたままの状態で回収。これらのファイルは私が作成したものではない。
公開日: 2026年9月1日

このリポジトリは、SKU別FortiGate SSL-VPNエクスプロイトカタログの上に載るオーケストレーター、第2段階ペイロード、およびオペレーターリスナーである。長編のストーリー、件数、ハンティングノートは、Abraxas Labsのシリーズ**The SSL-VPN pot of gold**に掲載されている。

  • サイト: abraxaslabs.tech
  • シリーズ: The SSL-VPN pot of gold
  • GitHub: github.com/abraxas
  • Twitter / X: @abraxas_null

このリポジトリをホストしている当事者と標的システムの所有者の両方から明示的な書面による許可を得ていない限り、いかなるホストに対してもこのマテリアルを実行しないこと。関連するCVEは、このリリース前に公開され、パッチ適用済みである。このツリーは、研究、検知、および歴史的分析を目的としている。


これは何か

私は野外でプライベートなFortiGate SSL-VPNキットを発見した。最初のドロップは、動作するクライアントのディレクトリだった: exp/exp_60E-v6.4.7.pyやexp/exp_1000D-v7.4.0.pyのような名前だ。各ファイルはSKU別・FortiOS別のメモリ破壊クライアントである。2つの公開n-dayが、フォルダが部品カタログのように見えるまでハードウェアとファームウェア全体に再スタンプされていた。

金脈はオフセットマトリクスであり、新しいバグではない。その議論はシリーズのPhase 0にある。Phase 1では、2つのプリミティブを挙動として扱う。Phase 2は、検索可能なSKU / トレイン / CPUマップである。Phase 3はハンティングである。

このリポジトリは、同じキットの残りの部分であり、別のエクスプロイトファミリーではない。

  • exp/プログラムは、シリーズで既に説明されているイメージ別クライアントである。
  • 親ディレクトリとshellcode/のファイルは、それらのクライアントが呼び出すように書かれていたランチャー、インプラント取得、および設定窃取リスナーである。
  • exp_*.pyファイルにはインプラントが含まれていなかった。それらは(1)「シェルコードサーバー」から生のバイトを取得するか、(2)GET /s.jsしてevalすることだけを知っていた。それらの欠落していた部分がここにある。

プリミティブ:

ファミリーCVEFortinetアドバイザリ公開情報
ACVE-2024-21762FG-IR-24-015Assetnote — Two Bytes is Plenty
BCVE-2023-27997FG-IR-23-097Lexfo — XORtigate, Bishop Fox

両方ともCISAの既知の悪用された脆弱性カタログに掲載されている。poc.pyはどちらのCVEも実装していない。既に分類されている2つのファミリー(チャンク書き込み21762、enc=ヒープオーバーフロー27997)を選択してラップする。


レイアウト

.
├── poc.py                     # pocsuite3ランチャー / フィンガープリント / プロセスマネージャー
├── s.js                       # Node第2段階(設定窃取)
├── send_cmd.py                # ステージャーパスのコールバックハンドラー
├── init.sh                    # オペレーターワークステーションのパッケージインストール
├── requirements.txt           # pwntools
├── exp/
│   └── exp_<SKU>-v<FortiOS>.py
└── shellcode/
    ├── shellcode_server.py    # 長さプレフィックス付きブロブポンプ
    ├── shellcode_arm          # 約2.0 MBの生の第2段階
    └── shellcode_amd64        # 約2.7 MBの生の第2段階

exp/index.htmlとshellcode/index.htmlは、通常のPython http.serverディレクトリリスティングである。これらは、このツリーがかつてWebルートとしてホストされていたことを示すだけである。

このexp/のコピーは、以前のカタログに4つの追加クライアントを加えたものである: exp_30E-v6.2.4.py、exp_30E-v6.2.12.py、exp_30E-v6.2.14.py、exp_40F-v7.0.5.py。


各要素の連携方法

poc.py                          オーケストレーター (pocsuite3)
  │
  ├─ フィンガープリントポータル ─────── VERSION_LIBS (ハッシュ → SKU + FortiOS)
  ├─ ファイル選択 ──────────────── exp/exp_<SKU>-v<ver>.py
  │
  ├─ クライアントが「ステージャー」種別の場合 (Family A ARM / 一部のamd64)
  │     shellcode/shellcode_server.py を起動
  │           shellcode/shellcode_arm  または  shellcode_amd64 を読み込む
  │     send_cmd.py を起動                   (コールバック待機)
  │     :9999 で設定レシーバーを起動
  │     選択した exp_*.py を実行
  │
  └─ クライアントが「Node /s.js」種別の場合 (ほとんどのFamily B + 多くのFamily A)
        HTTPで s.js を配信
        :9999 で設定レシーバーを起動
        選択した exp_*.py を実行
              → ファイアウォールが GET /s.js → eval → 外部送信

パイプラインを一言で: 識別 → オフセットファイル選択 → sslvpndを破壊 → インプラント取得 → /data/config/*.gzを外部送信 → オペレーター側でアーカイブ。

最後のステップが要点である。ヒットは、ファイアウォール自体のsslvpndにおける認証なしのコード実行である — TLS終端、ルーティングポリシー、VPNセッション、多くの場合LDAP/RADIUSバインディング。FortiOSは有用な/bin/shを提供しない。公開研究とこのキットの両方が、内部コマンドヘルパーおよび/またはFortiOSが実際に同梱している/bin/nodeを経由する。確認されたヒットは、クラッシュしたデーモンではなく、ネットワークエッジの侵害として扱うこと。What a hit meansを参照。


ファイル別解説

poc.py — ランチャー

オペレーターフロントエンド(pocsuite3 POCBase)。CVE-2024-21762やCVE-2023-27997を実装していない。

  1. https://<target>/remote/login?lang=enを取得(フォールバックGB2312)。
  2. /sslvpn/js/login.js?q=<md5>からキャッシュバスターハッシュを取得。
  3. そのハッシュを埋め込みテーブルVERSION_LIBS(182行のhash,SKU,version)で検索。このテーブルがあるからこそ、オペレーターがSKUを指定しなくてもキットは50以上のアプライアンスから選択できる。SNMPや管理APIではなく公開SSL-VPNリソースハッシュによって駆動される、マトリクスと同じSKU。
  4. exp/exp_<SKU>-v<version>.pyを解決。
  5. ソースを読んでクライアントを分類:
    • s.jsを含む → 種別2 (Nodeローダー)
    • 使用法にShellcode Serverと記載 → 種別1 (ステージャー); その後スクリプト内のarm vs amd64を確認
  6. 対応するヘルパーを起動し、ホスト/ポート/コールバック引数でexp_*.pyをPopen。

このコピーでのデフォルトのオペレーターアドレス: 環境変数からのHOST_IP、それ以外はATTACKER_HOST。このツリー内のリテラルIPv4アドレスはロールラベルに置き換えられている(ポートは変更なし):

ラベルロール出現箇所
TARGET_HOST攻撃対象のFortiGateハードコードなし。argvからのrhost / target(poc.pyを参照)
ATTACKER_HOSTオペレーターワークステーションpoc.pyのデフォルトHOST_IP。poc.py、send_cmd.py、shellcode/shellcode_server.pyのバインドアドレス。lhostで埋められるexp_*.pyのs.js / TFTPプレースホルダー
C2_HOSTこのインプラントのコピーに焼き込まれたコールバックs.js — エクスプロイトに渡されるlhostではない
ポートロール
7777コールバック / send_cmd.py
8888シェルコードサーバー
9999設定レシーバー(s.jsとsend_cmd.pyの外部送信と一致)

ポータルハッシュがVERSION_LIBSにない場合、「unknown target hash」で停止する。ハッシュが一致してもexp/ファイルがない場合は「no exp」。

s.js — 欠落していたNode第2段階

ツールをダウンロード