MongoDB 未授权访问漏洞复现学习

0x00 漏洞简介

  • 开启MongoDB服务时不添加任何参数时,默认是没有权限验证的,登录的用户可以通过默认端口无需密码对数据库任意操作(增、删、改、查高危动作)而且可以远程访问数据库。

  • 造成未授权访问的根本原因就在于启动 Mongodb 的时候未设置 --auth 也很少会有人会给数据库添加上账号密码(默认空口令),使用默认空口令这将导致恶意攻击者无需进行账号认证就可以登陆到数据服务器。

0x01 环境搭建

测试机:Kali
靶机:Ubuntu16.04
使用docker搭建环境

1、从镜像仓库中拉取或者更新指定镜像

docker pull mongo

在这里插入图片描述
2、列出本地主机上的mongo镜像

docker images mongo

在这里插入图片描述
3、创建一个新的容器并运行一个命令

docker run -d -p 27017:27017 -name mongodb mongo

显示所有的容器,包括未运行的

docker ps -a

在这里插入图片描述

0x02 漏洞证明

MongoDB默认端口一般都为27017,当配置成无验证时,就会存在未授权访问。
先查看DockerIP

打开msf使用如下命令:

use auxiliary/scanner/mongodb/mongodb_login
set rhosts 172.17.0.1
set threads 10
exploit

在这里插入图片描述
555 为啥连不上
在这里插入图片描述
端口filtered…
找到了一篇博客解决
https://blog.csdn.net/Homewm/article/details/88672554

$docker inspect mongodb | grep IPAddress

在这里插入图片描述
打扰了 原来dockerip是172.17.0.2
将docker中的27017映射到靶机的27917端口

iptables -t nat -A DOCKER -p tcp --dport 27917 -j DNAT --to-destination 172.17.0.2:27017

nmap扫下
在这里插入图片描述
open~~
在这里插入图片描述
耶终于成了!!!

0x03 防御手段

1、修改默认端口
修改默认的mongoDB端口(默认为: TCP 27017)为其他端口
2、不要开放服务到公网

vim /etc/mongodb.conf
bind_ip = 127.0.0.1

3、禁用HTTP和REST端口
4、为MongoDB添加认证
MongoDB启动时添加--auth参数、为MongoDB添加用户

0x04 参考

https://xz.aliyun.com/t/6103#toc-1
https://blog.csdn.net/Homewm/article/details/88672554

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值