VacuityFollow your heart
← 返回索引
安全cloudflare2026-11-09约 9 分钟

一次 Cloudflare 账号被劫持的复盘:撞库、36 秒、ClickFix

2026 年 11 月 8 日深夜,我发现自己的 agenttown.xyz 被跳转到了一个陌生域名,页面上写着 “Your domain has been successfully parked!”。打开 Cloudflare 一看,所有域名的解析都被换成了 192.0.2.1,还多出一条把全部流量 301 出去的跳转规则。我没做过这些操作。

这篇是事后复盘:对方怎么进来的、想干什么、背后是一个怎样的团伙,以及我从中得到的教训。

一句话结论:攻击者用已泄露的密码登录了我没开两步验证的 Cloudflare 账号,用脚本在 36 秒内劫持了名下 8 个域名,把访问者送进一个“假 Cloudflare 人机验证”的 ClickFix 窃密链路。这是批量作案,不是针对我。约 35 分钟后全部恢复,服务器和数据没有受损。

文中的恶意域名都做了“去活化”处理(. 写成 [.]),请不要访问。

时间线

时间 (UTC)事件
2026-08-13攻击方注册跳板域名 wexalon[.]online
2026-10-19 起公开扫描记录显示,已有其他被劫持网站在往它导流
2026-10-30注册恶意脚本域名 shatamilo[.]com
2026-11-03注册仿冒域名 cloudfiare-verification[.]info(是 fi,不是 fl)
11-08 15:58:34攻击者从约旦 IP 用 API 方式登录成功
15:58:44 – 15:59:20脚本逐个处理 8 个域名:删原解析 → 加 192.0.2.1 占位和 * 泛解析 → 建 301 跳转规则
约 16:19我发现异常,开始排查
约 16:29开启两步验证、改密码,旧会话全部失效
约 16:33按审计日志原样恢复全部解析,外部验证通过

对方是怎么进来的:撞库

几条证据指向同一个结论:

  • 密码在泄露库里。 改密码时 Cloudflare 报了 password.compromised.error,它会把密码和公开泄露数据比对。我习惯用的那组密码已经在泄露数据里了。
  • 没开两步验证。 只要密码对就能进。
  • 审计日志里有一条完整的 LOGIN,方式是 API。 如果偷的是浏览器 cookie,会直接复用会话,不会产生新的登录事件。这是脚本拿着账号密码走了一遍登录流程,是撞库工具的典型特征。
  • 登录 IP 是约旦的家庭/移动宽带(AS9038)。撞库团伙常租“住宅代理”来绕过风控,这个 IP 背后大概率不是攻击者本人。
  • 全自动。 8 个域名、约 50 个操作在 36 秒内完成,每个域名的手法一模一样。

我也排除了其他几种可能:

  • API 令牌泄露:事发时段没有任何令牌活动,对方也没新建令牌。
  • 本机中了窃密木马:启动项、进程、Shell 历史都查过,没有迹象。
  • 服务器被入侵:没有陌生 SSH 登录,源站上也没有相关痕迹。
  • Cloudflare 平台漏洞:没有依据。同期 Cloudflare 社区有多起“被盗账号被加跳转规则”的帖子,都是单个账号被盗。

对方想干什么

对方要的不是我的网站,而是我网站的访问者。正常域名有信誉、有流量,被劫持后就成了恶意页面的引流入口。我实际访问验证了整条链路:

  1. 访问者打开被劫持的域名,被攻击者加的规则 301 到 wexalon[.]online,路径保留,URL 上带一个 ?label=e603e91c… 参数。
  2. wexalon[.]online 是流量分发跳板(TDS),按来访者分流:
    • 不带 label 的访问(安全研究员、爬虫)看到“域名已停放”页面,装作人畜无害;
    • 手机被转到 YouTube 掩人耳目;
    • 电脑浏览器被 307 到下一步。
  3. cloudfiare-verification[.]info 是仿冒的 Cloudflare 验证页,本身只有约 2KB 的加载器。
  4. 加载器从 shatamilo[.]com/cloudflare/api.js 拉取一段约 210KB、加密混淆的脚本,负责渲染假验证页。
  5. 按公开研究,这类 ClickFix 页面会让访问者“完成验证”:悄悄把一段命令复制到剪贴板,引导他在 Mac 终端或 Windows 的“运行/PowerShell”里粘贴回车,从而装上窃密木马,偷浏览器密码、cookie、加密钱包。

第 4 步的脚本我只抓了源码没有运行,所以没拿到最终投放的木马样本。第 5 步来自同类攻击的公开研究:Malwarebytes 列出过 StealC、Amatera、HijackLoader 等家族;Aviatrix 记录了 2026 年 10 月下旬同时针对 macOS 和 Windows 的同类活动。

这个团伙的规模

  • wexalon[.]online:urlscan.io 上有 25 条记录,来自至少 15 个不同网站,最早一条在 10-19。所有记录里的 label 都是同一个值。它标记的是对方的推广渠道,不是受害者,说明这是按引流量结算的生意。
  • shatamilo[.]com 的恶意脚本:被注入到 289 个网站里,多是巴西、英国、法国、意大利、阿联酋、印度、墨西哥等地的正常企业站,仅 11-08 一天就有大量记录。可见对方同时还在入侵 WordPress 一类的网站。
  • 同类案例:Cloudflare 社区在 2026 年 8 月和 10 月都有人发帖,说账号被盗用凭据通过 API 登录,被加了跳转到假验证页的 Redirect Rule,和我遇到的一模一样。

IOC(攻击方基础设施)

指标类型信息
109.107.253.220登录 IP约旦安曼,AS9038 Batelco / Umniah,大概率是住宅代理出口
wexalon[.]online流量分发跳板2026-08-13 GoDaddy 注册;DNS 托管在 Cloudflare;按 UA 和参数分流
cloudfiare-verification[.]info仿冒验证页2026-11-03 NiceNIC(香港)注册;DNS 托管在 Cloudflare
shatamilo[.]com恶意脚本服务器2026-10-30 CNOBIN(香港)注册;源站 185.7.214.119(AS55286 B2 Net Solutions,伦敦),nginx/1.18.0;路径 /cloudflare/api.js
bkx33y4xbcannunobl[.]pages[.]dev同网络另一落地页Cloudflare Pages,路径 /help/,11-06~11-07 期间被引流
cloudflare-verification[.]dtechome[.]cloud同网络另一落地页出现在跳板的扫描记录里
label=e603e91c3f7b263a1deaef0826452d80渠道标识该团伙所有跳转规则共用

如果你的站点也被跳到这些地址,基本就是同一伙人。

影响

  • 中断约 35 分钟。 对方只改了 Cloudflare 上的解析和规则,没碰源站,服务器和数据都没受影响。
  • Agent Town 的 CLI 自动更新是安全的。 更新包有 Ed25519 签名,被转去别处下载的内容会验签失败而被拒绝。
  • 访问者的风险。 这段时间用电脑浏览器访问的人可能看到了假验证页。只要没按提示在终端里粘贴命令,就不会中招。
  • 其他设置没被动。 审计日志显示对方只做了 DNS 和跳转规则操作,令牌、成员、Workers 都没碰。

怎么恢复的

Cloudflare 审计日志里,删除操作会带着被删记录的原值。我按日志把 35 条解析记录原样加了回去,地址、代理状态、TTL 都和原来一致。然后删掉占位记录、泛解析,以及指向跳板的跳转规则。

教训

  1. 所有重要账号都开两步验证。 这次只要开了,对方拿到密码也进不来。
  2. 一站一密,交给密码管理器。 撞库能成,就是因为同一组密码在别处泄露过。
  3. 给 Cloudflare 开变更通知。 DNS 一被改就能收到邮件,不用等自己碰巧发现。
  4. 真正的 Cloudflare 验证从来不会让你打开终端或“运行”框粘贴命令。 见到这种要求,直接关掉页面。
  5. 关键分发链路要做签名。 这次 CLI 签名更新、源站只接受 Cloudflare 回源这些设计都起了作用。DNS 就算被劫持,也劫持不了验签。

参考资料

下一篇 → IntelliJ IDEA Maven 编译输出乱码问题解决方案