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