2021年8月12日,根据慢雾社区的消息,加密孵化机构 DAO Maker 疑似遭受黑客攻击,导致合约大量 USDC 被转出,慢雾安全团队立即介入分析,并将分析结果分享如下:
攻击目标
在这次攻击中,攻击者部署并打开了一个攻击契约(0x1c),用于从Dao制造者受害者契约(0x41)中快速批量窃取资金。
攻击者地址1:
0xd8428836ed2a36bd67cd5b157b50813b30208f50
攻击者地址2:
0xef9427bf15783fb8e6885f9b5f5da1fba66ef931
攻击合同:
0x1c93290202424902a5e708b95f4ba23a3f2f3cee
DaoMaker合同:
0x41B856701BB8C24CECE2AF10651BFAFEB57CF49
DaoMaker合同开发者:0x054E71D5F096A0761DB7DBE5CEC5E2BF8971C
Dao制造者管理员:0x0EBA461D9829C4E464A68D48573750476CFB6F559
攻击细节
此攻击与常规攻击的区别在于Dao制造者受害者契约(0x41)不是开源的,而攻击契约(0x1c)是开源的。
我们可以从上图中的开源攻击契约和链记录中看到:
1.黑客调用攻击契约(0x1c)的H函数,H函数循环调用F函数。F函数通过DaoMaker受害合同的0x4b4f892a函数获取受害合同(0x41)中普通用户的usdc存款金额。
2.然后,函数H调用Dao maker(0x41)的取款用户(0x50b158e4)函数,以传入用户地址、用户存款的usdc地址和要取款的数量。
3.然后Dao制造者受害者契约(0x41)将契约中的usdc转移到攻击契约(0x1c)。
通过以上行为分析,我们可以发现攻击契约(0x1c)调用;受损合同的名称(0x41);从用户函数中提取,受损合同(0x41)将合同管理的资金直接转移到攻击合同(0x1c)。我们直接反编译受害者合同(0x41)并查看DrumfromUser函数以进行简单分析:
通过反编译的代码,我们可以发现这个函数有权限检查。只有Dao合同才能调用此函数来转移用户的资金。但攻击契约(0x1c)显然不是Dao契约,因此其Dao契约必须由攻击者替换。
通过链分析,我们可以清楚地看到:
1.受侵害合同部署者(0x05)正在部署受侵害合同(0x41);之后,0x0eba461d9829c4e464a68d4857350476cfb6f559;设置为管理员角色的地址:
发送哈希:
0xA1B4FCEB671BB70CE154A69C2F4BD6928C11D98CBCFBFF6E5CDAB9961BF0E6D
2.然后,受损合同部署者(0x05)通过调用revokerole函数放弃受损合同(0x41)的管理权限:
Tx哈希:
0x773613398F08DDCE2CC9DCB6501ADF4F5F159B4E9E2774A559BB1C588C1B8
3.管理员在UTC;将Dao合同设置为在8月12日01:27:39攻击合同(0x1c):
Tx哈希:
0x2FBA930502D27F9C9A2F2B9337A014953DDA7527029645752B2A6507CA6B0D6
因此,攻击者可以使用此攻击契约(0x1c)窃取受损契约(0x41)中用户的资金。目前,被盗资金被转换成ETH并转移到攻击者的地址2(0xef)。
总结
此攻击可能是由于泄露了Dao maker受害者契约的管理员私钥造成的。窃取私钥后,攻击者用攻击契约替换受害者契约的Dao契约。攻击者通过替换的合同转移合同中的用户资金。由于合同部署方在设置合同管理员后放弃了合同管理权限,项目方目前可能无法有效收回合同控制权。
文章标题:加密孵化机构 DAO Maker 疑似遭受黑客攻击,导致合约大量 USDC 被转出
文章链接:https://www.btchangqing.cn/311818.html
更新时间:2022年10月13日
本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。