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