Skip to content
Kurisu
Go back

Apifox CDN 投毒应急复盘:从 Wayback 找回样本到 Quake 测绘定位 C2

应急响应篇写的是主机侧排查,这篇是一次供应链投毒事件的完整应急复盘(2026 年 3 月,安全团队报告)——样本分析、威胁情报、C2 定位的全套流程都在,方法论价值极高。

0x01 事件概述

内容
事件Apifox 官方 CDN 上的埋点 JS 被投毒
受影响Apifox 桌面版(Electron)< 2.8.19
载体cdn.apifox.com/www/assets/js/apifox-app-event-tracking.min.js(34KB → 投毒后 77KB)
危害三阶段攻击链,窃取 SSH 私钥、Git 凭据、Shell 历史
放大器Electron 未严格启用 sandbox 且暴露 Node.js 接口——JS 直接获得文件读取/命令执行/网络通信能力

供应链投毒的可怕之处:恶意代码跟着”合法更新”分发到每一个客户端,不需要任何 0day。

0x02 第一步:样本已消失?去 Wayback 挖

应急时的第一个障碍:事件披露时 CDN 上的投毒文件已被替换,所有恶意链接失效。

解法是Internet Archive(Wayback Machine):按投毒时间窗搜归档快照,成功拿到 2026-03-05 的完整投毒版本。文件结构一目了然:

经验:投毒样本的取证不必依赖攻击者基础设施存活,Web Archive 是被严重低估的样本库。

0x03 第二步:反混淆——AI 时代的标准作业

载荷混淆五件套:字符串数组+旋转洗牌、RC4 字符串加密(运行时解密)、代理函数包装运算调用、十六进制数字常量、反调试自检(检测代码被格式化/修改即死循环)。

人工硬啃成本极高,报告的做法是AI 辅助完整反混淆与语义还原,提取出的关键情报:

C2https://apifox.it.com/public/apifox-event.js
滥用的合法接口api.apifox.com/api/v1/user
轮询间隔30 分钟 ~ 3 小时随机(避开流量基线)
数据外传RSA 2048(PKCS8,256 字节块)加密
指纹缓存localStorage _rl_headers / _rl_mc

0x04 第三步:C2 已下线?空间测绘 + 证书搜索

C2 域名 apifox.it.com 已无法解析。社区师傅的思路:Quake 空间测绘搜证书——cert:"apifox.it.com" 直接命中存活资产:

于是复现攻击的最后一步:按恶意代码的构造逻辑补齐请求头,成功让 C2 返回第二阶段载荷。整套”反混淆拿协议 → 测绘找基础设施 → 构造请求要样本”的流程闭环了。

0x05 可复用的方法论清单

  1. 样本取证:CDN/链接死了先查 Wayback,投毒文件几乎都有归档窗口;
  2. 反混淆:字符串加密类混淆交给 AI 还原语义,重点提取 C2/协议头/加密方案三类信息;
  3. C2 定位:域名死≠基础设施死,证书搜索(Quake/Censys/Shodan)是第一抓手;
  4. 对抗”沉默 C2”:C2 校验自定义头才响应——答案就在反混淆出的代码里,逐字段复刻即可;
  5. 防守侧:Electron 应用必须开 sandbox、收敛 Node 接口暴露面;企业侧对第三方 JS 资源做完整性监控(哈希基线),埋点文件体积翻倍这种异常值得一条告警。

相关旧文


Share this post:

Previous Post
挖矿木马应急笔记:ld.so.preload 隐藏进程的发现与守护进程溯源
Next Post
我的 SRC 提交稿复盘:资产归属论证、CVSS 定级与'每环实测'的写法