概述
在2025年2月21日14:13:35 UTC,一笔恶意交易被执行,通过从SafeWallet发起的调用升级了Bybit热钱包代理的实现。本分析详细介绍了事件的发展过程、链上操作和潜在攻击者的方法。
受损交易详情
从SafeWallet调用升级Bybit热钱包实现的恶意交易:
时间戳: 2025年2月21日, 14:13:35 UTC
交易: 0x46dee (Etherscan)
关键地址:
Bybit热钱包代理: 0x1db92e2eebc8e0c075a02bea49a2935bcd2dfcf4
GnosisSafe (v1.1.1): 0x34cfac646f301356faa8b21e94227e3583fe3f5f
恶意实现合约: 0x96221423681a6d52e184d440a8efcebb105c7242
利用的链上流程
黑客发起:
黑客地址:
0x0fa09c3a328792253f8dee7116848723b72a6d2e
攻击者发起对热钱包代理(
0x1db92e2eebc8e0c075a02bea49a2935bcd2dfcf4
)的调用。
委托调用:
代理执行对合法GnosisSafe合约(
0x34cfac646f301356faa8b21e94227e3583fe3f5f
)的delegatecall。接下来,又对恶意实现合约进行了进一步的delegatecall,使用以下JSON负载:
{"to": "0x96221423681a6d52e184d440a8efcebb105c7242", // 恶意实现合约"operation": 1, // DelegateCall操作"data": "0xa9059cbb000000000000000000000000bdd077f651ebe7f7b3ce16fe5f2b025be29695160000000000000000000000000000000000000000000000000000000000000000"// 编码了一个transfer(address,uint256)调用:// transfer(0xbdd077f651ebe7f7b3ce16fe5f2b025be2969516, 0)}
状态修改:
在恶意合约的
transfer
函数中:
def transfer(address _to, uint256 _value) payable:require calldata.size - 4 >= 64require _to = _tostor0 = _to
该函数更新了代理的slot0,实际上将合法的GnosisSafe实现替换为位于
0xbdd077f651ebe7f7b3ce16fe5f2b025be2969516
的恶意合约。状态变更通过以下截图得到确认:
资产流失:
测试转账: 一笔初步交易转移了90 USDT,以验证功能。在Etherscan上查看
大规模ETH流失: 在测试之后,执行了一笔交易,从受损钱包转移了401,346.76 ETH。在Etherscan上查看
最后思考
该事件仍在调查中。上述关键细节显示了攻击者如何抽干钱包资金,并使用精心设计的delegatecall
交易隐藏其行为。
这些信息对于理解此次入侵事件至关重要。保持警惕,密切监控您的钱包,因为即使是零值交易也可能暗示着隐藏的威胁。随着更多细节浮出水面,我们将继续提供更新。