查看原文
其他

旧坑新伤 —— 授权恶意合约被盗分析

慢雾安全团队 慢雾科技 2024-01-09

By: Zero & Lisa


背景


近期,慢雾安全团队接触到几起由于授权引起的盗币事件,这些事件是最简单的 Approve 授权导致的盗币,而关键点在于受害者是在很久之前无意中点击了 Approve 授权。好在区块链的特性 —— 雁过留痕,在大量链上数据中总能发现蛛丝马迹。

被盗案例分析


根据受害者提供的信息,被盗交易如下:


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


粗略一看,只能看出受害者地址 0x8CCb 被黑客地址 0xFf6F 盗走了 13,811 USDT。


这笔交易既不是链下 permit/permit2 签名方式,也不存在其他合约漏洞任意授权方式,更不是 create2 方式。


在我们排除了这些常见的手法后,发现这笔交易竟是最简单的 Approve 授权导致的盗币,而且是很久之前埋下的导火索。


通过分析之前的链上交易记录,发现被盗的关键点在于受害者曾在两年多前授权过一个合约地址 (0x3880285800a89AB3C4338bf455acdA3da6f8fA24),授权记录如下:


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


授权交易及被盗转移交易的时间表列在下面,中间时间间隔长达 767 天:


  • 2021 年 11 月 9 日,08:13:28 - 恶意授权给恶意合约地址交易;

  • 2023 年 12 月 16 日,07:26:53 - USDT-BEP20 被非授权转移交易。


授权给恶意合约地址后,资金是如何被盗走的呢?我们来进一步看看细节。


(https://dashboard.tenderly.co/tx/bnb/0x59aef62a8cee79996ff2b44b723c97fbc0c6e2a0992c61dea0e65fcb2d78f608)


在这笔交易中,发生了以下步骤:


  • 通过调用 0xcc4187 合约地址的 0xe473d7ed 方法,检查被盗地址的余额及对授权给恶意合约的 Allowance;

  • 调用恶意合约(图中的 TransparentUpgradeableProxy)的 Proxy 合约 0xd367b5 的 0xe5ee9334 方法:

    • 验证 0xcc4187 合约地址的 Role 角色权限;

    • 恶意合约作为 msg sender 调用 USDT-BEP20 的 transferFrom 函数,从而实现将授权给恶意合约的 Token 资产转移到黑客获利地址 0xFf6F。


MistTrack 分析


据 MistTrack 分析,黑客地址 (0xFf6FC7eafF07C93b555a1CA2A9efcBbca2b8c83D) 目前已获利约 20 万美元,包括多种代币。



黑客初始资金来自 Tornado Cash 转入的 0.098 BNB,且使用过 Venus, PancakeSwap, DinosaurEggs, WombatExchange:



接着,我们对恶意合约地址 (0x3880285800a89AB3C4338bf455acdA3da6f8fA24) 进行分析:



我们发现这个恶意合约在 MistTrack 里被标记为 King,也就是说这个合约地址是原来项目 King 的合约地址,该合约地址与 Kingfund Finance 也存在交互,King 和 Kingfund Finance 应该是同一个项目:



再看下恶意合约地址的创建者地址 (0x37a7cA97b33b6a9D1d80D33bff9E38f156FF8541) 被标记为 Kingfund Finance: Deployer。



我们在搜索这个项目信息的时候,发现这居然是个 RugPull 项目。在 2022 年 1 月 19 日,Kingfund Finance 卷款带走超 300 WBNB(约 141,000 美元),关闭了其官网和官方推特。也就是说,目前还没对这个恶意合约取消授权的用户仍在被盗,慢雾安全团队建议用户及时取消对恶意合约的授权。


Dune 数据分析


(https://dune.com/misttrack/rugpull-malicious-authorization)


根据上述总结出的特征及借助 Dune 分析,我们还发现了另一个用户在 2022 年 1 月授权了上述提到的恶意合约地址 (0x3880285800a89AB3C4338bf455acdA3da6f8fA24),随后在 5 月份又授权了另一个 RugPull 恶意合约地址 (0x3a40AeC5453dB9b49ACb2993F0F82FB1553f4C23)。




该恶意合约的创建者 (0x406119D496a3b0D1F0B7DA020B5e89d6FFf4Ff08) 已将大部分获利资金转移到 Tornado Cash。



目前相关地址已被 MistTrack 拉黑。


总结


本文主要介绍了一个由于早年授权给 RugPull 项目导致后续资金持续被盗的案例,并根据相关特征扩展出 Dune 数据集。钓鱼无孔不入,一不小心就中招,慢雾安全团队建议用户经常主动查看自己的授权情况,可以使用 RevokeCash、ScamSniffer、Rabby 等工具查询,若发现有异常授权,请及时取消。


往期回顾

Ledger Connect Kit 被黑之谜

慢雾:警惕因使用 Replit 平台注册钱包造成的助记词泄漏

慢雾:流行 DeFi 项目基础安全风险分析

适得其反 —— 任意地址欺骗攻击解析

慢雾:朝鲜黑客 Telegram 定点欺诈攻击分析

慢雾导航


慢雾科技官网

https://www.slowmist.com/


慢雾区官网

https://slowmist.io/


慢雾 GitHub

https://github.com/slowmist


Telegram

https://t.me/slowmistteam


Twitter

https://twitter.com/@slowmist_team


Medium

https://medium.com/@slowmist


知识星球

https://t.zsxq.com/Q3zNvvF

继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存