比特币:权利的游戏 :DAO Maker 被黑分析

2021年08月12日,据慢雾区消息,加密孵化机构DAOMaker疑似遭受黑客攻击,导致合约大量USDC被转出。慢雾安全团队第一时间介入分析,并将分析结果分享如下。??

攻击对象

在本次攻击中,攻击者部署并开源了一个攻击合约(0x1c)用于快速批量的从DAOMaker受害合约(0x41)中窃取资金。

攻击者地址1:

0xd8428836ed2a36bd67cd5b157b50813b30208f50

攻击者地址2:

0xef9427bf15783fb8e6885f9b5f5da1fba66ef931

攻击合约:

0x1c93290202424902a5e708b95f4ba23a3f2f3cee

英国法院批准Craig Wright在比特币权利诉讼案中继续上诉:金色财经报道,英国一家法院于7月20日批准了一项上诉,赋予澳本聪Craig Wright在诉讼中辩称比特币文件格式定义明确,足以获得版权保护的权利。该决定推翻了二月份的一项裁决,该裁决认为Wright的论点不足以表明比特币文件格式最初是如何记录的,下次审判日期定于2024年1月进行。

Craig Wright自2016年以来一直声称自己是比特币的发明者,对13名比特币核心开发者和包括Blockstream、Coinbase 和Block在内的公司发起诉讼,指控侵犯了他对比特币白皮书的版权、比特币区块链的文件格式和数据库权利。[2023/7/22 15:51:44]

DAOMaker受害合约:

0x41B856701BB8c24CEcE2Af10651BfAfEbb57cf49

德克萨斯州出台法案保护比特币持有者、矿工和开发商的权利:金色财经报道,德克萨斯州正在推广、推进和提供比特币平台,并将其视为一项尖端创新。德克萨斯州还发布了一份报告,提出了一项允许比特币作为该州授权投资的提案。根据该法案的最新细节,德克萨斯州第 88 届立法机构现在支持“根据德克萨斯州宪法第一条第 8 节在比特币网络上编码或开发的个人”。该法案还谈到 BTC 矿工可以自由寻找任何形式的能源来保护比特币网络。新法案还规定,任何公民都不会被剥夺拥有比特币的权利,并谈到了对他们的保护。该法案还重申了在该州拥有和处理比特币的安全性。[2023/3/22 13:17:57]

DAOMaker受害合约deployer:0x054e71D5f096a0761dba7dBe5cEC5E2Bf898971c

NFT 艺术家筹集 300 万美元支持美国堕胎权利组织:6月30日消息,NFT艺术家Molly Dickson与区块链非营利组织合作成立COWGIRLDAO ,旨在为美国各地的堕胎权利团体筹集资金,Molly Dickson发行了10,000件NFT收藏品,每件收藏品的价格在 0.03 ETH 和 0.9 ETH 之间。销售收益的98.5%分配给支持生育自由的组织,Endaoment 保留1.5% ,Dickson在NFT完全铸造后捐赠了总计300万美元的销售额。 Molly Dickson表示,作为一名身处该领域的艺术家,我对 Web3 的中立程度感到惊讶,在过去的几天里,我们真的开始看到更多的支持”。[2022/6/30 1:40:59]

DAOMaker受害合约admin:0x0eba461d9829c4e464a68d4857350476cfb6f559

CityDAO将向Citizen NFT持有者发行基于现实土地部分权利的NFT:5月4日消息,去中心化土地实验组织CityDAO宣布将向 Citizen NFT 持有者发行 Parcel 0 NFT。Parcel 0 NFT基于CityDAO于2021年10月29日购买的0 号地块,该地块毗邻怀俄明州西北部,占地面积40英亩。

Parcel 0 NFT持有者将拥有该块土地的部分治理和使用权,Citizen NFT持有者有资格免费铸造Parcel 0 NFT。[2022/5/4 2:48:53]

攻击细节

本次攻击与往常攻击不同的是:DAOMaker受害合约(0x41)未开源,而攻击合约(0x1c)却开源了。

动态 | KodakONE平台已产生超100万美元的图像权利许可:据cointelegraph报道,受柯达授权的图像版权区块链平台KodakONE的测试版本目前已经产生了超过100万美元的图像权利许可。[2019/1/9]

从上图开源的攻击合约以及链上记录我们可以看出:?

1.黑客调用攻击合约(0x1c)的h函数,h函数会循环调用f函数,f函数通过DAOMaker受害合约的0x4b4f892a函数获取普通用户在受害合约(0x41)中的USDC存款数量。

2.函数h接着调用DAOMaker受害合约(0x41)的withdrawFromUser(0x50b158e4)函数,传入用户存款的用户地址、USDC地址与需要提款的数量。

3.随后DAOMaker受害合约(0x41)将合约中的USDC转移至攻击合约中(0x1c)。

通过以上行为分析我们可以发现:攻击合约(0x1c)调用了受害合约(0x41)的?withdrawFromUser函数,受害合约(0x41)就将合约管理的资金直接转给攻击合约(0x1c)。我们直接反编译受害合约(0x41)查看withdrawFromUser函数进行简单分析:

通过反编译的代码我们可以发现,此函数是有进行权限检查的,只有DAOcontracts才能调用此函数转移用户的资金。但攻击合约?(0x1c)明显不是DAO合约,因此其DAO合约必然是被攻击者替换过的。

通过链上分析我们可以清楚的看到:

1.受害合约部署者(0x05)在部署受害合约(0x41)?后于UTC4月12日08:33:45将0x0eba461d9829c4e464a68d4857350476cfb6f559?地址设置为了管理员角色:

TxHash:

0xa1b4fceb671bb70ce154a69c2f4bd6928c11d98cbcfbbff6e5cdab9961bf0e6d

2.随后受害合约部署者(0x05)通过调用revokeRole函数放弃了受害合约(0x41)管理权限:

TxHash:?

0x773613398f08ddce2cc9dcb6501adf4f5f159b4de4e9e2774a559bb1c588c1b8

3.而管理员则在UTC?8月12日01:27:39将DAO合约设置为了攻击合约(0x1c):

TxHash:?

0x2fba930502d27f9c9a2f2b9337a0149534dda7527029645752b2a6507ca6b0d6

因此攻击者才得以借助此攻击合约(0x1c)将受害合约(0x41)中用户的资金盗走。目前被盗资金被兑换成ETH转移至攻击者地址2(0xef)。

总结

本次攻击可能源于DAOMaker受害合约的管理员私钥泄漏。攻击者窃取私钥后将受害合约的DAO合约替换为了攻击合约,攻击者通过替换后的合约转走了合约中的用户资金。而由于合约部署者在设置完合约管理员后就放弃的合约管理权限,因此目前项目方可能还无法有效的取回合约控制权。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金星链

[0:0ms0-1:353ms