Bancos de dados são de longe uma grande mina de ouro e sempre quando o administrador de sistemas dá uma bobeada, essa mina de ouro fica desprotegida, pelo menos era assim com as bases de dados relacionais, como Oracle, MySQL, Postgresql, MariaDB, MSSQL, dentre outros. Pois bem, com o reaparecimento dos bancos de dados Não-Relacionais e sua popularização entre as grandes empresas, que muitas vezes demandam um processamento de dados em escala astronômica, bancos de dados como Cassandra, MongoDB, CouchDB, ArangoDB, AcumuloDB, entre outros passaram a virar alvos cada vez mais frequentes e valiosos.

Screenshot – NoSQLMap, ferramenta usada para exploração de falhas em bases de dados não-relacionais

Com isso, já existe um nova ferramenta totalmente operacional, especializada em servidores de bases de dados não-relacionais, o NoSQLMap foi desenvolvido originalmente por @tcsstool e mantido por @codingo_ e foi chamado assim em homenagem ao SQLMap, o conceito dele é baseado na apresentação “Abusing NoSQL Databases” de Ming Chow na Defcon 21.

Bancos de dados suportados

Inicialmente o projeto foi desenvolvido para explorar falhas nos servidores MongoDB e CouchDB, entretanto, segundo os desenvolvedores já existem planos para dar suporte ao Cassandra e Redis nas próximas versões da ferramenta.

Requerimentos para instalação do NoSQLMap

Um sistema operacional linux baseado no Debian ou Red Hat que dê suporte a execução de arquivos .sh.

O sistema local deve cumprir os seguintes requisitos para que a instalação do NoSQLMap funcione corretamente:

  • Metasploit Framework
  • Python com PyMongo
  • httplib2
  • uma urllib disponível
  • Uma instância padrão do MongoDB instalada localmente para a clonagem das bases de dados que forem exploradas.
    Veja aqui como instalar o MongoDB.
  • Algumas outras bibliotecas importantes para a instalação do NoSQLMap já são instaladas por padrão com a instalação do Python.

Instalação

Para instalar o NoSQLMap na sua máquina, siga os procedimentos abaixo

Abra um terminal e clone o projeto na máquina local, digitando
git clone https://github.com/codingo/NoSQLMap

Em seguida execute o arquivo de instalação do projeto, entre na pasta que acabou de clonar e digite o seguinte

python setup.py install

Após a conclusão do processo de instalação o NoSQLMap estará pronto para ser usado.

Instruções de uso

Para executar a ferramenta basta digitar
python NoSQLMap

Esta ferramenta é baseada num sistema de Menu para projetar os ataques, similar ao Metasploit. Ao iniciar o NoSQLMap você irá se deparar com um Menu Principal similar a este

1-Set options (do this first)
2-NoSQL DB Access Attacks
3-NoSQL Web App attacks
4-Scan for Anonymous MongoDB Access
x-Exit

Explicação das opções

1. Serve para definir a URL do alvo ou o servidor MongoDB que você deseja explorar.
2. Configura a porta TCP para Aplicações web, caso o seu alvo seja uma aplicação Web.
3. Configura a URL Destino para a URL da página que você deseja explorar, incluindo parâmetros de URL, muito similar ao SQLMap. (Ex. /app/acct.php?acctid=102).
4. Define o méotodo HTTP usado nas requisições, geralmente GET ou POST, porém o método POST ainda não está funcional e prevê-se que na nova versão seja implementado algo similar ao usado pelo Burp.
5. Define o MondoDB local ou IP do Shell, caso esteja atacando uma instânciado MongoDB diretamente pelo IP do alvo, isto define se irá clonar o alvo para a instância local ou então abrirá uma sessão do Meterpreter.
6. Define a porta usada no Shell, caso esteja utilizando o Meterpreter ao invés da instância local do MongoDB.
7. Carrega um arquivo de configurações, caso você tenha salvo as configurações definidas anteriormente de 1-6 em um arquivo.
8. Carregas as opções salvas do Request-Parse do Burp Suite e popula as opções da Aplicação web.
9. Gera um arquivo de configurações com as opções que foram definidas nos itens de 1 a 6.
x. Volta para o menu principal, faça isso uma vez que definiu todas as configurações que serão usadas no seu ataque.

Uma vez que você configurou seu ataque, volte ao menu principal, defina o alvo que você quer atacar (MongoDB ou Web App) e deixe que a aplicação faça o resto, o processo inteiro é muito intuitivo e de fácil entendimento, tudo foi baseado no funcionamento do SQLMap para permitir fácil adaptação de novos usuários.

Vídeo de demonstração de uso da aplicação

Repositório do Projeto: https://github.com/codingo/NoSQLMap