前言
在某次红蓝对抗任务中,我们对某目标单位展开了一次渗透演练。这篇文章将记录完整的攻击路径和思考过程,从信息收集、应用漏洞利用,到云上凭证的获取与横向移动。
——信息收集的深度,往往决定了渗透的广度。
开局:从资产测绘到 Fastadmin 框架识别
拿到目标域名后,第一步永远是信息收集。考虑到目标资产大多部署在 云上,我们围绕企业备案信息和旗下各类子域名,利用 Hunter、Fofa、360Quake 等工具进行线索扩展。同时,还尝试了一款名为 无影TscanPlus 的资产测绘工具,配置好各类 API Key 后,它的信息聚合能力相当不错,配合会员功能还能提供全量 POC,不过即便是免费版也已足够帮助我们完成初步的资产摸排。
随后在筛选资产的过程中,一个眼熟的界面跳了出来——fastadmin。作为一名经常处理灰产站点的老手,几乎一眼就能确认它的框架身份。通过浏览器插件 findsomething 查看 JS 路径,fastadmin 的字样也印证了判断。
此时,第一反应是:该不会这就拿下了?
Fastadmin 漏洞利用:从任意文件读到数据库接管
冷静下来之后,立刻想到 fastadmin 之前爆出过 任意文件读取漏洞。尝试发送以下请求:
GET /index/ajax/lang?lang=../../application/database
很幸运,漏洞是存在的,我们成功读到了数据库配置文件,拿到了数据库的账号和密码。
接下来需要找到真实 IP 地址,并确认 3306端口 对外开放。通过 多地ping 解析发现,目标并未启用 CDN服务,这意味着域名直指源站。用 Nmap 扫描后,3306端口 果然开放,直接连上数据库,发现存放了近 20 万条个人身份信息,算是一个小战果。
有了数据库权限,下一步自然是尝试进后台拿 shell。fastadmin 的密码都经过加盐处理,通常难以直接解密。但我突然想到可以通过修改密码的方式来绕过验证:在网上找一组 fastadmin 已知的密码盐值,然后更新了管理员密码为 123456,顺利登录了后台。后台系统中查看到大约 4 万条数据,其中不乏实名认证信息。
Fastadmin 后台获取 shell 一般需要一定条件,但多亏一位朋友的深度交流,最终通过后台成功拿到 shell,看到了网站下部署的服务。经典的框架加文件结构告诉我,这是一个单机应用,而且部署在云上,所以没有再进一步深入内网。

复盘时发现,虽然打掉了这个管理后台,但它实际上是主域名下的一个子域或旁站,并不是最核心的目标主 IP,方向稍偏,不过弹药还未用完。
第二波打击:Jeecg-Boot 未授权与积木报表 RCE
在资产列表中,又看到了另一个熟悉的框架——jeecg-boot。通过未授权访问,径直登入了其管理后台。看到这套系统的版本号,心里大致有数了:多半存在已知的 RE 漏洞。
直接用工具 I-Wanna-GetALL 一把梭,尝试利用积木报表的历史漏洞 RCE。用 Vshell 上线时遇到点环境问题,接连失败,但改用 msf 后,成功获取了服务器控制权。
这是一台双网卡的云服务器,意味着它可能连接着更内部的网络。
翻垃圾也能出奇迹:JS 中泄露的阿里云 AK/SK
在排查这台服务器的文件以及过往收集到的前端静态资源时,我养成了一个习惯:每当看到 js 或 config 类的文件,都会随手翻一翻 URL 和源码。这次,在一处目标的 JS 文件中,赫然发现了 阿里云 OSS 存储桶的 AK/SK。
阿里云的 AK 通常以 LTAI 开头,这个特征非常明显,一眼就能分辨。拿到凭证后,用云上工具 CF 快速列举了一下权限(工具手册可参考 CF 官方文档)。不出所料,这是一个拥有 AdministratorAccess 最高管理权限的密钥。
通过 CF 我们看到这个 AK/SK 下关联了 50+ 个 ECS 实例、6+ 个域名、3+ 个数据库服务,以及多个 OSS Bucket。这样的权限级别已经可以直接接管整个云账号。
随后,我们通过创建自定义凭据,成功获得了 阿里云的控制台权限。需要注意的是,使用 CF 创建后门用户会触发阿里云的安全告警,容易打草惊蛇,所以在非必要的情况下不要采取这种操作,项目结束后也要及时清理后门,以免留下把柄。
接着,通过列出 ECS 实例,针对关键服务器执行命令或反弹 shell,短时间内就将 10+ 台云服务器 纳入控制。由于关键堡垒机已经拿下,剩余的机器便没有必要再逐台上线了。
云内网横向:Nacos、泛微与落满灰尘的配置文件
在云上站稳脚跟后,我们通过搭建隧道工具(如 CloudFlare Tunnel 等),进入了云上内网空间。在翻阅内网资产时,发现了 泛微 E-Mobile、Nacos 等服务。
Nacos 的配置文件里,赫然暴露了一组用于 SSH 远程管理的账密和一套完整的数据库连接信息,可以直接拿数据。
对于泛微 E-Mobile,最初在公网上尝试使用其历史漏洞进行读取时,总是遇到 302重定向 或“资源不存在”的提示,猜测可能是接口做了额外鉴权。不死心,转战内网并再做实验:最开始尝试读取 Linux 风格的 /etc/passwd,返回 302,心里凉了一大截。但突然灵光一现,这服务器会不会是 Windows 系统?于是改为读取 windows/win.ini,果然文件内容成功返回!渗透就是这样,任何一个细节都可能成为突破口。
之后便是漫长的翻找过程,从服务器上散落的 Gitlab 配置文件,到 Apixis 等服务的密钥,各种云上垃圾堆中挖到的零散配置,汇聚成了越来越完整的权限拼图。
后续,企业安全人员觉察到了入侵行为,并紧急采购了阿里云的一系列防护服务,不过全部的攻击过程与取证链已经记录完毕。
总结
这次红蓝演练虽然不算特别出彩,但整个过程颇为流畅:从信息收集切入,一路打穿外网应用,拿到数据库和 shell,再到通过 JS 文件泄露的 AK/SK 横向至云平台,最终在内网中翻找各类配置信息。目标一天之内被全程打穿。
攻防演练的最终目的并不是为了攻击,而是帮助企业在真实的威胁场景下,审视自身的防御水位,提升由人到技术再到流程的整体安全意识。我们也在这次经历中学到了不少云上攻防的小技巧,希望这些杂乱的记录能给正在阅读的朋友带来一些启发。