找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

4851

积分

0

好友

663

主题
发表于 2 小时前 | 查看: 4| 回复: 0

技术实验图标

前言

在一次针对某银行的正式红队评估项目中,我们经历了为期两周的高强度对抗。项目最终成功触及核心业务区,但整个过程挑战重重,充满了技术博弈与策略调整。本文将完整复盘此次行动,希望能为红蓝双方提供一些实战视角下的攻防启示,这也正应了“未知攻,焉知防”的道理。

具体过程复盘

首先,我们通过一张评估流程图来概览整个行动的全貌,后续的复盘将围绕这张图展开。

某银行红队评估整体架构与攻击路径图

外网打点过程

对于银行这类高安全目标,没有0day漏洞通常难以突破边界。本次评估中,外网打点阶段我们付出了两个0day漏洞的代价:1. 通过供应链系统审计出的文件上传漏洞;2. 某文档在线预览系统的命令注入漏洞。

在内网横向阶段,则主要利用了:1. 某业务端口的Java反序列化漏洞;2. Websphere中间件多个端口的Java反序列化漏洞。

下图更直观地展示了从外网信息收集到内网核心区的关键攻击路径。
外网到内网的渗透路径示意图

1. 供应链系统的上传漏洞

通过目录扫描,我们发现了 /logs 路径,其中包含一些Web应用的报错日志。从日志信息中提取到了一个不常见的JAR包类名。

Java程序异常堆栈跟踪截图

随后,我们通过搜索引擎和代码托管平台,使用该关键字进行搜索,成功定位到了该系统的开发商。经过一系列信息搜集,最终获取了系统源代码。比对源码目录结构与目标网站后,确认是同一套系统。代码审计发现了一处后台文件上传漏洞,但需要登录后台才能利用。

在几乎无计可施时,我们翻阅了源码中的数据库初始化SQL文件,发现系统在启动时会默认执行这些SQL,并创建一个测试账号。利用这个默认的测试账号登录后台,成功上传Webshell,这个入口成为了后续内网横向的主要跳板。

2. ColdFusion反序列化

目标旗下某网站存在ColdFusion反序列化漏洞。关于该漏洞的利用细节,我在之前的文章中有详细讨论。我们利用该漏洞的代码执行能力获取了第二个Webshell权限。

这里分享一个经验:对于ColdFusion漏洞的利用,尽量使用直接执行命令的利用方式,避免使用出网的JRMPClient方式。后者在多次发包后,极易导致ColdFusion服务停止响应,具体原因不明,这是多次实战中踩过的坑。

ColdFusion反序列化攻击数据包截图

以此系统为起点尝试内网横向,但阻力巨大。目标网络隔离做得非常好,对于绝大多数内网IP,我们只能ping通,所有端口均不开放,因此不得不重返外网,寻找新的突破口。

3. 某文档在线预览系统命令注入

这是一个相对简单的命令注入漏洞,直接通过GET参数传递命令,由runtime执行。但该系统部署在云上,资产稀少,配置文件中也未发现云服务商的AK/SK等密钥。最终仅能查询到部分员工的姓名和用户名列表。

4. 网盘信息泄露

我们使用了网盘搜索技术,对多个与目标相关的敏感关键词进行检索,成功发现了一个员工离职交接文档的压缩包。解压后文件超过1GB,其中包含了大量的内部网络拓扑图和通讯录信息,这对我们理解目标网络架构、规划后续渗透路径起到了至关重要的作用。

需要说明的是,网盘搜索的效果因目标而异。对于那些经历过多次攻防演练的目标,通过公开网盘检索到有价值信息的概率已经大大降低,但在早期或防护意识稍弱的目标上,这仍是一个高效的信息收集手段。

百度网盘文件列表截图

内网横向过程

目标内网资产中,Websphere中间件和Oracle数据库数量庞大。因此,内网横向主要围绕以下两个方向展开:

  1. Websphere中间件漏洞。Websphere在8880、2809、9100、11006等多个端口上均存在Java反序列化漏洞,可利用其获取权限。
  2. Oracle数据库提权。通过翻找Web应用的配置文件,解密其中数据库连接密码,连接Oracle数据库后,再利用数据库提权漏洞获取服务器权限。

银行核心区架构与内网渗透路径图

外网其它漏洞

除了依靠0day突破,在外网我们还发现了大量Web应用层漏洞,包括SQL注入、短信炸弹、APP客户端漏洞、密码重置、Nginx解析漏洞、越权遍历等。这些漏洞虽然大多无法直接获取权限,但为我们收集了海量的敏感信息,为后续渗透提供了重要支撑。以下挑选几个有代表性的案例进行说明。

外网渗透测试漏洞类型汇总图

1. 培训系统上传漏洞,可上传HTML页面

如下图所示,系统允许直接上传HTML文件。如果在HTML中插入XSS代码,就相当于构造了一个存储型XSS漏洞;或者可以上传一个伪造的登录页面,用于水坑攻击。下图为本机环境测试效果。

网页表单文件上传界面截图

2. DOM型XSS漏洞

DOM型XSS由于其触发机制的特殊性,可以绕过绝大多数WAF的检测。
漏洞链接示例:
https://www.xxx.com/xxx/include/resources/reload.html#vbscript:msgbox(1)

VBScript弹窗执行成功截图

3. 任意文件读取漏洞

外网某系统存在任意文件读取,我们通过以下方式绕过了WAF的过滤,成功读取系统文件。
绕过WAF的任意文件读取请求包

4. 宽字节吃掉转义字符造成XSS

在某处输入点,无论怎么构造,XSS的Payload都会被包裹在双引号内,作为字符串处理而无法执行。此时尝试使用宽字节编码,可以“吃掉”用于转义的反斜杠\,从而突破限制执行XSS。如下图所示,图片无法正常显示(裂开),证明XSS代码已被浏览器解析执行。
宽字节XSS攻击导致图片渲染异常的页面截图

5. 短信炸弹绕过限制

该短信接口对同一手机号一分钟内的发送次数做了限制。但我们发现,可以在手机号参数后不断追加%20(空格的URL编码)来绕过这一限制。利用Burpsuite的Intruder模块,批量添加不同数量的%20,即可实现短信轰炸。
短信轰炸绕过限制的请求响应截图

6. 删除sign参数绕过校验

在某些场景下,重放数据包会返回“MAC校验失败”。本次案例中,我们尝试直接删除请求中的sign签名字段,结果请求成功通过,不再报错。
删除sign参数后请求成功的响应对比截图

7. 使用Frida解决APP参数加密

对于存在加密参数的手机APP,Frida动态插桩工具是解决问题的利器。以下是配置和使用过程的关键截图。
APP加密参数原始请求包
Android应用性能监控数据截图
Brida工具配置界面截图

8. 审计JS代码,解决Web传参加密

在前端JavaScript代码的登录事件处下断点调试,发现数据通过$.CryptoJS.encrypt(tempS, password, 256)函数加密,且加密密钥是固定值。直接使用对应的解密函数$.CryptoJS.decrypt(***, password);即可解密数据包。解密后,我们在业务逻辑中发现了多处越权漏洞。
Web请求加密参数数据包截图
JavaScript加密函数源码审计截图

9. 其它Web应用漏洞

此外,外网还发现一些常见的Web漏洞,虽不深入展开,但总结如下:

  1. Springboot框架的heapdump文件泄露,可从中还原出账号密码;同时/env端点泄露了内网IP地址,为内网渗透提供了方向。
  2. 公众号某链接跳转的第三方网站存在Nginx解析漏洞。获取权限后,发现该服务器是“孤岛”,除一个MySQL数据库外价值有限。
  3. 多处SQL注入漏洞,数据库均为Mysql且非root权限,深入利用困难,但获取了大量员工姓名、手机号和工号。
  4. Github源码泄露,搜索到了部分项目源码和相关邮箱。
  5. 外网业务系统存在逻辑漏洞,如越权查询交易记录、账单、还款计划等,手法多为篡改请求参数值进行测试。
  6. 某些“废弃”的上传功能,其接口地址仍在前端JS中,直接构造上传包可触发漏洞,但通常仅允许上传HTML文件。
  7. APP客户端漏洞:包括弱加壳(通过Xposed的callMethodDump类后反编译)、以及IPA客户端硬编码秘钥泄露(通过IDA Pro反编译发现)。

社会工程学攻击

如下图所示,我们尝试了多种社会工程学攻击手段,但整体收效甚微,主要原因是目标银行严格的出网策略限制了攻击效果。

社会工程学攻击路径与钓鱼尝试示意图

1. 微信聊天发送压缩包

结合前期收集和外网SQL注入获取的手机号列表,尝试添加微信好友并发送带有木马的压缩包。虽有个人设备上线,但办公网电脑完全不通外网且无法登录微信,此路径被放弃。

2. 邮箱伪造发信人地址攻击

检测发现目标邮件系统存在漏洞,可伪造任意发件人。使用Kali Linux的swaks工具,我们成功假冒银行信息部管理员身份发送了钓鱼邮件,且绕过了防钓鱼网关。遗憾的是,由于员工邮箱环境不通外网,最终无一台设备上线。

大致命令如下:

swaks --to zhangsan@xxbank.com.cn -f test@xxbank.com.cn --server mail.xxbank.com.cn -p 2525 -au --ehlo xxbank.com.cn --h-From "XXX银行信息部<admin@xxbank.com.cn>" --header "Subject:XXX银行信息部" --body "hello,您的邮件我已收到."

伪造银行内部邮件的界面截图

物理渗透阶段

在获得客户书面授权后,我们前往银行总行周边进行勘察。直接进入内部难度过大,因此重点转向无线网络。探测发现2个WiFi热点:其中一个已被“WiFi万能钥匙”类应用分享,可直接连接至测试区网络;另一个需要密码,该密码恰好在之前获取的内网文档中找到。两个热点均被成功接入,但都只能访问测试区或外网区。

内网WiFi热点渗透与横向移动示意图

随后,我们在附近放置连接了该WiFi的平板电脑,反弹出一个socks5代理供团队进行内网横向。然而,测试区与生产核心区完全隔离,无法连通办公网或业务网。在测试区发现的一些业务系统WAR包,成为了宝贵的信息来源。

此阶段的内网横向漏洞较为常规,包括利用MS17-010漏洞获取Windows权限、Zabbix系统的命令执行、API网关的管理员弱口令、移动办公系统的信息泄露以及商户管理系统的Shiro反序列化等,此处不再赘述。

总结与思考

  1. 银行红队评估门槛高:通常需要0day漏洞或深入的代码审计能力。当前,通过供应链系统的漏洞打入内网是常见路径,这凸显了供应链安全防护的极端重要性。
  2. 中低危漏洞的价值:外网那些无法直接获取权限的漏洞(如SQL注入、信息泄露),在渗透后期能提供关键的信息支撑,例如了解账号命名规则、定位内网IP段等。因此,及时修复这些漏洞同样必要。
  3. 物理安全不容忽视:无线网络热点的安全风险非常普遍。一个被共享的WiFi密码或一个“万能钥匙”类软件,就可能为攻击者打开一扇侧门。
  4. 云上资产可能暗藏玄机:对云上系统保持关注,其配置文件或代码中可能遗留云服务的AK/SK等访问密钥,一旦获取可能导致一片云服务器失守。
  5. 加密参数的处理:面对加密参数,移动APP可尝试使用Frida等动态调试工具;Web应用则可从前端JavaScript代码中寻找加解密逻辑。掌握这些方法能有效突破前端加密防线。

本次评估的完整复盘就到这里。网络安全是一场持续的动态对抗,每一次攻防实战都是对现有防御体系的压力测试。希望本文的分享能带来一些切实的参考价值。欢迎在云栈社区交流更多实战技术与防御思路。




上一篇:APT攻击技术:NSA入侵西北工业大学攻击链深度剖析与流程全图解析
下一篇:实战还原深度混淆Java程序:JADX MCP与Claude逆向分析指南
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-4-17 02:15 , Processed in 0.969054 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表