查看: 33651|回复: 22

[工具专区] NoSQLMap:开源自动化NoSQL数据库破解工具

[复制链接]
  • TA的每日心情
    奋斗
    2024-1-11 16:11
  • 签到天数: 426 天

    [LV.9]以坛为家II

    发表于 2016-2-22 22:31:08 | 显示全部楼层 |阅读模式
    简介

    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时,你会看到主菜单:

    1-Set options (do this first)
    2-NoSQL DB Access Attacks
    3-NoSQL Web App attacks
    4-Scan for Anonymous MongoDB Access
    x-Exit
    1-设置选项(第一步操作)
    2-NoSQL DB 访问攻击
    3-NoSQL Web应用攻击
    4-扫描匿名MongoDB访问
    x-退出
    菜单说明

    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
    回复

    使用道具 举报

    该用户从未签到

    发表于 2016-2-23 06:19:04 | 显示全部楼层
    支持中国红客联盟(ihonker.org)
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2022-10-21 10:32
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    发表于 2016-2-23 11:23:17 | 显示全部楼层
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2016-2-25 04:17:44 | 显示全部楼层
    感谢楼主的分享~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2016-2-25 17:47:02 | 显示全部楼层
    还是不错的哦,顶了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2016-2-26 17:11:30 | 显示全部楼层
    学习学习技术,加油!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2016-2-27 03:54:28 | 显示全部楼层
    感谢楼主的分享~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2016-2-27 15:04:31 | 显示全部楼层
    还是不错的哦,顶了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2016-2-28 23:36:05 | 显示全部楼层
    感谢楼主的分享~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2016-2-29 06:41:51 | 显示全部楼层
    支持,看起来不错呢!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    指导单位

    江苏省公安厅

    江苏省通信管理局

    浙江省台州刑侦支队

    DEFCON GROUP 86025

    旗下站点

    邮箱系统

    应急响应中心

    红盟安全

    联系我们

    官方QQ群:112851260

    官方邮箱:security#ihonker.org(#改成@)

    官方核心成员

    Archiver|手机版|小黑屋| ( 苏ICP备2021031567号 )

    GMT+8, 2024-5-6 04:22 , Processed in 0.056703 second(s), 14 queries , Gzip On, MemCache On.

    Powered by ihonker.com

    Copyright © 2015-现在.

  • 返回顶部