NBS:Poly Network被盗资金流向追踪及黑客套路揭秘

据区块链安全审计公司Beosin旗下Beosin EagleEye安全风险监控、预警与阻断平台监测显示,7月2日,Poly Network跨链桥项目疑似遭受私钥泄露或多签服务被攻击,黑客利用伪造的凭证向多条链的跨链桥合约进行取款操作。

这不是Poly Network第一次被攻击,早在2021年8月10日,Beosin EagleEye就监测显示,跨链协议Poly Network 遭受攻击,Ethereum、BinanceChain、Polygon3条链上近6亿美元资金被盗。

当年的这个事件,也成为2021年涉案金额最大的黑客事件,两年前的攻击者利用EthCrossChainManager合约中存在的逻辑缺陷,通过该合约调用EthCrossChainData合约中putCurEpochConPubKeyBytes函数更改Keeper为自有地址,然后使用该地址对提取代币的交易进行签名,从而将LockProxy合约中的大量代币套取出来。不过当时的攻击者在多方压力下,最终选择归还资产,

而这一次,黑客又是如何打穿Poly Network的防线,请听我们细细讲解。同时,我们也将用Beosin KYT/AML带你解锁黑客更多套路。

攻击分析

这次Poly Network 的攻击事件有多个攻击地址,下面以0x906639ab20d12a95a8bec294758955870d0bb5cc地址为例。

第一步,攻击者首先调用LockProxy跨链桥合约中的lock函数进行锁定很小的Lever Token。

(https://etherscan.io/tx/0x1b8f8a38895ce8375308c570c7511d16a2ba972577747b0ac7ace5cc59bbb1c4)

这里需要注意的是toChainid为6指的是BNB chain,可以通过https://explorer.poly.network/查看。这里只要Poly网络上查到,就表示已经通过中继链验证的。

第二步,切换到BNB链上,分析攻击者调用verifyHeaderAndExecuteTx函数进行取款操作,注意到这里的数量和原先的lock的数量完全对不上。

(https://bscscan.com/tx/0x5c70178e6dc882fba1663400c9566423f8942877a0d42bb5c982c95acc348e31)

然而在中继链网络查询该笔交易,并未找到该笔交易记录。

第三步,现在有理由怀疑是不是签名泄露或者keeper被修改(因为keeper是给用户提款签名的,只要控制了keeper就可以用伪造的签名提款)。2021年那一次的Poly被攻击就是黑客利用攻击修改了keeper导致的。

通过分析黑客调用verifyHeaderAndExecuteTx函数进行取款操作,发现keeper并没有被修改,目前keeper还是用的官方的keeper,现在我们有理由相信其中的三个keeper(0x4c46e1f946362547546677bfa719598385ce56f2、0x51b7529137d34002c4ebd81a2244f0ee7e95b2c0、0x3dfccb7b8a6972cde3b695d3c0c032514b0f3825)可能私钥泄露或多签服务被攻击,导致攻击者可以利用伪造的凭证取款。

同时,我们根据Beosin KYT虚拟资产反合规和分析平台追踪发现,黑客通过一批地址调用Poly Network的合约,利用合约中的UnlockEvent和verifyHeaderAndExecuteTx两个函数的漏洞对项目方实施攻击,将资金转移至自己的沉淀地址中。

调用被攻击合约的地址通过一个共同的手续费分发地址获取手续费。

图1 手续费分发地址交易

该手续费分发地址通过FixedFloat交易所获取手续费。

手续费分发地址:

0x0dfeb429166e629204aca66467484cd88cb9701c

交易哈希

0x69923ea025e7684578b9cbfd7af1c862f044f8b09398234039ce9989bd55561a

黑客归集地址共计三个手续费来源

1、使用手续费第一笔来自Tornado.Cash。

图2 归集地址0xe0afadad1d93704761c8550f21a53de3468ba599手续费来源

2、通过Bybit经过一层中转流入该地址。

手续费转账地址:

0x4FbC021742A4664D1cf8e9d2730b8519B9Dcc523

0xb8b0626b86ed336c9c0fff56b20761438535aa06461dcca9cdc39dc10ec1c620

3、使用被盗的虚拟货币换成ETH作为手续费

有两个黑客盗币地址将盗取的USDT/USDC在DEX中换成ETH,再用作后续地址的手续费,下面是两个地址的初始手续费转账地址及哈希。

黑客地址1:

0xdddE20a5F569DFB11F5c405751367E939ebC5886

0xD475747a4937a66Cc7D4a2c7eA7F6e827D0f7390

交易哈希:

0x853b75b1b8a7f56c51fcba9b996af8d132b784cfa0da7162c20a48a5994d8a06

黑客地址2:

0x8E0001966e6997db3e45c5F75D4C89a610255b2E

0x0f3cf1fe16052223e091e87c2a6f7a9a94e53a565dfac7b83eb0b9b79458ad8f

图3 手续费分发地址0x1634Bf68e6b3Bb8D79388EfB3d1A5215506FBbEd手续费来源

该手续费分发地址通过Kucoin和ChangeNow两个交易所平台获取手续费并分发。

1、Kucoin

交易哈希:

0x0b0aa0d438e4f15c919e55148c87890ae0d089d036cadbdc6b87afa9e19f747b

2、ChangeNow

0x6db6c128960b7268f2bf8c199b2c0c017b3bee29bbefac0bf5d31c63b6373075

黑客归集地址手续费来源为手续费分发地址。沉淀地址未转账手续费。

图4 黑客攻击地址0x09F92eDce2E46C399BFE7881a7619598AF8436d5手续费来源

调用被攻击合约的地址通过一个共同的手续费分发地址获取手续费。

该地址通过FixedFloat交易所获取手续费。

0xc7a25eb840718028c0d8f402d1293dcb479755d77609a7dfb616c10e90176dec

0x09F92eDce2E46C399BFE7881a7619598AF8436d5。

Beosin KYT/AML追踪发现ETH链上盗币资金简图如下:

图5 Beosin KYT追踪的盗币资金流向简图

首先黑客通过一批地址来调用被攻击合约以利用漏洞,使用共计20个地址。

这20个地址的手续费均来自地址0x0dfeb429166e629204aca66467484cd88cb9701c,该地址手续费通过Fixedfloat转入。

黑客调用过Poly Network合约中的LOCK,将资金锁定后,再调用UnlockEvent和verifyHeaderAndExecuteTx两个函数,来对项目方实施攻击,案例如下: 

图6盗币哈希调取函数记录

可以看到在UnlockEvent中,变量toAddress已变成了黑客归集地址,并且amount也被修改为被盗取资金数量 (此处为1,592.51818168432 ETH)。 

图7盗币交易输入信息记录

从这里可以看到输入数据中Proof一项中已被替换为包含黑客归集地址的内容。

涉案黑客地址手续费部分主要从四个渠道获得:

1、通过Tronado.cash转入ETH

2、通过Bybit交易所转入ETH

3、通过KuCoin交易所转入ETH

4、通过FixedFloat交易所转入ETH

5、使用被盗取的ETH

黑客从2023年7月1日开始攻击,截止到目前,仅通过DeFi交易所将部分虚拟货币换成ETH,以及将ETH和部分其他虚拟货币转移到其他沉淀地址中,暂未对被盗资金进行销赃处理,但已准备好了交易所需手续费,在确认安全后会立刻对沉淀地址资金进行转移。

BSC链盗币路径与ETH盗币路径类似,黑客继续使用了一部分相同的地址来进行盗币操作,并利用合约漏洞将虚拟货币转移至黑客归集地址。

图8   Beosin KYT/AML追踪的盗币资金流向简图

首先黑客通过一批地址来调用被攻击合约以利用漏洞,使用超过30个地址。

这些地址的手续费均来自地址0x1634Bf68e6b3Bb8D79388EfB3d1A5215506FBbEd,该地址手续费通过Kucoin和ChangeNow平台转入。

而后通过借助同样的漏洞攻击合约,并将被盗资金转入归集地址中,随后部分资金转入多个沉淀地址。<span yes'; mso-bidi- font-size:10.5000pt;mso-font-kerning:1.0000pt;">

Polygon链盗币路径与上述两条链路盗币路径类似,黑客继续使用了一部分相同的地址来进行盗币操作,并利用合约漏洞将虚拟货币转移至黑客归集地址。

图9   Beosin KYT/AML追踪的盗币资金流向简图

首先黑客通过一批地址来调用被攻击合约以利用漏洞,Polygon链只使用了一个地址0x09F92eDce2E46C399BFE7881a7619598AF8436d5,手续费通过Fixedfloat转入。

Beosin

企业专栏

阅读更多

金色早8点

Odaily星球日报

金色财经

Block unicorn

DAOrayaki

曼昆区块链法律

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

链链资讯

[0:15ms0-2:648ms