2024 年第三季度,某大型银行总部启动了年度红蓝对抗演练。作为红队核心成员,我带领一支五人渗透小组,在为期两周的授权范围内对该行核心业务系统、办公网络及外围暴露面展开了全方位攻击模拟。这次行动不仅检验了该行纵深防御体系的真实水位,也暴露出多个令人警醒的安全短板。以下是我们团队从信息收集到最终获取域控权限的完整复盘。
演练开始前,我们花了整整三天时间进行目标画像。通过公开情报(OSINT)梳理出该行的技术栈、子公司拓扑、近期招聘信息中泄露的中间件版本,以及若干被遗忘在 GitHub 上的测试配置文件。这些信息为后续攻击路径的规划提供了关键支撑。
第一阶段:外围突破与信息收集
攻击的第一步是从互联网暴露面寻找切入点。我们使用子域名枚举工具对该行主域名及十余个关联域名进行了全面扫描,发现了三个被遗忘的测试环境站点。其中一个基于旧版 Struts2 框架搭建的项目管理平台引起了我们的注意——它的响应头暴露了框架版本,且存在已知的远程代码执行漏洞。
通过构造特制的 Content-Type 请求头,我们成功在该平台上实现了命令执行,拿到了第一台 Web 服务器的 Shell。这台服务器虽然处于 DMZ 区域,但其上保存的数据库连接字符串成为了我们进入内网的跳板。
第二阶段:内网横向移动与漏洞利用
进入内网后,我们首先对 DMZ 网段进行了端口扫描和服务识别。利用从 Web 服务器上获取的数据库凭据,我们成功连接了内网中的一台 Oracle 数据库。更关键的是,在这台数据库服务器的浏览器历史记录中,我们发现了一组 IT 运维人员访问内部 OA 系统时使用的管理员账号密码。
凭借这组凭据,我们登录了 OA 系统的管理后台。在后台的文件上传功能中,我们发现了一个未授权访问漏洞——上传接口没有进行任何权限校验,普通用户 Token 即可调用管理员专属的文件管理模块。通过这个漏洞,我们上传了一个 WebShell,进一步巩固了在内网中的立足点。
第三阶段:权限提升与域控获取
在 OA 服务器上,我们通过本地信息收集发现该机器加入了域环境,且当前 Shell 权限仅为普通域用户。利用 Windows 内核漏洞(CVE-2023-36874),我们成功将权限提升至 SYSTEM 级别。随后通过 Mimikatz 从内存中提取了多个高权限账号的 NTLM 哈希。
通过 Pass-the-Hash 攻击,我们使用提取到的哈希值在域内横向移动,最终在一台开发测试服务器上发现了域管理员的会话。利用 S4U2Self 和 S4U2Proxy 协议特性,我们构造了服务票据,成功获取了域控制器的管理权限。至此,整个攻击链闭环完成。
发现的三个高危漏洞
本次演练共发现三个高危级别漏洞:一是 SQL 注入漏洞,存在于该行信用卡申请系统的身份验证模块,攻击者可绕过登录验证直接查询后台数据;二是弱口令问题,多个内部系统的管理员账号使用了简单密码或默认密码,且未启用多因素认证;三是未授权访问漏洞,OA 系统的文件管理、审批流程等核心接口缺乏有效的权限控制,低权限用户可越权操作。
修复建议与总结
针对上述发现,我们提出了分优先级的修复方案。紧急修复项包括:修补 Struts2 远程代码执行漏洞、修复 SQL 注入点、强制所有管理员账号使用强密码并启用 MFA。中期改进项涵盖:对 OA 系统进行全面的权限梳理与接口鉴权加固、部署内网微隔离策略限制横向移动、建立常态化的红蓝对抗机制。
这次演练深刻揭示了一个事实:再多的安全设备堆叠,如果缺乏系统性的安全运营和定期的实战检验,防线依然脆弱。金融行业作为网络攻击的高频目标,更需要将安全能力建设从合规驱动转向实战驱动,真正做到以攻促防、持续改进。