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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
cve-2026-0300-audit — CVE-2026-0300(PAN-OS User-ID 認証ポータルの露出)向けの読み取り専用監査ツール | Kitploit
ツール/GitHubGitHub/tailwindrg/cve-2026-0300-audit
クラウドインフラストラクチャセキュリティ脆弱性分析スクリプトと自動化構成監査ネットワークセキュリティDevSecOps
GitHubtailwindrg/cve-2026-0300-audit

cve-2026-0300-audit

CVE-2026-0300(PAN-OS User-ID 認証ポータルの露出)向けの読み取り専用監査ツール

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-0300 監査ツール

CVE-2026-0300 用の読み取り専用監査ツール — PAシリーズおよびVMシリーズファイアウォールのPAN-OS User-ID認証ポータル(旧称「キャプティブポータル」)における未認証バッファオーバーフローに関するものです。

このリポジトリは、Tailwind Resource Group セキュリティアドバイザリ TRG-SA-2026-003 に付随するもので、以下を提供します:

  • audit_portal.py — ティア1: 単一ファイアウォールの監査
  • audit_fleet.py — ティア2: Panorama駆動のフリートスイープ(並行処理)
  • panos_audit.py — 両CLIで使用される共有ライブラリ

スクリプトは読み取り専用です。PAN-OS XML APIに対してshow形式のクエリを発行し、設定を変更することは一切ありません。APIキーはURLクエリパラメータではなくX-PAN-KEY HTTPヘッダーで送信されるため、PAN管理プレーンアクセスログ、TLS検査プロキシログ、監査者のプロセス引数には表示されません。

これが存在する理由

CVEレコードでは、最新の機能名「User-ID認証ポータル」が使用されています。PAN-OS XMLスキーマ、CLI設定項目、ドキュメントのURLパスでは、依然としてレガシーなcaptive-portalという語彙が使用されています。show config running | match authentication-portalでフリートを監査する運用担当者は、その文字列が設定要素として一切出現しないため、すべての設定を黙って見逃してしまいます。このツールは、設定が作成された時期に関係なく、スキーマ上正しい要素名を検索します。

この命名上の落とし穴に関するTailwindの完全な分析は、TRG-SA-2026-003「キャプティブポータルのレガシーフットプリント」に記載されています。

要件

  • Python 3.10以降
  • 標準ライブラリのみ — pip installは不要
  • ファイアウォールへの読み取りアクセス権を持つPAN-OS APIキー(ティア2の場合はPanoramaへのアクセス権)
  • ファイアウォール管理インターフェース上のCA署名(または運用担当者が信頼する)証明書。--insecureは一度限りの立ち上げ監査用にのみ提供されています

ティア1 — 単一ファイアウォール

root@kitploit:~
export PAN_API_KEY="<key>"
./audit_portal.py --hostname fw1.example.com

テーブル出力の例:

root@kitploit:~
vsys: vsys1
  configured:    True
  enabled:       True
  redirect_host: auth-portal.internal.example.com
  mode:          redirect
  bound:         ethernet1/3(internal-trust), ethernet1/4(guest)
  tls_verified:  True
  risk:          EXPOSED_LIKELY

その他の出力形式: --output json または --output csv。

その他のフラグ: 単一vsys監査用の--vsys <name>、遅い上流システム用の--timeout/--retries、stderrへの詳細なエラー情報出力用の--debug。

ティア2 — Panoramaフリートスイープ

root@kitploit:~
export PAN_API_KEY="<panorama-key>"
./audit_fleet.py --hostname panorama.example.com --workers 16 --output csv > fleet-audit.csv

CSVの各行は、ポータルステータス、リダイレクトホスト、モード、インターフェースバインディング、リスク分類を持つ1つのデバイス-vsysです。スクリプトはPanoramaのtarget=<serial> APIパラメータを使用するため、管理対象ファイアウォールに直接接続することはありません — Panoramaへの1接続でフリート全体をスイープします。

注目すべきフラグ:

  • --workers N — 並行監査スレッド数(デフォルト8、最大32)。1000デバイスのフリートでも、シリアルスイープなら1時間以上かかるところを数分で完了します。
  • --timeout, --retries — API呼び出しごとの設定。一時的なURLErrorとHTTP 5xxは、制限付きバックオフで再試行されます。
  • --exclude-disconnected — デフォルトでは、切断されたデバイスはrisk=DISCONNECTEDとして含まれ、パッチ適用期間中も表示され続けます。このフラグを使用すると除外できます。
  • --min-expected-devices N — PanoramaがN未満のデバイスを返した場合に警告(stderr)を出力します。既知のフリートサイズに対する応答の切り詰めを検出するのに役立ちます。
  • --serial-filter '0007*' — シリアル番号でグロブフィルタリングし、サブセットを監査します。
  • --debug — デバイスごとの詳細なエラー情報をstderrに出力します(上流のreason文字列を含みます。顧客向けCSVへのホスト名漏洩を避けるため、デフォルトではオフです)。

リスク分類

出力のrisk列は次のいずれかです:

EXPOSED_LIKELYはヒントであり、判定ではありません — ゾーン名は運用担当者の慣例であり、強制ではありません。このスクリプトはセキュリティポリシーのウォークを置き換えることはできません。フリート出力を、最初に注意を向けるべき場所に分類するものです。

スクリプトが行うこと — そして行わないこと

行うこと:

  • vsysごとに<captive-portal>ブロックをクエリします(スキーマ要素名は、UIの名称やPAN-OSバージョンに関係なく常にcaptive-portalです)。
  • 有効/無効、リダイレクトホスト、モード、ゾーン解決済みインターフェースバインディングを報告します。
  • ゾーン名ヒューリスティックでリスクを分類し、EXPOSED_LIKELY行がフリート出力で最初に表示されるようにします。
  • X-PAN-KEYヘッダーでAPIキーを送信し、URLアクセスログやプロセス引数に残らないようにします。
  • 応答本文サイズを制限(50 MB)し、XMLパーサーへのエンティティ展開攻撃を防ぎます。
  • 一時的なエラーを制限付きバックオフで再試行します。

行わないこと:

  • セキュリティポリシーを包括的にウォークしません。ポータルが信頼できないネットワークから到達可能かどうかは、ポリシールール、NAT、ゾーンバインディングに依存します — 運用担当者は監査出力からそのウォークを完了する必要があります。
  • ネットワークプローブによる到達可能性テストは行いません。純粋な設定監査のみです。
  • 設定を変更しません。すべてのAPI呼び出しは読み取り専用です。

PAN-OS APIキーの生成

PAN-OS APIキーは、それを生成したユーザーのロールと権限を継承します。

重要な注意点: PAN-OSには読み取り専用のXML API権限はありません。

XML APIタブのAdmin Role権限は、カテゴリごとにバイナリの有効/無効です — Configuration、Operational Requests、Commit、Export、Import、Report、Log、User-ID Agent。XML APIのConfigurationを有効にすると、showとset/edit/delete/move/rename/cloneの両方のアクションが許可されます。Operational Requestsを有効にすると、<request><restart>を含む任意の<request>操作が許可されます。Web UIタブとREST APIタブでは読み取り専用がオプションとして提供されていますが、XML APIタブにはありません。

これらのXML APIカテゴリを有効にして作成された「監査ユーザー」は、デバイス上で完全なXML API書き込み権限を保持します。生成されたキーは特権資格情報として扱ってください: 監査期間にライフタイムを限定し、シークレットマネージャーに保存し、作業完了時にユーザーを無効化してください。

正規のPANリファレンス: APIキーの取得(PAN-OS XML API)

WebUI経由

ファイアウォール(またはaudit_fleet.pyを使用する場合はPanorama)上で:

  1. Admin Roleを作成します。 Device > Admin Roles(またはPanorama > Admin Roles)に移動します。Addをクリックします。

    • ロールに例:audit-config-and-opという名前を付けます。
    • Web UIタブで、すべてをNoneに設定します(監査ユーザーにはUIアクセスは不要です)。
    • XML APIタブで、ConfigurationとOperational Requestsを有効にします。Commit、Export、Import、Report、Log、User-ID Agentは無効のままにします。
    • OKをクリックします。結果として得られるロールは、完全なXML API ConfigurationおよびOperational Requests権限を付与します — 上記の注意事項を参照してください。
  2. 監査ユーザーを作成します。 Device > Administrators(またはPanorama > Administrators)に移動します。Addをクリックします。

    • 名前: 例:audit-cve-2026-0300。
    • 強力なパスワードを設定するか、Authentication Profileにバインドします。
    • Administrator Type: Role Based → audit-config-and-opを選択します。
    • OKをクリックし、次に候補設定をCommitします。
  3. 新しいユーザーの資格情報でAPIキーを生成します。 PAN-OSはWebUIに「APIキー生成」ボタンを公開していません — keygenエンドポイントがサポートされているパスです。資格情報がURLアクセスログに記録されないよう、POST本文を使用します:

    root@kitploit:~
    read -rs AUDIT_PW; echo
    export PAN_API_KEY="$(curl -ksX POST "https://fw1.example.com/api/" \
      --data-urlencode "type=keygen" \
      --data-urlencode "user=audit-cve-2026-0300" \
      --data-urlencode "password=$AUDIT_PW" \
      | grep -oE '<key>[^<]+' | cut -c6-)"
    unset AUDIT_PW
    

    read -rsはパスワードを端末にエコーせず、シェル履歴にも残さずに読み取ります。スクリプトは結果のを環境から読み取り、 HTTPヘッダーで送信します — パスワードもキーも、スクリプト実行中にURLアクセスログやに表示されません。

ハードニングに関する注意事項

  • パスワードとキーをシェル履歴に残さないでください。 read -rsはパスワードをカバーします。PAN_API_KEYのキーについては、ファイルから貼り付けるのではなく、上記のスニペットで対話的に設定することをお勧めします。ファイルからソースする必要がある場合は、セッションでset +o historyを使用してください。
  • ファイアウォール管理インターフェースにCA署名証明書を使用してください。 両監査スクリプトの--insecureフラグは、TLSホスト名チェックと証明書検証を完全に無効にします。経路上の攻撃者は監査応答をMITMし、侵害されたデバイスに対してportal_enabled=Falseを報告できます。audit_fleet.pyスクリプトは、フリートスイープで--insecureと併用して--accept-mitm-riskを要求します。これは、改ざんされた応答の爆発半径がフリート全体に及ぶためです。
  • 完了時にキーをローテーションしてください。 監査ユーザーを無効化または削除すると、そのユーザーで生成されたすべてのキーが無効になります。

終了コード

  • 0 — 監査されたvsysでポータルが有効になっていない
  • 2 — vsysが見つからない(一時的またはサポートされていない設定)
  • 3 — 少なくとも1つのvsysでポータルが有効(レビューが必要)
  • 4 — API呼び出しが失敗(認証、TLS、ネットワーク)

「ポータル有効」で非ゼロ終了するのは意図的です — クリーンなシグナルを必要とするCI / フリートスイープパイプラインにスクリプトを配線できるようにするためです。

ライセンス

Apache License, Version 2.0の下でライセンスされています。完全な条件についてはLICENSEを参照してください。

商用利用は許可されています。帰属表示が必要です(二次的著作物に著作権表示とライセンスファイルを保持してください)。

Copyright 2026 Tailwind Resource Group.

関連情報

  • TRG-SA-2026-003 — CVE-2026-0300に関するTailwind Resource Groupセキュリティアドバイザリ
  • PAN PSIRT — https://security.paloaltonetworks.com/CVE-2026-0300
  • PANベストプラクティス(ポータルアクセスの制限) — https://knowledgebase.paloaltonetworks.com/KCSArticleDetail?id=kA14u000000CqbiCAC
  • Tailwind Resource Group — https://tailwindrg.com
ツールをダウンロード
ラベル意味
INFO_NOT_CONFIGUREDデバイスに<captive-portal>ブロックがない。CVE-2026-0300の対象外。
INFO_DISABLEDポータルは設定されているがenabled=no。脆弱なコードパスはアクティブではない。
REVIEW_POLICY_NO_BINDINGSポータルは有効だが、設定にインターフェースバインディングが見つからない。WebUIで確認してください。
EXPOSED_LIKELYポータルが有効で、名前が信頼できないネットワークへの露出を示唆するゾーン(untrust、dmz、guest、external、internet、wan、public)にバインドされている。最初に調査してください。
REVIEW_POLICYポータルが有効で、内部名のゾーンにバインドされている。セキュリティポリシーを確認して到達可能性を確認してください。
PAN_API_KEY
X-PAN-KEY
ps auxww
  • 監査作業完了時にユーザーを無効化します。 Device > Administratorsに移動し、audit-cve-2026-0300を見つけて、Delete(またはユーザーの無効化)をクリックします。Commitします。これにより、そのユーザーに対して生成されたすべてのキーが無効になります。