Bybit热钱包漏洞技术分析

本文为机器翻译
展示原文

概述

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

    Bybit热钱包代理的源代码
  • 恶意实现合约: 0x96221423681a6d52e184d440a8efcebb105c7242

0x96221423681a6d52e184d440a8efcebb105c7242的反编译源代码

利用的链上流程

  1. 黑客发起:

    • 黑客地址: 0x0fa09c3a328792253f8dee7116848723b72a6d2e

    • 攻击者发起对热钱包代理(0x1db92e2eebc8e0c075a02bea49a2935bcd2dfcf4)的调用。

  2. 委托调用:

    • 代理执行对合法GnosisSafe合约(0x34cfac646f301356faa8b21e94227e3583fe3f5f)的delegatecall

    • 接下来,又对恶意实现合约进行了进一步的delegatecall,使用以下JSON负载:

      {"to": "0x96221423681a6d52e184d440a8efcebb105c7242", // 恶意实现合约"operation": 1, // DelegateCall操作"data": "0xa9059cbb000000000000000000000000bdd077f651ebe7f7b3ce16fe5f2b025be29695160000000000000000000000000000000000000000000000000000000000000000"// 编码了一个transfer(address,uint256)调用:// transfer(0xbdd077f651ebe7f7b3ce16fe5f2b025be2969516, 0)}
  3. 状态修改:

    • 在恶意合约的transfer函数中:

    def transfer(address _to, uint256 _value) payable:require calldata.size - 4 >= 64require _to = _tostor0 = _to

    该函数更新了代理的slot0,实际上将合法的GnosisSafe实现替换为位于0xbdd077f651ebe7f7b3ce16fe5f2b025be2969516的恶意合约。

    • 状态变更通过以下截图得到确认:

      代理实现的slot变更确认
  4. 资产流失:

    • 测试转账: 一笔初步交易转移了90 USDT,以验证功能。在Etherscan上查看

      测试转账截图
    • 大规模ETH流失: 在测试之后,执行了一笔交易,从受损钱包转移了401,346.76 ETH在Etherscan上查看

      ETH转账截图

最后思考

该事件仍在调查中。上述关键细节显示了攻击者如何抽干钱包资金,并使用精心设计的delegatecall交易隐藏其行为。

这些信息对于理解此次入侵事件至关重要。保持警惕,密切监控您的钱包,因为即使是零值交易也可能暗示着隐藏的威胁。随着更多细节浮出水面,我们将继续提供更新。

立即订阅

来源
免责声明:以上内容仅为作者观点,不代表Followin的任何立场,不构成与Followin相关的任何投资建议。
喜欢
1
收藏
1
评论