0x00 前言
--学如逆水行舟,不进则退
0x01 简介
MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
0x02 漏洞简介以及危害
漏洞成因:
在刚安装完毕的时候 MongoDB 都默认有一个 admin 数据库,此时 admin 数据库是空的,没有记录权限相关的信息!当 admin.system.users 一个用户都没有时,即使 mongod 启动时添加了 —auth 参数,如果没有在 admin 数据库中添加用户,此时不进行任何认证还是可以做任何操作 (不管是否是以 —auth 参数启动), 直到在 admin.system.users 中添加了一个用户。加固的核心是只有在 admin.system.users 中添加用户之后,mongodb 的认证,授权服务才能生效
漏洞危害:
开启 MongoDB 服务时不添加任何参数时,默认是没有权限验证的,登录的用户可以通过默认端口无需密码对数据库任意操作(增删改高危动作)而且可以远程访问数据库。
0x03 漏洞复现
所需机器:
攻击机:kali
靶机:Centos7(192.168.166.129)
1.环境搭建
docker pull mongo //拉去镜像
docker docker run -d -p 27017:27017 --name mongodb mongo
启动之后,访问靶机ip:27017 ,出现以下图片,说明搭建成功
2.在kali中进行验证
msfconsole //启动msf
use auxiliary/scanner/mongodb/mongodb_login
set rhosts 192.168.166.129
set threads 10
exploit
可以使用 navicat
等工具连接,这里就不做演示了
0x04 漏洞修复
1.修改默认端口
2.不要开放服务到公网
3.禁用HTTP和REST端口