zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    第01组 Beta冲刺(5-5)
    第01组 Beta冲刺(4-5)
    第01组 Beta冲刺(3-5)
    第01组 Beta冲刺(2-5)
    第01组 Beta冲刺(1-5)
    软工实践个人总结
    第03组 每周小结 (3/3)
    第03组 每周小结 (2/3)
    第03组 每周小结 (1/3)
    第03组 Beta冲刺 总结
  • 原文地址:https://www.cnblogs.com/0nc3/p/12071289.html
Copyright © 2011-2022 走看看