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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM