环环相扣 —— Gnosis Safe Multisig 用户被黑分析

未知 2021-12-03 23:05:46

data-v-9033 FE 72数据- v-0 AEA 98aa by:victory @慢雾安全小组

2021年12月3日,据徐雾区信息,Gnosis Safe 用户遭遇了严重复杂的网络钓鱼攻击。 慢雾安全小组分享以下简单的分析结果。

相关信息

攻击者地址1 :

0x 62 a 51a d 133 ca4a 0f 1591 db5ae8c 04851 a9a4bf 65

攻击者地址2 :

0x 26 a 76f4FE 7a 21160274 d 060 ACB 209 f 515 f 35429 c

恶意逻辑实施合同的ETH地址:

0x 09 AFae 029 d 38 b 76 a 330 a1 Bdee 84F6e 03 a 4979359

恶意合同ETH地址MultiSendCallOnly合同:

0x3cb 0652856 D7 EAB E51 F1 E3C Ceda 99 c 93 B 05 D7 CEA

受到攻击的代理的合同地址:

0x c 97 f 82 c 80 DF 57 c 34 e 84491 c0EDA 050 BA 924 d 7429

逻辑合同地址:

0x 34 CFAC 646 f 301356 FA A8 B 21e 94227 e 3583 FE3F5 f

MultiSendCall合同的ETH地址:

0x40a2ACBD 92B CA 938 B 02010 E 17 A 5b 8929 B 49130 d

攻击交易:

359以太网. io/tx/0x71 C2D 6a3fa E4 BE 39D9E571 A 2678 D 909 B 83 CA 97249140 CE 7027092 AA 77 C 74 e

攻击步骤

第一步:攻击者首先在9天前引入恶意MultiSendCall,验证合同代码使该攻击合同看起来像以前真正的MultiSendCall。

步骤2 :攻击者通过钓鱼手段构建恶意地址calldata的数据,让用户签名。 call数据的正确to地址必须是0x40a2ACBD 92B CA 938 B 02010 E 17 a5b 8929 B 49130 d,现在是恶意合同ETH地址MultiSendCallOnly合同0x3CB 0652856 D7 EAB E51 F1

由于攻击者获取的签名数据是正确的,所以通过了验证多个签名的阶段,之后开始执行攻击合同的multiSend函数

此时,通过查看攻击合同,我们发现这里的修饰符Payable被指定了值。 这个时候,我们反向编译源代码发现了:

payment.version VERSION这一条件启动时,每次都会重新代入storage[0x00]中。 这个storage[0x00]特别眼熟吗? 是的。 让我们看看代理协议。

这笔交易结束时,代理的存储[0x00 ]变成了0x 020014 B 037686 D9AB 0E 7379809 AFAE 029 D38 B 76 A1 Bdee 84F6E03 A 4979359。

由于代理协议执行的逻辑协议地址masterCopy是从storage[0x00]中读取的,因此代理指向的逻辑协议将被攻击者更改为攻击协议。 后续攻击者只需要等待用户将足够的令牌放入该合同,然后构建转账函数取钱。

在分析受攻击合同的交易记录时,发现攻击者很狡猾。

为了防止攻击者被发现,攻击合同中的逻辑上,用户仍然正常地实现了相关的功能。

在反向编译攻击者的逻辑合同时,我们发现攻击合同的逻辑可以确保用户在攻击者工作之前可以正常使用多签名功能。 只有攻击者调整后才绕过验证直接拿用户的钱。

最小跟踪分析

根据对MistTrack反洗钱跟踪系统的分析,攻击者地址1于11月23日开始准备,让混合货币平台Tornado.Cash获得初始资金 0.9384 ETH,分钟后引入合同,攻击者地址0.8449 ETH

攻击成功后,攻击者地址2将通过Uniswap、Sushiswap获利的HBT、DAI等令牌换成ETH,最后将56.2 ETH转发至混币平台Tornado Cash以避免追踪。

总结

在这次攻击中,首先是钓钩段获取了用户的下一个完整的多重签名数据。 在利用delegatecall调整外部合同时,如果外部合同有数据变更操作,外部合同的变量会指向对应slot的位置,从而影响当前合同同一slot的数据。 攻击合同所指的代理合同所指的逻辑攻击合同。 这样的话,随时都可以在合同上签太多,随时转合同的钱。

分析此次事件后发现,概率是客队对支持Gnosis Safe Multi-sig的用户的钓鱼攻击,0x34cfac64这份常规逻辑合同是Gnosis Safe官的地址,攻击者将该地址硬编码为恶意合同。 这次攻击可能还有其他受害者。 慢雾安全小组建议在访问Gnosis Safe Multisig时,确保是官方的车站,并且在调整之前仔细检查调整的内容,以便尽早识别钓鱼台和恶意交易数据。