漏洞特征:
- redis绑定在- 0.0.0.0:6379,且没有进行添加防火墙规则避免其他非信任来源- ip访问等相关安全策略,直接暴露在公网;
- 没有设置密码认证(一般为空),可以免密码远程登录redis服务。
漏洞危害:
- 攻击者无需认证访问到内部数据,可能导致敏感信息泄露,黑客也可以恶意执行flushall来清空所有数据;
- 攻击者可通过EVAL执行lua代码,或通过数据备份功能往磁盘写入后门文件;
- 最严重的情况,如果Redis以root身份运行,黑客可以给root账户写入SSH公钥文件,直接通过SSH登录受害服务器
影响版本:
Redis 2.x,3.x,4.x,5.x
漏洞复现:
环境搭建:
下载并安装测试用的Redis,本次采用的是Centos7镜像:
| 1 | wget http://download.redis.io/releases/redis-2.8.17.tar.gz | 

解压安装包,进入目录安装radis:
| 1 | tar xzf redis-2.8.17.tar.gz | 

安装完成后,显示如下:
make结束后,进入src目录,将redis-server和redis-cli拷贝到/usr/bin目录下(这样启动redis-server和redis-cli就不用每次都进入安装目录了)
返回目录redis-2.8.17,将redis.conf拷贝到/etc/目录下:
| 1 | cp redis-server /usr/bin | 
使用/etc/目录下的reids.conf文件中的配置启动redis服务:
| 1 | redis-server /etc/redis.conf | 

服务启动成功,我们克隆这台虚拟机,一台作为攻击机,一台作为靶机
靶机ip为192.168.3.130
攻击机ip为192.168.3.137:
未授权访问复现
靶机启动radis服务:
使用redis客户端直接无账号成功登录redis:
| 1 | ./redis-cli -h 192.168.3.130 | 

从登录的结果可以看出该redis服务对公网开放,且未启用认证。
参考文章:
利用姿势可以参考这篇文章,感谢师傅的好文章!
https://www.cnblogs.com/bmjoker/p/9548962.html