本文深入探讨了Web3中钱包盗取工具的演变,特别关注了EIP-7702如何被利用于自动化、规避检测和大规模盗窃。文章分析了钱包盗取工具的原理、EIP-7702带来的新型钓鱼风险,以及攻击者如何利用自动化和语言模型来扩大攻击规模,并提出了相应的防御策略,最后通过一个真实案例“Inferno Drainer Reloaded”来说明了问题。
在我们 AI 钓鱼系列文章的第二部分中,我们将探讨 wallet drainers 如何随着 EIP-7702 的发展,在 Web3 中大规模地自动化、规避和盗窃。
2025-06-06 - 阅读时长 14 分钟
作者:Simeon Cholakov & Niccolo Pozzolini
Web3 安全
threesigma 的 twitterthreesigma 的 linkedinthreesigma 的 github
Wallet drainers 是加密诈骗武器库中最具破坏性的工具之一。它们结合了社会工程、前端欺骗和自动化脚本,直接从受害者的钱包中吸走资产。其核心思想很简单:说服用户授权一项交易,该交易表面上看起来很安全,但实际上授予了攻击者完全的控制权。
Drainers 经常使用通过被劫持的帐户、Discord 机器人和赞助广告传播的虚假网站来冒充合法的 dApp。一旦受害者访问该网站,他们就会被鼓励铸造 NFT、领取代币或验证钱包。这些操作会触发恶意的 approve() 调用,从而授权攻击者通过 transferFrom() 转移资产。
这些攻击通常会呈现带有误导性 UI 标签、夸大的 calldata payload 和合约自毁的交易提示,以逃避静态检测和交易模拟。此外,一些 drainers 专门针对人为因素,通过紧迫感、虚假支持渠道,甚至是赞助搜索结果中植入的克隆站点来欺骗用户。
即使是经验丰富的用户也成为了受害者,包括创始人和钱包开发者。仅在 2024 年,就有超过 330,000 个钱包受到影响,造成的损失总计约 4.94 亿美元,wallet drainers 仍然是一个关键的威胁媒介,需要技术和行为对策。
交易模拟的一个关键问题是,钱包基于区块链的当前状态模拟交易,而区块链的状态在执行之前可能会发生变化。智能合约、DEX 余额或代理逻辑可能会在模拟和执行之间发生变化。Drainers 利用这种检查时间/使用时间 (TOCTOU) 漏洞来欺骗用户。这在涉及基于 delegate-call 的代理的交易中尤其危险,在这种交易中,逻辑可以在模拟后动态重新连接。
合约可能会检测到它何时在模拟中运行并表现安全(“红丸”行为),但在签名后恢复为恶意逻辑。
随着 EIP-7702 的激活,EOA(外部拥有的帐户)现在可以将执行权限委托给智能合约,从而有效地模糊了 EOA 和合约帐户之间的界限。虽然这带来了强大的功能,如原子交易和可编程钱包,但它也创造了一种新的钓鱼风险:基于委托的 wallet drainers。
攻击者不再诱骗用户签署传统的 approve()
调用,而是引诱受害者将执行权委托给恶意合约,通常将此操作伪装成“钱包升级”、“安全增强”或“AI 助理授权”。这些委托的合约可以实现转移代币、利用易受攻击的合约中的重入漏洞或批量处理恶意交易的逻辑,而无需额外的用户输入。
攻击面更广:设置了委托的 EOA 的行为类似于合约,调用该地址可能会触发任意逻辑。用户可能在不知情的情况下签署一项委托,该委托将所有未来的调用路由通过敌对逻辑,当前模拟工具可能无法准确预览这种行为,特别是如果委托的合约使用代理模式、条件逻辑或混淆代码来掩盖意图。
更复杂的是,钓鱼工具包现在将 EIP-7702 委托 payload 捆绑到 SET_CODE (0x04) 交易模板中。只需几行 JavaScript,攻击者就可以生成和模拟委托签名的 payload,在钱包 UI 中自动填充它们,并诱骗用户设置持久的执行权限,而无需任何批准。
随着钱包和 dApp 竞相支持可编程 EOA,钓鱼基础设施也在并行发展,从而使 EIP-7702 委托钓鱼成为后 Pectra Ethereum 生态系统中需要监控的最关键的威胁之一。
为了扩大其运营规模,加密 drainer 组织对其钓鱼基础设施的很大一部分进行了自动化。虽然核心 draining 逻辑位于嵌入在钓鱼网站中的恶意脚本中,但攻击者专注于自动化周围基础设施的创建和部署。
此基础设施包括注册大量域名,并在 GitHub Pages、Webflow 甚至受损的合法网站等平台上托管令人信服的前端。诈骗者通常会回收样板合约代码并对其进行修改,而不是在链上进行创新。这些钓鱼页面模仿真实的 dApp 和钱包界面,诱骗用户签署对其钱包中已有的合法代币的恶意批准。自动化确保每个实例都使用新的合约地址和域名,从而使检测和列入黑名单的工作变得复杂。
大型语言模型 (LLM) 越来越多地用于改变前端文本、钓鱼指令或聊天机器人响应,而不是生成合约。通过随机化措辞和品牌,诈骗者降低了模式匹配工具的有效性。结果是一个高吞吐量的欺诈管道:数千个外观相似的去中心化应用程序 (dApp) 和站点,每个站点都指向一个中央 draining 脚本,只需最少的人工干预即可部署。
由于任何单一技术的固有局限性,防御 wallet drainers 和钓鱼工具包涉及多种策略。
eth_sign
消息,因为这些消息无法被清晰地解析或可靠地模拟,并且仍然具有很高的可利用性。总而言之,没有一项预防措施可以提供完全的安全性。用户应采用结构化签名标准,谨慎地进行交易模拟,完全避免原始签名,并对未经请求或紧急的交易提示保持怀疑。
2025 年初,调查人员追踪到一项死灰复燃的 Drainer-as-a-Service 运营,昵称为 Inferno Drainer Reloaded。尽管其运营商在 2023 年底公开“关闭”,但区块链遥测数据显示,其核心基础设施从未消失,而是不断发展,并进行了重大升级后重新出现,在短短六个月内从 30,000 多个钱包中吸走了超过 900 万美元。
Drainers 正在从基本的钓鱼页面演变为具有可编程委托和红丸检测的复杂多链、模拟感知系统。随着 EIP-7702 重塑 EOA 的运作方式,钓鱼工具包也在并行适应。未来的防御必须结合结构化签名、模拟完整性、基于约束的交易建模和谨慎的用户行为。只有加强技术层和人为层,我们才能减少这些日益可扩展的攻击的影响。
Wallet drainer 是一种恶意脚本或钓鱼工具包,旨在直接从用户的加密钱包中窃取资产。它通过诱骗用户签署欺骗性交易,从而授予攻击者访问其资金的权限,通常通过冒充真实 dApp 或钱包服务的虚假网站。
用户通常会被虚假的 Discord 机器人、受损的 Twitter 帐户或赞助广告诱骗到钓鱼网站。这些站点模仿合法的界面,并提示用户签署授予无限批准或将执行权限委托给攻击者控制的合约的交易。
EIP-7702 引入了可编程 EOA,可以将执行权委托给合约。钓鱼者通过将恶意委托伪装成钱包升级或安全功能来利用这一点,从而允许他们在用户签署委托交易后执行任意逻辑。
Rabby 或 MetaMask WalletGuard 等模拟工具可以帮助预览交易效果,但它们可以被绕过。Drainers 可能会利用检查时间/使用时间 (TOCTOU) 漏洞或使用签名后行为不同的混淆逻辑,从而降低模拟的有效性。
Drainer 运营商使用脚本工具自动化基础设施,以启动数千个钓鱼域名并克隆前端。LLM 有时用于改变文本和品牌,从而避免检测。这些钓鱼站点都指向一个带有 draining 脚本的共享后端。
Inferno Drainer 是功能最丰富的钓鱼即服务工具包之一。它支持跨链定位、自动生成的钓鱼站点、混淆的 JavaScript payload 和内置的清洗路径。联盟会员只需嵌入一行代码即可开始窃取资金。
approve()
诈骗诱骗用户授予合约无限访问权限以转移特定代币。基于委托的诈骗(通过 EIP-7002 或 EIP-7702)授予更广泛的执行权限,允许攻击者从委托的合约运行任意代码,而无需额外的提示。
使用支持 EIP-712 结构化签名的钱包,避免签署原始 eth_sign
消息,仔细检查 URL,避免点击赞助的搜索广告,并将大额余额保存在冷存储中。切勿批准未经请求的提示中的交易或委托。
攻击者克隆真实的 dApp 界面并使用类似的域名(例如“uniswap-airdrop[.]xyz”)。借助 LLM 和自动化,他们可以生成自定义的、本地化的且不断轮换的钓鱼页面,这些页面与合法的平台非常相似。
不幸的是,一旦交易在链上签名并执行,就不可逆转。某些平台可能会帮助跟踪资金或识别 drainer 的地址,但资产追回非常罕见。预防仍然是最好的防御。
- 原文链接: threesigma.xyz/blog/web3...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!