* Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
As recompensas do HackenProof são lançadas apenas quando seus clientes depositam o orçamento de recompensa. Você receberá a recompensa após a verificação do bug.
O MongoDB é um sistema de gerenciamento de banco de dados (DBMS) de código aberto que usa um modelo de banco de dados orientado a documentos que suporta várias formas de dados. (De [aqui](https://searchdatamanagement.techtarget.com/definition/MongoDB))
A enumeração manual é um processo de coleta de informações sobre um serviço MongoDB. Isso pode ser feito usando comandos e ferramentas específicas para obter detalhes sobre a instância do MongoDB em execução.
#### Verificação de porta
A primeira etapa é verificar se a porta 27017 (padrão do MongoDB) está aberta. Isso pode ser feito usando a ferramenta `nmap` com o seguinte comando:
```
nmap -p 27017 <alvo>
```
Se a porta estiver aberta, isso indica que o serviço MongoDB está em execução.
#### Conexão ao MongoDB
Após verificar a porta, você pode tentar se conectar ao serviço MongoDB usando o cliente `mongo` com o seguinte comando:
```
mongo <alvo>:27017
```
Se a conexão for bem-sucedida, você será apresentado ao prompt do MongoDB, onde poderá executar comandos e consultar o banco de dados.
#### Enumeração de informações
Uma vez conectado ao MongoDB, você pode usar comandos específicos para obter informações sobre o banco de dados e suas coleções. Alguns comandos úteis incluem:
O MongoDB é um banco de dados NoSQL popular que utiliza um modelo de armazenamento de documentos. Ele é amplamente utilizado em aplicações web e móveis devido à sua flexibilidade e escalabilidade. No entanto, como qualquer outro serviço de rede, o MongoDB também pode ser alvo de ataques.
Neste capítulo, discutiremos algumas técnicas de pentesting para identificar e explorar vulnerabilidades em instâncias do MongoDB. Vamos nos concentrar nas portas padrão 27017 e 27018, que são comumente usadas para comunicação com o MongoDB.
#### Verificação de porta
Antes de iniciar um teste de penetração em um serviço MongoDB, é importante verificar se as portas 27017 e 27018 estão abertas. Isso pode ser feito usando ferramentas de varredura de portas, como o Nmap.
```bash
nmap -p 27017,27018 <alvo>
```
Se as portas estiverem abertas, isso indica que o serviço MongoDB está em execução e pode ser acessado.
#### Enumeração de bancos de dados
Uma vez que tenhamos acesso ao serviço MongoDB, a próxima etapa é enumerar os bancos de dados disponíveis. Isso pode ser feito usando o comando `show dbs` no shell do MongoDB.
```bash
mongo --host <alvo> --port 27017
> show dbs
```
Isso nos fornecerá uma lista de todos os bancos de dados presentes no servidor.
#### Enumeração de coleções
Após identificar os bancos de dados, podemos prosseguir para a enumeração das coleções dentro de cada banco de dados. Isso pode ser feito usando o comando `show collections` no shell do MongoDB.
Isso nos retornará todos os documentos presentes na coleção selecionada.
#### Injeção de comandos
Além da extração de dados, também podemos explorar a possibilidade de injeção de comandos no MongoDB. Isso pode ser feito usando o operador `$where` no comando `find`.
Isso nos permitirá executar comandos arbitrários no servidor MongoDB.
#### Ataques de força bruta
Se tivermos credenciais de acesso limitadas, também podemos tentar realizar ataques de força bruta para obter acesso não autorizado ao serviço MongoDB. Isso pode ser feito usando ferramentas como o Hydra.
```bash
hydra -l <usuário> -P <wordlist><alvo> mongodb
```
Isso tentará várias combinações de nomes de usuário e senhas da lista fornecida para obter acesso ao serviço MongoDB.
#### Conclusão
O MongoDB é um serviço popular que pode ser alvo de ataques se não for configurado corretamente. Neste capítulo, discutimos algumas técnicas de pentesting para identificar e explorar vulnerabilidades em instâncias do MongoDB. É importante lembrar que todas as técnicas discutidas devem ser realizadas apenas em sistemas autorizados e com o devido consentimento.
Dos elementos acima, o identificador da máquina permanecerá o mesmo enquanto o banco de dados estiver executando na mesma máquina física/virtual. O ID do processo só mudará se o processo do MongoDB for reiniciado. O timestamp será atualizado a cada segundo. O único desafio em adivinhar os IDs de objeto simplesmente incrementando os valores do contador e do timestamp é o fato de que o Mongo DB gera IDs de objeto e atribui IDs de objeto em nível de sistema.
A ferramenta [https://github.com/andresriancho/mongo-objectid-predict](https://github.com/andresriancho/mongo-objectid-predict), dado um ID de objeto inicial (você pode criar uma conta e obter um ID inicial), retorna cerca de 1000 IDs de objeto prováveis que poderiam ter sido atribuídos aos próximos objetos, então você só precisa forçar a entrada.
Se você é root, pode **modificar** o arquivo **mongodb.conf** para que não sejam necessárias credenciais (_noauth = true_) e **fazer login sem credenciais**.
As recompensas do HackenProof são lançadas apenas quando os clientes depositam o orçamento de recompensa. Você receberá a recompensa após a verificação do bug.
* Você trabalha em uma **empresa de cibersegurança**? Você quer ver sua **empresa anunciada no HackTricks**? Ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e para o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).