提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

mongodb未授权访问,是指数据库对访问用户没有权限限制导致用户可通过端口访问随意对数据库进行操作(增、改、查、删)。

原因是mongodb数据库安装完成之后默认空口令致使攻击者无需账号就可以登录。

一、mongodb是什么?

mongodb数据库是由C++编写,主要是为了提供web应可用扩展的一种高性能数据库,支持的数据类似json的bson格式。

特点:支持的查询语言非常强大可以实现类似关系数据库查询的大多数功能,可建立索引。

二、环境搭建

1.测试机器

攻击机:kali

靶机:Ubuntu(使用docker进行环境搭建)

2.靶场搭建

首先下载Ubuntu系统

下载地址:Enterprise Open Source and Linux | Ubuntu

下载完成后可装入vmware虚拟器中

vmware下载地址:https://customerconnect.vmware.com/downloads/#products_atoz

虚拟机安装镜像文件教程网上较多这里基本不在讲述。

使用Ubuntu进行docker安装

命令:docker pull mongo 进行镜像仓库拉取

显示需要安装docker,我们安装提示安装docker

命令:sudo snap install docker(注意安装不成功可能是网不好)

再次拉去mongodb镜像文件

命令:sudo docker pull mongo

命令:docker  images  mongo

创建容器并将mongodb运行

命令:docker run -d -p 27017:27017  mongo

查看运行的容器

命令: docker ps -a   看到端口已经开放

kali 攻击机进行攻击

 使用kali自带的nmap可以进行端口扫描

nmap -p 27017 192.168.91.141

 2.漏洞利用 参考:(64条消息) MongoDB 未授权访问漏洞利用_TaibaiXX1的博客-CSDN博客

 在kali里面安装

 官方文件

https://docs.mongodb.com/manual/tutorial/install-mongodb-on-debian/

1.导入MongoDB公共GPG密钥:

wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
如果提示错误运行下面命令之后,重新运行上面命令

sudo apt-get install gnupg
2.创建一个列表文件来配置下载列表和下载源。

echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/5.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
3.重新加载更新源

sudo apt-get update
4.安装MongoDB的最新稳定版本

sudo apt-get install -y mongodb-org
5.启动进程

sudo systemctl start mongod
如果您在启动mongod时收到类似于以下内容的错误:

Failed to start mongod.service: Unit mongod.service not found.
首先运行以下命令:然后再次运行上面的开始命令,然后再次运行上面的开始命令。

sudo systemctl daemon-reload
 6.配置开机自启

sudo systemctl enable mongod
 

7.使用命令进行连接

mongo  --host  目标IP --port  目标端口

查看版本

 三、漏洞修复

1.外网不使用的前提下,建议将mongodb在本地使用。

2.配置防火墙的访问控制策略,需要访问的加白名单。

3.开启基于权限角色的登录认证服务。

4.将默认端口修改为其他端口。(配置文件mongodb.conf)

详细可参考:MongoDB数据库未授权访问漏洞防御最佳实践 (aliyun.com)

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐