1
漏洞简介
开启MongoDB服务时不添加任何参数时,默认是没有权限验证的,登录的用户可以通过默认端口无需密码对数据库任意操作(增、删、改、查高危动作)而且可以远程访问数据库。
造成未授权访问的根本原因就在于启动 Mongodb 的时候未设置 --auth 也很少会有人会给数据库添加上账号密码(默认空口令),使用默认空口令这将导致恶意攻击者无需进行账号认证就可以登陆到数据服务器。
2
漏洞复现
环境介绍
目标靶机: Kali
ip地址: 192.168.18.128
连接工具:Xshell
环境搭建
这里使用docker (https://www.runoob.com/docker/docker-tutorial.html 可自行Google)
docker search mongodb # 从Docker Hub查找镜像
docker pull mongo #从镜像仓库中拉取或者更新指定镜像
docker images mongo #列出本地主机上的mongo镜像
docker run -d -p 27017:27017 --name mongodb mongo # 创建一个新的容器并运行一个命令
docker ps -a # 显示所有的容器,包括未运行的
普通检测
这里使用 NoSQLBooster
下载地址:https://nosqlbooster.com/downloads
nmap检测
nmap -p 27017 --script mongodb-info <target>
地址:http://nmap.org/svn/scripts/mongodb-info.nse
3
防御手段
1、修改默认端口
修改默认的mongoDB端口(默认为: TCP 27017)为其他端口
2、不要开放服务到公网
vim /etc/mongodb.conf
bind_ip = 127.0.0.1
3、禁用HTTP和REST端口
4、为MongoDB添加认证
MongoDB启动时添加--auth参数、为MongoDB添加用户
参考来源:
https://blog.csdn.net/Fly_hps/article/details/117676032
https://blog.csdn.net/syy0201/article/details/103577438
声明:文中技术主要用于学习研究,侵权必须删。
推荐阅读:
▶【渗透实战系列】27|-对钓鱼诈骗网站的渗透测试(成功获取管理员真实IP)
▶【渗透实战系列】25|一次从 APP 逆向到 Getshell 的过程
▶【渗透实战系列】24|-针对CMS的SQL注入漏洞的代码审计思路和方法
▶【渗透实战系列】18-手动拿学校站点 得到上万人的信息(漏洞已提交)
▶【渗透实战系列】|17-巧用fofa对目标网站进行getshell
▶【渗透实战系列】|15-博彩网站(APP)渗透的常见切入点
▶【渗透实战系列】|12 -渗透实战, 被骗4000花呗背后的骗局
▶【渗透实战系列】|10 - 记某色X商城支付逻辑漏洞的白嫖(修改价格提交订单)
▶【渗透实战系列】|9-对境外网站开展的一次web渗透实战测试(非常详细,适合打战练手)
▶【渗透实战系列】|8-记一次渗透测试从XSS到Getshell过程(详细到无语)
▶【渗透实战系列】|6- BC杀猪盘渗透一条龙(文末附【渗透实战系列】其他文章链接)
▶【渗透实战系列】|1一次对跨境赌博类APP的渗透实战(getshell并获得全部数据)
点分享
点收藏
点点赞
点在看
本文始发于微信公众号(Hacking黑白红):MongoDB 未授权访问漏洞复现和防御手段
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论