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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
opnsense-firmware-mirror-sed — OPNsense 26.7.6 - 高 - リモート - 権限の残存 - カスタムファームウェアミラーがpkgフィンガープリントをsedでスキップ | Kitploit
ツール/GitHubGitHub/abraxas/opnsense-firmware-mirror-sed
特権昇格脆弱性分析コード分析エクスプロイトウェブアプリケーション悪用セキュリティ仮想化ペネトレーションテストサプライチェーンセキュリティ論文と研究

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
ラボと実践
GitHubabraxas/opnsense-firmware-mirror-sed

opnsense-firmware-mirror-sed

OPNsense 26.7.6 - 高 - リモート - 権限の残存 - カスタムファームウェアミラーがpkgフィンガープリントをsedでスキップ

リポジトリを見る
15日前未レビュー

Abraxas Labs - opnsense-firmware-mirror-sed

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  opnsense-firmware-mirror-sed

opnsense-firmware-mirror-sed

クラス: 署名スキップ 到達範囲: リモート

OPNsense コア 26.7.6 (a842fe48) - opnsense.org

システム: ファームウェア set がカスタム mirror / flavour を POST する。コアの FILTER_SANITIZE_URL は \|#;" を保持する。opnsense-update -m / -n はその文字列を OPNsense.conf 上の sed に補間し、signature_type を "fingerprints" から "none" に反転させ得る。その後、攻撃者の URL から root として pkg install が実行される。設定ページは、依然として署名された OPNsense パッケージのカスタムミラーを提供する。「署名を無効化」するコントロールは存在しない。権限は page-system-firmware-manualupdate であり、page-all ではない。

Sed はピン外の opnsense-update に存在する。このピンにおけるコアは、サニタイズされていないフィールドと -m パスの組み合わせである。ラボはその s||| プログラムテキストを GNU sed で再実行する。

この GitHub パックは調整された開示までプライベートのままとする。

IDCVE 未割当
クラス署名スキップ
到達範囲リモート (認証済み WebGUI / API)
CWECWE-74 / CWE-347
CVSSHigh: 7.2 CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
製品OPNsense core
影響を受けるバージョン26.7.6 (a842fe48c21288d11a422cb944678e8eb308becf) ファームウェア set カスタムミラー
認証page-system-firmware-manualupdate を持つ WebGUI セッションまたは API キー
ライセンスGNU Affero GPL v3.0
ラボ127.0.0.1 のみ

タグ 26.7.6 のピール a842fe48 をピン留めした。ラボは FILTER_SANITIZE_URL と opnsense-update の mod_mirrorurl sed を組み合わせた PHP ガジェットであり、127.0.0.1:18860 上のループバック HTTP である。PR:H としたのは、ファームウェアページが既に署名済みパッケージのインストールを許可されているためである。このページを PR:L として扱う場合、スコアは 8.8 となる。

攻撃者ができること

手法シンク権限
| を含むカスタムミラーに対する FILTER_SANITIZE_URL、続いて opnsense-update 形式の sedOPNsense.conf の書き換え完全性 (ラボ実証済み): signature_type が "none"。コントロールミラーは "fingerprints" のまま。ラボ: sanitize-keeps-pipe=yes signature_type=none fingerprints-control=yes。
同じ set、plugins フィールドsetAction が plugins を破棄ネガティブ (ラボ実証済み): plugins は保存前に破棄される。
その後 POST /api/core/firmware/install/<pkg>攻撃者の URL から root として pkg install -y完全性 (推測): 署名なしパッケージを root として。ファームウェアページは既に署名済みパッケージをインストールする。この残存が検証スキップである。ラボに署名なしペイロードはない。
その後 POST /api/core/firmware/update または /upgraderoot として opnsense-update -pt / -u完全性 (推測): 検証をスキップした base/kernel セット (DO_INSECURE)。
GET /api/core/firmware/info、/running、/upgradestatusファームウェア API偵察 (推測): パッケージリスト、更新ログ、ミラーオプション。この ACL に対して意図されたもの。
POST /api/core/firmware/reboot、/poweroff、/remove/<pkg>configd ファームウェアアクション可用性 (推測): 再起動/停止/削除。この ACL に対して意図されたものであり、残存ではない。

ラボ実証済み vs 推測: サニタイズが | を保持すること、および signature_type が none であることはラボ SUCCESS である。署名なしパッケージのライブ pkg install は推測である。ガジェットであり、完全な OPNsense FreeBSD VM ではない。署名なしパッケージペイロードはない。

必要条件: サインイン済みユーザー、またはそのユーザーの Local API キーが page-system-firmware-manualupdate を持ち、page-all を持たないこと。セッション POST に対する CSRF。未認証ではない。ダッシュボードのみでもない。

閉じたままの隣接面

面ラボ
未認証ファームウェア401
ダッシュボードのみ403
コントロールミラー https://pkg.opnsense.orgsignature_type は "fingerprints" のまま
プラグイン名トラバーサルfilter_pkgname
変更履歴の取得依然として opnsense-verify
save() 上の user-config-readonlythrowReadOnly()
検証スキップのない標準 HTTP ミラートランスポート MITM。fingerprints は依然として必要。
XMLRPC ファームウェアバージョン文字列のみ

未認証なし。ダッシュボードのみなし。変更履歴は依然として署名済み。

ラボ

cd lab
./run.sh

ループバック 127.0.0.1:18860。Compose プロジェクト opnsense-firmware-mirror-sed。ウィットネス OPNSENSE-FIRMWARE-MIRROR-SED-WITNESS。最終行:

SUCCESS opnsense-firmware-mirror-sed sanitize-keeps-pipe=yes signature_type=none fingerprints-control=yes OPNSENSE-FIRMWARE-MIRROR-SED-WITNESS

ルートランチャー: python3 opnsense-firmware-mirror-sed-Abraxas-Labs.py。

ラボで使用された攻撃ミラーの形状 (ウィットネスのみ、署名なし pkg なし):

https://example.invalid/|;/signature_type/s/"fingerprints"/"none"/;#

修正

URL でないカスタムミラーを拒否する。opnsense-update -m / -n の前に sed メタ文字 (|、;、#、") を除去するか、URL をファイルとして渡して sed がそれをプログラムテキストとして見ないようにする。別途監査されたコントロールが検証をオフにしない限り、signature_type: "fingerprints" を維持する。ファームウェア set に fingerprints を "none" へ書き換えさせない。

参考資料

  • github.com/opnsense/core a842fe48c21288d11a422cb944678e8eb308becf
  • FirmwareController.php setAction FILTER_SANITIZE_URL
  • scripts/firmware/repos/OPNsense.php opnsense-update -sd -m
  • OPNsense.conf.shadow.in 標準の signature_type: "fingerprints"
  • ピン外のシンク: opnsense-update mod_mirrorurl (url: 行に対する s\|\|)
  • CWE-74 / CWE-347
ツールをダウンロード