漏洞特征:
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