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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
pfsense-api-acb-userkey — pfSense Plus MIM API toolkit b4acd7ca - 高 - リモート - IDOR - ACB userkey capability URL | Kitploit
ツール/GitHubGitHub/abraxas/pfsense-api-acb-userkey
脆弱性分析エクスプロイトウェブアプリケーション悪用データ流出情報収集ペネトレーションテスト論文と研究レッドチーミングAPIセキュリティラボと実践
GitHubabraxas/pfsense-api-acb-userkey

pfsense-api-acb-userkey

11日前未レビュー

pfSense Plus MIM API toolkit b4acd7ca - 高 - リモート - IDOR - ACB userkey capability URL

リポジトリを見る

人気

すべて見る →

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

すべてのツールを探索

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

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

Abraxas Labs - pfsense-api-acb-userkey

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  pfsense-api-acb-userkey

pfsense-api-acb-userkey

クラス: IDOR 到達範囲: リモート

pfSense Plus MIM API (Netgate/pfsense-api b4acd7ca) - Netgate

GET /services/acb と GET /services/acb/bkp は userkey を制約のないクエリパラメータとして受け取ります。生成された Python クライアントはそのキーをクエリ文字列に配置します。YAML には securitySchemes がありません。Auto Config Backup デバイスキーの所持がチェックです。これはケイパビリティ URL です。

盗まれた、または漏洩した ACB userkey は、そのデバイスのホストされたバックアップを一覧表示し、リビジョン本体を取得します。完全な設定がそれらのブロブの中に存在します。 キーが漏洩した場合、CE ACB キー CVE-2024-57273 / SA-25_03 と同じクラスです。その CVE は SSH バナー導出でした。この残存物は Plus MIM API のクエリパラメータ版の兄弟です。私はバナー導出を再申請しません。

これは pfSense Plus Nexus Multi-instance Management (:8443 上のコントローラ) の公開 OpenAPI + 生成クライアントです。これは CE REST パッケージ (jaredhendrickson/pfsense-api / pfrest.org) ではありません。サーバーは Plus 専用 (有償) です。私は pfSense Plus を実行していません。

IDCVE はまだなし
クラスIDOR (ケイパビリティ URL)
到達範囲リモート
CWECWE-639
CVSSHigh: 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N (それらの GET が JWT をデバイスにバインドせずに userkey を尊重する場合)
製品Netgate/pfsense-api (pfSense Plus MIM OpenAPI + 生成クライアント)
影響を受けるpin b4acd7ca21dbca739a530403a1f62a7440f7726f (2026-05-25)。タグなし。
認証仕様: なし (securitySchemes が存在しない)。userkey がクエリシークレット。Plus JWT/RBAC は実行されていない。
ライセンスGNU Affero GPL v3.0
ラボ127.0.0.1:19171 のみ。Plus イメージなし。

シリーズハブ: pfsense-api-nexus-mim (これはパート 7)。

攻撃者ができること

盗まれた、または漏洩した ACB userkey が必要です (仕様: "hexidecimal encoded 32-byte random bytes"、64 hex)。仕様はそのキーを JWT や呼び出し元のデバイスにバインドしていません。G11 クラスの GET /services/acb/config はライブの userkey を返します。G9 サンプルは verify_ssl=False を設定しているため、:8443 の MITM はワイヤー上のキーを見ることができます。これらは漏洩経路です。この残存物は、キーが流出した後にそれが何をもたらすかです。

偵察

MethodSinkPrivilege
GET /services/acb?userkey=<stolen>GetACBList (pfapi_openapi.yml)。生成された get_acb_list.py の params["userkey"]。ラボ実証済み (モック): そのデバイスがホストするバックアップを一覧表示する。証跡は backups[].reason に現れる。
GET /services/acb/bkp?userkey=<stolen>&revision=GetACB -> RetrievedBackup.backup。生成された get_acb.py の params["userkey"] + params["revision"]。ラボ実証済み (モック): リビジョンの本体を取得する。証跡は backup に現れる。
稼働中のコントローラ上で同じバックアップ文字列ホストされた ACB blob推測: 読み取り可能になれば完全な config.xml (ユーザー、鍵、パッケージ)。モックは平文の証跡 XML を返した。acb.netgate.com とは通信しておらず、稼働中の blob も復号していない。
GET /services/acb/configACBConfigInfo.userkey、ACBConfig.encryption_password仕様上の話であり、このラボの話ではない: 稼働中のケイパビリティシークレットと復号パスワード。G11 の GET 上のシークレットクラス。検証はしていない。

完全性

MethodSinkPrivilege
POST /services/acb/restoreRestoreACB ボディ { timestamp }隣接する閉じた領域: サンプルは依然として JWT を送信する。この残存物ではない。実行していない。
POST /services/acb/config で userkey を置換SaveACBConfig隣接する閉じた領域: GET ケイパビリティ URL ではない。実行していない。

可用性

GET list / GET bkp は削除しない。DELETE /services/acb/bkp/{timestamp} は別の操作である。検証はしていない。

誤った userkey と欠落した userkey は証跡を返さなかった (ラボ実証済み)。

ラボ実証済み vs 推測: 盗まれた鍵による list と bkp は証跡を返した。誤った鍵と欠落した鍵は返さなかった。Plus は実行していない。稼働中の config.xml の内容と復号は公開スキーマから推測した (RetrievedBackup.backup は文字列であり、encryption_password は ACBConfig 上にある)。

必要条件: MIM コントローラの ACB GET へのネットワーク経路、および盗まれた/漏洩した userkey。これらの GET が JWT をデバイスにバインドせずにクエリキーを受け入れる場合、CVSS 7.5。正直に言えば、このパックは公開仕様がその契約をモデル化していることをループバック上で証明するものである。

閉じたままの隣接する攻撃面

SurfaceWhy
pfSense Plus コントローラ実行していない。このパックに Plus イメージはない。
CE REST パッケージ別のサーバー (jaredhendrickson/pfsense-api / pfrest.org)。
SSH バナー ACB 鍵導出CVE-2024-57273 / SA-25_03。再報告しないこと。
この発見としての POST /services/acb/restoreサンプルは依然として JWT を送信する。
省略された OAS security からの未認証 php/shellドキュメントの残存物。モックは JWT なしで 200 を返すサーバーの証明ではない。
userkey の欠落ラボでは 403、証跡なし。
誤った userkeyラボでは list が空 / bkp が 403、証跡なし。
生成されたライブラリの verify_sslデフォルトは True。G9 はサンプルがこれをオフにしている話であり、パッケージのデフォルトの話ではない。

発見の経緯

Netgate/pfsense-api の main b4acd7ca (2026-05-25、「Add Snort-3 API definitions」) を固定した。ログイン/JWT、診断、MIM 登録、クライアント TLS、ユーザー/証明書、パッケージ、VPN/ファイアウォール、OpenAPI セキュリティ、デバイス IDOR、git/ファームウェア/フィード、さらに生成されたすべての操作のループバックモックにわたる 12 回の調査。

まずスキップリスト: 既にメール済みの CE WebGUI 残存物 (QinQ 親 if、OpenVPN ウィザード CRLF、CARP VHID、リミッタ番号、IPsec ログインバナー)。診断 PHP/shell は意図された管理者権限として。サードパーティの CE REST パッケージ。CVE-2024-57273 のバナー導出。

GetACBList と GetACB を読みました。userkey はクエリパラメータであり、バインドされたデバイス ID ではありません。生成された Python はそれをクエリ文字列にコピーします。YAML に securitySchemes はありません。ACBConfigInfo.userkey は「16 進数エンコードされた 32 バイトのランダムバイト」です。GET /services/acb/config はそのキーを返します。G9 サンプルは TLS 検証を無効化しているため、MITM がそれを漏洩させる可能性があります。G11 は GET ダンプです。この残存物は、そのダンプが供給するケイパビリティ URL です。

誤った方向性: 欠落した OAS セキュリティを未認証の php/shell として扱うこと。CVE-2024-57273 を再提出すること。稼働中の Plus ダンプを主張すること。劇場: Plus コントローラー。オラクルは公開仕様とループバックモックです。

ラボ

python3 pfsense-api-acb-userkey-Abraxas-Labs.py

または

cd lab
./run.sh

Loopback のみ: http://127.0.0.1:19171。Compose プロジェクト pfsense-api-acb-userkey。Witness PFSENSE-API-ACB-USERKEY-WITNESS。Docker。Plus イメージなし。

期待される最終行:

SUCCESS pfsense-api-acb-userkey capability-url stolen-key-returns-witness wrong-key-does-not plus-not-executed public-spec-models-acb-userkey-capability-url PFSENSE-API-ACB-USERKEY-WITNESS

Honest: Plus は実行されなかった。盗まれたキーは witness を返した。誤ったキーは返さなかった。公開仕様では ACB の userkey を capability URL としてモデル化している。

修正

ACB の GET で JWT を必須にする。userkey を capability URL として扱わない。list と retrieve を認証済みデバイスのキーにバインドする。外部の呼び出し元から別のデバイスのキーを受け入れない。すでにデバイス所有者であるロール以外への GET config で、ライブの userkey と encryption_password を返すのをやめる。

参考資料

ツールをダウンロード