MongoDB
[//]: # (忙够DB)是一种流行的开源文档数据库管理系统(DBMS
),基于分布式文件存储的数据库属于NoSQL
数据库的一种。
开启MongoDB服务时不添加任何参数时,默认是没有权限验证的 登录的用户可以通过默认端口27017
无需密码对数据库任意操作(增、删、改、查高危动作)而且可以远程访问数据库
漏洞原理
未授权访问的根本原因就在于启动 Mongodb
的时候未设置 auth
无权限验证
Docker开启环境
镜像仓库中拉取漏洞镜像
plain
docker pull mongo

利用此镜像mongo
运行一个MongoDB容器,并将容器的27017
端口映射到主机的27017
端口容器的名称为mongodb
plain
docker run -d -p 27017:27017 --name mongodb mongo


IP
+端口访问成功

将docker
开启的27017
端口映射在物理机的27917
使用下面的命令并且管理员运行
plain
netsh interface portproxy add v4tov4 listenport=27917 listenaddress=0.0.0.0 connectport=27017 connectaddress=172.17.0.2
MSF
使用漏洞扫描模块配置相关信息就能够连接上了,看着很简单 但是我不行啊
plain
use auxiliary/scanner/mongodb/mongodb_login
show options
set rhosts 192.168.4.128
set threads 15
exploit

漏洞修复
- 在
admin
数据库中增加用户,设置复杂的密码; - 配置文件
/etc/mongod.conf
中,设置auth=true
; - 配置文件
/etc/mongod.conf
中,设置bind_ip=127.0.0.1
原始是0.0.0.0 代表允许其他主机连接 - 修改默认端口
27019