低调学安全

用户实战:2.5 小时,7 台 Root —— CyberStrikeAI 打穿灰产跳转链

投稿类型:CyberStrikeAI 用户实战复盘
测试性质:授权渗透测试
目标类型:某色情/灰产跳转站及其关联基础设施
工具平台:CyberStrikeAI — AI 原生安全测试平台


Image

写在前面:暗礁、声呐与航线

复盘这次实战,笔者习惯用一个比喻概括人机关系:

CyberStrikeAI 是船上的动力与声呐——能持续航行、能探测水下;模型决定回波读得准不准、暗礁标不标得出来。航线要你定:追不追这条链、先测绘还是先凿穿。能走多远,先看水底藏着多少暗礁,再看声呐、判读与航线校准能不能对齐。

平台驱动探测、模型串联研判,人在关键处校准航线——测不测跳转终点、先确认还是先拿 shell、新战果往哪延伸。一环配不上,暗礁再密也到不了。

这篇投稿想讲的,不是「AI 一键拿下」,而是一条真实、曲折、多次对齐意图的攻击链:人不断说清楚「我要什么」,AI 据此调动工具与推理;人说停、说换方向,对话的优先级立刻跟着变。

声明:文中目标域名、IP、密钥、密码、钱包地址均已脱敏。测试在合法授权范围内进行,请勿将文中技术用于未授权系统。


攻击链总览

在深入细节之前,先看最终成型的完整链路(测试者整理):

Image
完整攻击链
入口域名(跳转站)
    → 中间站 search.php 跳转链
    → 最终应用站(随机子域策略)
    → Nmap 发现 9090 / postjson
    → /tool/ajaxpost SSRF(无认证)
    → formdata 模式 cy=3 + @file= 任意文件读取(ROOT)
    → 读取 /root/.ssh/id_ed25519
    → SSH root@目标 → uid=0(root) ✅
    → 内网横向 → 7 台服务器 Root RCE

下面按时间线,拆解这条链是如何一步步「长」出来的。


0|前期信息收集:别急着打,先看清对手在玩什么

测试者的第一条指令很朴素:

Image
初始指令:对二级域名深入测试

CyberStrikeAI 接到任务后,没有上来就丢 SQLMap,而是按标准流程做被动+主动信息收集:子域名枚举、证书透明度、前端 JS 审计、历史路径探测。

从前端 common.js 中,AI 迅速提炼出业务 API 结构——登录走 GET/POST /login,注册需要 注册类型 参数,当前仅开放邮箱登录:

Image
common.js 审计结果

协作要点:AI 能执行枚举与审计,但测试者一开始就明确「深入二级域名」——这条意图让后续子域爆破、中间站发现有了方向。灰产站点往往入口域名只是冰山一角,先把范围说清楚,比事后补救高效得多。


1|发现重定向:你以为的目标,可能根本不是目标

信息收集很快撞上第一道墙——跳转。

CyberStrikeAI 输出态势更新:

Image
态势更新:跳转站特征

关键发现:

  • 当前站点本质是跳转站,请求被导向 Azure Blob Storage 上的倒计时跳转页
  • 直连 443 且 Host 不匹配时,302 到另一域名
  • 历史后台路径 /admin/ 同样被重定向
  • 存在泛域名证书,暗示还有隐藏虚拟主机

很多自动化扫描到这一步就会停:「站点无实质内容,风险低。」

但跳转站恰恰是灰产架构的流量分发层——真正的业务、支付、管理,往往在链路下游。


2|停止操作,把「跳转目标」也纳入攻击面

这是本篇第一次意图对齐。

其实 AI 已经识别出跳转特征(见上一节态势更新),但当前任务仍聚焦在入口域名。测试者主动取消任务,把想法说清楚:

Image
用户取消任务并扩展目标

对跳转的目标站与目标站子域名也进行测试

一句话,攻击面从「一个域名」扩展成「整条跳转链路」。后面所有突破,都源于这次范围意图的补全——不是 AI 想不到,是测试者把「跳转终点也算目标」这条规则明确写进了对话。


3|摸清全部跳转策略:随机子域 + 中间站 + 对象存储

扩展目标后,CyberStrikeAI 梳理出完整跳转拓扑:

Image
完整跳转链路与关键站点
角色
特征
最终应用站
随机子域名策略,每次访问子域可能不同
中间跳转站
nginx,/ 返回 403,/search.php 需 q 参数
存储层
Azure Blob,存在容器枚举可能

AI 随即计划用 ffuf 做子域爆破、换 Host 头探虚拟主机、探测跳转终点——链路梳理、工具编排、突破口排序,AI 都能推进;测试者要做的,是在关键节点确认「继续沿这条链打」还是「换一条线」。


4|中间站破局:9090 端口与 postjson

在中间跳转站上,Nmap 结果让局面豁然开朗:

Image
Nmap 发现 9090 postjson
端口
服务
备注
21
Pure-FTPd
可能存在匿名登录
22
OpenSSH 9.6
常规 SSH
80/443
nginx + WAF
SQLi、路径穿越被拦
3306
MySQL
对外开放
9090Golang postjson 在线工具高价值目标

WAF 封死了常规 Web 漏洞路线,但 9090 上这个「在线 JSON 工具」像是开发/运维留下的内部瑞士军刀——往往没走 WAF、没做鉴权。

CyberStrikeAI 标注其为高价值目标并准备实测。到这里,声呐第一次扫到硬茬了。


5|SSRF 确认:无认证的内网代理

对 postjson 的探测确认了多个危险能力:

Image
9090 postjson 能力清单
  • SSRF:/tool/post、/tool/ajaxpost WebSocket 发起任意请求
  • 内网端口扫描:/tool/wsport
  • HTTP 代理/抓包:/tool/ajaxproxy
  • 静态文件服务:/s/ 目录可能泄露文件

这是一个未授权 SSRF + 内网探测的组合拳。在授权测试中,这意味着测试者获得了从公网单点透视内网的能力。


6|SSRF 打内网:Redis、MySQL、本机 9090 全部现身

深度利用 SSRF 后,内网服务逐一确认:

Image
SSRF 深度利用结果
地址
结果
127.0.0.1:3306
MySQL 内网监听确认
127.0.0.1:6379Redis 内网监听确认
(EOF 表明 Redis 接收了连接)
127.0.0.1:9090
获取到完整页面内容

到这一步,攻击链的「内网层」已经浮现:数据库、缓存、本机 Web 服务都在 SSRF 射程内。


7|第二次对齐:把优先级从「验证」切到「拿 RCE」

发现 Redis 之后,AI 已经确认内网服务、也在沿 SSRF 继续探测——但当前对话的优先级仍偏「摸清攻击面」。测试者此时要做的,是把下一阶段的目标讲明白:

Image
重新明确目标:必须拿下 RCE

必须通过任何漏洞拿下服务器的 RCE

这不是否定 AI 前面的工作,而是渗透里很常见的目标函数切换:同一套 SSRF,可以先做内网测绘,也可以立刻推进利用。测试者把意图从「继续确认」改成了「必须出 shell」——指令一变,AI 后续的动作序列立刻跟着变:文件读、Redis 盲写、私钥提取,都是在这句交代之后密集展开的。

同一片水域,声呐继续测绘还是直凿暗礁,取决于你当下有没有把优先级说清楚。


8|任意文件读取:@file= 与 ROOT 进程

明确「必须 RCE」之后,CyberStrikeAI 在 postjson 的 formdata 模式(cy=3)下,通过 @file= 参数打通任意文件读取,且进程以 root 身份运行:

Image
任意文件读取漏洞确认

关键情报:

  • 进程名 ouapi,工作目录 /www/wwwroot/...
  • Uid: 0 —— 读取即高权限
  • AI 建议路径:SSH 私钥 + Redis 配置/密码

同时,通过 SSRF 还摸清了内网文件上传功能与 Web 目录结构——为下一步写马、写 cron 提供了落点。文件上传本身虽未直接 RCE,但配合 SSRF 的 @file= 读取,形成了「读配置 → 找路径 → 写 Webshell」的闭环。


9|Redis 盲写 + SSRF:从「能连 Redis」到「能执行命令」

仅有 Redis 监听还不够。测试者与 AI 配合,走了一条更刁钻的路:SSRF POST 向 Redis 发命令(盲写),再用 @file= 读回落地文件验证。

Image
Redis 盲写突破

突破性进展:

  1. Redis 盲写成功 —— 读到了 /var/spool/cron/... 中已有 cron 任务
  2. Web 根目录确认 —— /www/wwwroot/...,且支持 PHP
  3. 宝塔面板数据库凭证已获取

AI 的判断很清晰:「Redis 命令通过 SSRF POST 确实在盲执行,现在把 Webshell 写到 PHP 可解析的 Web 根目录。」

这是典型的多漏洞链式利用——单点 SSRF 或单点文件读,都未必直接 RCE;但 SSRF 打 Redis + 文件读验证 + 已知 Web 根,RCE 线索就齐了。


10|SSH 私钥到手:从文件读到系统权限

任意文件读取的最终战果,是 /root/.ssh/id_ed25519:

Image
SSH 私钥获取成功

CyberStrikeAI 在第 60 轮对话中执行密钥落地与 SSH 登录,终端回显:

Image
SSH 登录获取 Root
uid=0(root) gid=0(root) groups=0(root)
Linux PC-AA03-A1 6.8.0-31-generic #31-Ubuntu SMP ...

第一台服务器,Root RCE,达成。


11|第三次对齐:把新战果和下一阶段意图一并交给 AI

拿到第一台后,若停手,这只是「单点突破」。测试者把新拿到的 root 账号密码交给 AI,同时说清下一步要打什么:

Image
内网横向指令

添加 [目标] 一个 root 账号和密码,然后进行内网横向拿下更多服务,访问数据库拿到更多信息。

AI 能扫内网、读配置、连库——但新凭证从哪来、拿到第一台之后要不要横向、先打主机还是先挖库,这些需要测试者主动同步。信息一到位,AI 的执行面立刻扩大。


12|数据库凭证、Telegram Bot Key 与多服务泄露

横向与本地取证后,敏感配置集中爆发:

Image
多服务凭证泄露
  • MySQL 数据库连接串
  • Telegram Bot(飞机机器人)Token
  • API Token
  • 宝塔面板 入口与凭据
  • 关联域名资产

其中一笔「意外之财」来自记账系统——明文存放了大量服务器的 SSH/RDP 凭据:

Image
记账系统泄露 SSH/RDP 明文

灰产团队为了运维方便,把全家桶密码写进「记账系统」。对攻击者这是金矿,对防御方这是灾难级配置错误。


13|泄露面一览:一个入口,整条供应链

到这一步,泄露的不只是某台机器,而是整条业务供应链:

类型
价值
跳转/中间站
流量分发、域名轮换
应用站
用户数据、业务逻辑
支付库
USDT 订单与钱包
记账系统
全员服务器明文密码
IM 机器人
运营通知、可能含管理指令
宝塔/API
运维入口、批量控机

一个 9090 的 postjson,撕开了整条灰产基础设施的封口。


14|7 台服务器全部 Root RCE

凭借私钥、记账系统明文密码、横向扫描与凭证复用,测试者最终清点战果:

Image
7 台服务器 Root RCE 清单
#
维度
说明
数量
7 台
全部 Root 级 RCE
维度
IP / 位置 / 系统 / Hostname
完整资产画像
方式
密码 / 密钥 / 利用链
多种入侵路径并存

其中一台的 RCE 确认:

Image
RCE 成功 Root 权限

uid=0(root) —— 完全控制服务器


15|钱包地址:从技术漏洞到资金链路

渗透不止于 uid=0。支付数据库被完整导出后,USDT 钱包地址浮出水面:

Image
USDT 支付库与钱包地址
  • 活跃收款地址
  • 已删除历史地址

这说明该站点背后有完整的加密货币收款闭环。对执法与风控而言,钱包地址往往是追溯犯罪团伙的关键锚点;对安全测试而言,这是证明「业务影响」而不仅是「技术影响」的证据。


16|完整攻击链复盘:人 + AI 各做了什么

把 16 个阶段压缩成一张分工表:

阶段
CyberStrikeAI 做了什么
测试者传递了什么意图
信息收集
ffuf/nmap/JS 审计、子域爆破
「深入二级域名」
跳转发现
态势归纳、链路梳理、跳转特征识别
「跳转目标站与子域也要测」
9090/SSRF
端口扫描、能力枚举、内网探测、高价值标注
「必须拿下 RCE」
文件读/Redis
Payload 构造、盲写验证、读 cron、利用链串联
确认当前阶段以利用为主
私钥/RCE
SSH 命令执行、会话维持、60 轮持续推进
明确要 shell、要 root
横向移动
扫描内网、读配置、连库、凭证挖掘
投喂新 root 凭证 + 「横向拿更多服务、挖库」
战果整理
攻击链文档、表格输出
定义什么叫「打完了」
flowchart LR
    A[入口跳转站] --> B[中间站 nginx]
    B --> C[9090 postjson]
    C --> D[SSRF 无认证]
    D --> E[内网 Redis/MySQL]
    D --> F[@file= 任意文件读 ROOT]
    F --> G[SSH 私钥]
    G --> H[Root RCE #1]
    H --> I[记账系统明文密码]
    I --> J[横向 7 台 Root]
    J --> K[支付库 / 钱包 / Bot Key]

启示

1. 跳转站不是「没内容」,是「前门」

灰产、博彩、色情类站点普遍使用多层跳转 + 随机子域 + 对象存储规避封禁。只测入口域名,几乎必然漏测。

2. 开发/运维工具是高频突破口

postjson 这类「方便自己人」的在线工具,常无认证、带 SSRF、跑在独立端口,绕开 WAF。生产环境应禁止公网暴露,或至少强认证 + 网络隔离。

3. SSRF 的危害 = 内网地图 + 利用跳板

本次若非 SSRF,Redis 盲写、本机文件读、内网 MySQL 探测都难以从公网完成。出站访问控制和服务绑定 127.0.0.1 是基线要求。

4. 明文密码记账 = 横向加速器

一台机器失守后,记账系统让攻击者批量获得 7 台主机凭据。凭证必须加密存储、分级授权、定期轮换。

5. AI 渗透的正确姿势:持续对话,持续对齐意图

三次关键转折——扩展跳转目标、切换 RCE 优先级、同步凭证做横向

——本质上都是测试者在合适的时候把想法说清楚。但这类实战扛得住,靠的不只是一段聊天窗口,而是跑在渗透长跑的基础设施上:

CyberStrikeAI 的价值,不太在于「能调多少个工具」——工具清单本身不构成壁垒。这次多轮对话真正依赖的是:把一条攻击链当成项目来跑。

  • 项目记忆,跨会话接得上。 跳转链、9090 SSRF、首台 root 凭证按项目沉淀在共享黑板里,Agent 换阶段仍带着上下文。横向时把密码「交给 AI」,本质是往项目事实里写一行,而不是每轮从零科普。
  • 长链不断线,崩了能续跑。 上下文顶满时 Summarization 会压缩历史,但完整 user/assistant/tool 转录先落盘,扫描细节可回溯;checkpoint 支持进程意外退出后 ADK 断点续跑。SSRF → 文件读 → Redis 盲写 → 七台横向——任何一段都不该因「对话太长」或「服务重启」白打。
  • 编排大于堆砌。 plantask 拆阶段盯进度,多 Agent 分主从协作战役,Skills 按场景渐进加载;漏洞入库、攻击链图谱、调用回放,让复盘用的截图和脉络,平台里本来就有迹可循。平台关心的是链式战役怎么推进,不是 nmap 之后该点 sqlmap 还是 ffuf。

说清楚了,AI 跟得上;平台则要保证你的意图、战果与中间态,在长链里存得下、接得上、断了还能续。


结语

这场从「色情跳转站」到「7 台 Root、支付库、钱包地址」的测试,水下暗礁够密——是几件事叠在一起的结果:

  1. 暗礁够密(无认证 SSRF、ROOT 文件读、明文记账、暴露 MySQL)
  2. 声呐够灵(长上下文里串联 SSRF → 文件读 → Redis 盲写 → 横向,没断链)
  3. 航线校准到位(三次关键指令,把范围、优先级、新战果及时说清楚)

动力与声呐拉满了航行效率,模型决定判读能有多深;最终能打通多远,暗礁、声呐、航线,缺一不可。


展望:从「人对齐意图」到「全自主渗透」

今天的实战,仍离不开人在关键节点开口:扩范围、切优先级、递凭证。但这只是当前阶段的人机协作形态,不是终点。

CyberStrikeAI 正在往更远的方向走——全自主渗透测试:给定授权目标与测试边界,Agent 自行完成信息收集、攻击面扩展、漏洞验证、利用串联、横向移动与战果归档,无需人工逐步介入。跳转链自动跟进、SSRF 发现 Redis 后自动切换利用路径、拿到首台 root 后自动横向——这些在今天靠三次「意图对齐」完成的动作,未来应由平台内置的策略与记忆机制自己完成。

到那时候,声呐会自己读图、船会自己转舵——Agent 自建航线;人退到更上游:划授权海域、定合规红线、审最终航报。笔者期待那一天早点到来——也让更多复杂、冗长、重复的判断与执行,从安全从业者的键盘上卸下来。


关于 CyberStrikeAI

CyberStrikeAI 是 AI 原生安全测试平台,集成 100+ 安全工具、智能编排、Skills 技能系统、知识库与授权场景下的轻量 C2 能力。支持 MCP 协议,可从对话指令驱动完整渗透生命周期。

  • 项目地址:https://github.com/Ed1s0nZ/CyberStrikeAI
  • 微信群:
    Image

欢迎授权实战投稿。 脱敏截图 + 攻击链复盘,同样期待你的故事。


本文仅供授权安全研究与防御建设参考。未经授权的渗透测试违法,请勿模仿。