
Ferramenta automatizada de enumeração de banco de dados NoSQL e exploração de aplicações web.
NoSQLMap é uma ferramenta Python de código aberto projetada para auditar e automatizar ataques de injeção e explorar configurações padrão fracas em bancos de dados NoSQL e aplicações web que utilizam NoSQL, a fim de divulgar ou clonar dados do banco de dados.
Originalmente criado por @tcsstool e agora mantido por @codingo_ NoSQLMap recebeu esse nome como uma homenagem à popular ferramenta de injeção SQL de Bernardo Damele e Miroslav Stampar, sqlmap. Seus conceitos são baseados e extensões da excelente apresentação de Ming Chow na Defcon 21, "Abusing NoSQL Databases".
Demonstração de Ataque de Gerenciamento do MongoDB com NoSQLMap

Um banco de dados NoSQL (originalmente referindo-se a "non SQL", "non relational" ou "not only SQL") fornece um mecanismo para armazenamento e recuperação de dados que é modelado de maneiras diferentes das relações tabulares usadas em bancos de dados relacionais. Esses bancos de dados existem desde o final dos anos 1960, mas não obtiveram o apelido "NoSQL" até um surto de popularidade no início do século XXI, impulsionado pelas necessidades de empresas Web 2.0 como Facebook, Google e Amazon.com. Os bancos de dados NoSQL são cada vez mais usados em big data e aplicações web em tempo real. Os sistemas NoSQL também são às vezes chamados de "Not only SQL" para enfatizar que podem suportar linguagens de consulta semelhantes a SQL.
Atualmente, os exploits da ferramenta são focados em MongoDB e CouchDB, mas suporte adicional para outras plataformas NoSQL, como Redis e Cassandra, está planejado para versões futuras.
Em um sistema baseado em Debian ou Red Hat, o script setup.sh pode ser executado como root para automatizar a instalação das dependências do NoSQLMap.
Varia de acordo com os recursos usados:
Existem várias outras bibliotecas necessárias que uma instalação normal do Python deve ter prontamente disponíveis. Os resultados podem variar, verifique o script.
python setup.py install
Alternativamente, você pode construir uma imagem Docker digitando:
docker build -t nosqlmap .
ou pode usar Docker-compose para executar o Nosqlmap:
docker-compose build
docker-compose run nosqlmap
Comece com
python NoSQLMap
NoSQLMap usa um sistema baseado em menus para construir ataques. Ao iniciar o NoSQLMap, você é apresentado ao menu principal:
1-Set options (do this first)
2-NoSQL DB Access Attacks
3-NoSQL Web App attacks
4-Scan for Anonymous MongoDB Access
x-Exit
Explanation of options:
1. Set target host/IP-The target web server (i.e. www.google.com) or MongoDB server you want to attack.
2. Set web app port-TCP port for the web application if a web application is the target.
3. Set URI Path-The portion of the URI containing the page name and any parameters but NOT the host name (e.g. /app/acct.php?acctid=102).
4. Set HTTP Request Method (GET/POST)-Set the request method to a GET or POST; Presently only GET is implemented but working on implementing POST requests exported from Burp.
5. Set my local Mongo/Shell IP-Set this option if attacking a MongoDB instance directly to the IP of a target Mongo installation to clone victim databases to or open Meterpreter shells to.
6. Set shell listener port-If opening Meterpreter shells, specify the port.
7. Load options file-Load a previously saved set of settings for 1-6.
8. Load options from saved Burp request-Parse a request saved from Burp Suite and populate the web application options.
9. Save options file-Save settings 1-6 for future use.
x. Back to main menu-Use this once the options are set to start your attacks.
Depois que as opções estiverem definidas, volte ao menu principal e selecione ataques de acesso ao banco de dados ou ataques a aplicações web, conforme apropriado para se está atacando uma porta de gerenciamento NoSQL ou uma aplicação web. O restante da ferramenta é baseado em "wizard" e bastante autoexplicativo, mas envie e-mails para [email protected] ou me encontre no Twitter @codingo_ se tiver alguma dúvida ou sugestão.
Este repositório também inclui uma aplicação web intencionalmente vulnerável para testar o NoSQLMap. Para executar esta aplicação, você precisa ter o Docker instalado. Em seguida, execute os seguintes comandos a partir do diretório /vuln_apps.
docker-compose build && docker-compose up
Depois disso, você poderá acessar a aplicação vulnerável visitando: https://127.0.0.1:8080/index.html
A CLI também pode ser scriptada. Aqui está um exemplo de script usando NoSQLMap para detectar as vulnerabilidades no vuln_apps:
$ echo "1. Account Lookup (acct.php)"
$ docker-compose run --remove-orphans nosqlmap \
--attack 2 \
--victim host.docker.internal \
--webPort 8080 \
--uri "/acct.php?acctid=test" \
--httpMethod GET \
--params 1 \
--injectSize 4 \
--injectFormat 2 \
--doTimeAttack n
$ echo "2. User Data Lookup (userdata.php) - JavaScript Injection"
$ docker-compose run --remove-orphans nosqlmap \
--attack 2 \
--victim host.docker.internal \
--webPort 8080 \
--uri "/userdata.php?usersearch=test" \
--httpMethod GET \
--params 1 \
--injectSize 4 \
--injectFormat 2 \
--doTimeAttack n
$ echo "3. Order Data Lookup (orderdata.php) - JavaScript Injection"
$ docker-compose run --remove-orphans nosqlmap \
--attack 2 \
--victim host.docker.internal \
--webPort 8080 \
--uri "/orderdata.php?ordersearch=test" \
--httpMethod GET \
--params 1 \
--injectSize 4 \
--injectFormat 2 \
--doTimeAttack n