NoSQLMap:开源自动化NoSQL数据库破解工具

华盟原创文章投稿奖励计划

NoSQLMap:开源自动化NoSQL数据库破解工具

  简介

  NoSQLMap是一款Python编写的开源工具,常用于审计NoSQL数据库中的自动注入攻击、为了 从数据库中揭露数据而利用NoSQL数据库或使用NoSQL的Web应用的 默认配置弱点。

  它这样命名是为了几年Bernardo Damele和Miroslav创作的流行的SQL工具SQLmap,它的设计理念来源于Ming Chow在Defcon中发表的很棒的演讲-”Abusing NoSQL Databases”。该工具目前主要应用于MongoDB,但是它在未来的版本中还会支持其他基于NoSQL的平台,如CouchDB, Redis和Cassandra等。当前该项目的目的是为简单攻击MongoDB服务器和一些web应用提供渗透测试工具,以及用通过概念攻击来证明某 NoSQL应用不会受到SQL注入。

  功能

  自动化MongoDB和CouchDB数据库枚举和克隆攻击。

  通过MongoDB web应用提取数据库名称、用户和哈希密码。

  为使用默认访问和枚举版本的MongoDB和CouchDB数据库扫描子网或IP列表。

  字典攻击、暴力破解恢复的MongoDB和CouchDB的哈希密码。

  针对MongoClient的PHP应用程序参数注入攻击,返回所有数据库中的记录。

  Javascript函数变量转移和任意代码注入,返回所有数据库中的记录。

  类似于盲SQL注入的用于验证无来自应用程序的反馈的Javascript注入漏洞的时序攻击。

  更多功能敬请期待!

  发布历史

  0.6 builds(在github社区简历完整版本,非常感谢众位优秀的贡献者完善功能和代码!)

  Web应用攻击,增加支持发送用户提供的headers(感谢gpapakyriakopoulos)

  Web应用攻击,迁移所有来自urllib到rullib2的requests到 support header input(感谢 gpapakyriakopoulos)

  修Bug,没有提供GET方法的url参数将会导致AttributeError异常(感谢gpapakyriakopoulos)

  接口,纠正输出中的拼写错误(感谢akash0x53)

  设置,增加新的安装过程,该过程使用Python的setuptool而不依赖BASH,并且它能够成功的独立安装(感谢akash0x53)

  实现第二阶段代码清理,剥离尾部空格(感谢akash0x53)

  0.5 builds:

  V0.5(主要版本):

  Web应用攻击,增加针对PHP/ExpressJS应用的$gt no value攻击。感谢 Petko D. Petkov!

  Web应用攻击,纠正影响PHP和ExpressJS关联数组的攻击的标签。

  一般,代码清理项目,每个NoSQL平台都是一个免费的可以被import其他代码的基于Python的模块。

  扫描器,增加支持CouchDB扫描及版本记录。

  网络攻击,增加支持CouchDB网络层,以及包括数据库复制和密码破解的访问攻击。

  一般,为主菜单增加更改平台以切换NoSQL平台和自动设置的正确选项。

  0.4 builds:

  v0.4b:

  修Bug,修复导致网络攻击认证无法使用的问题。

  v0.4a:

  为启动和异常处理实现了更好的Python结构。

  v0.4(GIANT主要版本):

  Web应用攻击,增加HTTPS支持。

  Web应用攻击,为检测和报告用于减少误报并提供额外的针对注入的监视NoSQL错误增加逻辑。

  一般,代码清理和组织项目的第二阶段。

  MongoDB扫描器,扫描器现在记录服务器上检测到的MongoDB的版本。

  MongoDB扫描器,来自结果/目标列表的飞默认访问模式的过滤的MongoDB目标。

  MongoDB扫描器,为版本大规模提速设置socket超时。

  MongoDB扫描器,在尝试简历MongoDB连接增加ping主机的能力。

  MongoDB扫描器,增加保存扫描器结果到CSV文件的选项。

  密码破解,增加暴力破解。

  网络攻击,为了直接访问需要的攻击而不是通过yes/no菜单获取所有攻击而更改对菜单驱动的界面攻击。

  网络攻击,增加自动化特使来检查、查看是否MongoDB服务器需要凭据和提示,如果需要凭据则不用要求用户指定。

  0.3 builds:

  v0.31:

  为yes/no输入处理修改代码。

  修复了当web应用不返回HTTP200响应时的漏洞

  v0.3(主版本):

  为使用POST方法的请求的注入测试增加测试版本支持。

  在使用MongoDB(MongoDB版本<2.4)的脆弱的web应用上增加提取数据库名称、数据库用户名和密码哈希的功能。

  从注入结果中获取一般的MongoDB版本检测。

  增加了针对不是运行在默认端口27017的MongoDB服务器的功能。

  增加用户输入合法IP地址验证。

  增加获取详细输出或默认标准输出的切换。

  UI清理和改进。

  增加使用CTRL+C清理退出。

  Bug修复:解决无法由主机名指定目标的bug。

  Bug修复:解决如果指定的凭据无法枚举服务器时,尝试枚举GridFS破解。

  Bug修复:解决如果指定的凭据无法枚举服务器时,尝试窃取数据库破解。

  Bug修复:在没有目的IP被设置为数据库克隆的情况下增加处理方法。

  使用更简单的逻辑增强功能检查结果。

  实现第一阶段大规模代码清理。

  0.2 builds:

  v0.2(主要版本!):

  增加子网或IP列表的完整扫描获取默认MongoDB访问,增加直接发送目标到NoSQLMap功能。

  增加针对存储的MongoDB密码哈希的字典攻击。

  在Debian和红冒系统中增加一个安装shell脚本来自动操作依赖安装。

  增加存储在GridFS中的文件枚举。

  增加解析来自Burp Suite存储的HTTP请求来填充选项。

  增加数据库复制通知,但是文本索引无法被移动。

  修正一些小的口错误,改进UI,如执行模块时的标题。

  咋想代码清理及bug修复。

  0.1 builds:

  v0.15b,当解析URL/参数且选项设置不正确时会抛出异常,此时增加错误处理。

  v0.15a,修正一个导致web应用在特定环境崩溃的bug;修复会导致额外的&被添加到.this注入URL末尾的bug。

  v0.15,增加Mongo认证支持;增加集合名称枚举;增加提取数据库用户、角色和密码哈希;修复会导致攻击者本地IP无法加载的bug。

  v0.1(主要版本):

  增加不同于注入的攻击以返回所有数据库记录。

  增加基于类似于传统盲SQL注入攻击的计时。

  输出结果可以被储存成一个文件。

  URL参数选择部分的UI改进。

  增加加载和保存攻击选项功能。

  增加选择输入随机参数格式功能(如,字母数字、仅字母、仅数字、电子邮件地址)。

  修复当web应用无法回应基本请求的崩溃。

  0.0 builds:

  v0.09,改进输出;修复整数注入测试的bug;增加一些代码注释。

  v0.08,修复破损的针对Mongo的Metasploit漏洞。

  v0.08,一些错误处理和bug修复;改进选项菜单的UI。

  v0.06,首次公开发行。

  未来发展

  支持更多平台

  支持更复杂的攻击

  更好的攻击利用

  优化代码

  系统要求

  在Debian或者红帽系统上,使用root权限运行setup.sh脚本,自动安装NoSQLMap依赖。

  不同的使用的功能:

  Metasploit框架;

  拥有PyMongo的Python;

  httplib2;

  现有的urllib。

  一个本地默认MongoDB实例对数据库进行复制。点击 这里 查看安装说明。

  还有一些需要的常见的Python库。你需要的东西可能有所不同,所以请检查脚本。

  sudo python setup.py install

  用法

  NoSQLMap

  NoSQLMap使用一个菜单建立攻击。当开始NoSQLMap时,你会看到主菜单:

NoSQLMap:开源自动化NoSQL数据库破解工具

  菜单说明

  1.设置目标host/IP-目标web服务器(如 www.google.com )或者任何你想要攻击的MongoDB服务器。

  2.设置web应用端口-如果一个web应用成为目标,为web应用设置TCP端口。

  3.设置URI路径-部分URI包含页面名称及任何非主机名称的参数(如 /app/acct.php?acctid=102)。

  4.设置HTTP请求方法(GET/POST)-设置请求方法为GET或POST;现在只能使用GET方法但是后续会增加POST方法。

  5.设置我的本地Mongo/Shell IP-如果直接攻击一个MongoDB实例,设置这个选项到目标Mongo安装的IP来复制受害者服务器或打开Meterpreter shell。

  6.设置shell监听端口-如果开放Meterpreter shell就会指定端口。

  7.加载选项文件-加载一个之前1-6中保存的设置。

  8.从保存的Burp请求加载选择-解析来自Burp Suite的已保存的请求,并填充Web应用选项。

  9.保存选项文件-为未来使用保存1-6中的设置。

  x.返回主菜单-使用这个选项开始攻击。

  github地址: https://github.com/tcstool/NoSQLMap

原文地址:https://hack.77169.com/201602/224507.shtm

本文原创,作者:华盟君,其版权均为华盟网所有。如需转载,请注明出处:https://www.77169.net/html/17850.html

发表评论