Premint 恶意代码注入攻击细节分析

7?月?17 日,据慢雾区情报反馈,Premint 遭遇黑客攻击。慢雾安全团队在第一时间进行分析和预警。

本文来自慢雾区伙伴 Scam Sniffer 的投稿,具体分析如下:

攻击细节

打开任意 Premint 项目页面,可以看到有个 cdn.min.js 注入到了页面中,看调用栈该 js 是由 [boomerang.min.js](https://s3-redwood-labs.premint.xyz/theme/js/boomerang.min.js) 注入,目前该 s3-redwood-labs-premint-xyz.com 域名已经停止解析,无法正常访问了。

基于NFT的“社区即服务”初创公司Afropolitan完成210万美元pre-seed轮融资:金色财经报道,基于NFT的“社区即服务”初创公司Afropolitan宣布完成210万pre-seed轮融资,Hashed、Atlantica Ventures、Microtraction、Cultur3 Capital、Shima Capital、Savannah Fund、Ingressive Capital、Audacity Fund 和 RallyCap Ventures、以及包括前Coinbase首席技术官Balaji Srinivasan 在内的 25 为天使投资人参投。据悉,Afropolitan计划铸造10,000枚NFT“护照”来支持DAO并授予DAO成员参加活动等权限,之后还将推出APP,将生态系统中的各类服务和产品纳入其中。(TechCrunch)[2022/6/21 4:42:00]

查询 Whois,该域名在 2022-07-16 注册于 Tucows Domains Inc:

zCloak Network完成580万美元pre-Series A轮融资,Coinbase Ventures领投:6月17日消息,零知识证明初创公司 zCloak Network 完成 580 万美元?pre-Series A 轮融资,Coinbase Ventures 领投,Bixin Ventures、Matrixport Ventures、DFG、Sancus Ventures、KuCoin Ventures、Sanctor Capital、Hash Global 和 Jump Capital 等参投。该笔融资将用于扩大 zCloak Network 与身份数据证明者、Web3 应用程序和其他区块链网络的合作伙伴关系。 (The Block)[2022/6/17 4:34:28]

动态 | BitSpread接受Tether作为BlockBerry平台支付方式:稳定币Tether(USDT)现在可以用来订阅BitSpread的BlockBerry.com,后者是由BitSPread Group运营的在线加密财富管理和交易平台。BlockBerry财富管理为机构、家庭办公室、财富管理公司和高净值个人等成熟投资者提供加密货币投资策略。BlockBerry Trading是一个分层服务平台,为用户提供专业质量的加密货币交易服务,如现成交易和定制算法、点击直通式交易和期权定价。(Hedgeweek)[2019/9/4]

打开 virustotal.com 可以看到该域名之前曾解析到 CloudFlare:

动态 | 软银集团否认参与比特大陆Pre-IPO轮融资:据Cointelegraph报道,近日软银集团通信办公室的Kenichi Yuasa表示“软银集团(SoftBank Group Corp.)和软银愿景基金(SoftBank Vision Fund)都没有以任何方式参与比特大陆Pre-IPO轮融资”。今日,据腾讯公司消息,公司并沒有参与对比特大陆的投资。此前有传言称,比特大陆正式完成Pre-IPO轮签约,本轮投资者包括腾讯、软银等。[2018/8/19]

打开源代码可以看到 boomerang.min.js 是 Premint 用到的一个 UI 库:

该 js 是在 s3-redwood-labs.premint.xyz 域名下,猜测:

动态 | WordPress发布新插件支持商家接受数字货币支付:WordPress发布了一个新的开源插件MyCryptoCheckout,电子商务网站WooCommerce上的商家可以用其接受数字货币支付。目前,除了支持BTC、以太坊、以太坊经典、ZCash和Verge主流货币的支付,也支持ERC-20兼容的令牌付款,包括BNT、 GNT、BAT和QTUM。[2018/7/3]

上传文件接口有漏洞可以上传任意文件到任意 Path (比较常见的 Web 漏洞)

黑客拿到了他们这个 Amazon S3 的权限,从而可以注入恶意代码

这个第三方库被供应链攻击污染了

把 boomerang.min.js 代码下载下来,前面都是正常的代码,但是末尾有一段经过加密的代码:

这段代码负责把代码 s3-redwood-labs-premint-xyz.com/cdn.min.js 注入到页面。

恶意代码 cdn.min.js

根据代码内容,可以大致看到有通过调用 dappradar.com 的接口来查询用户的 NFT 资产列表(此前我们也有看到恶意网站通过 Debank,Opensea 的 API 来查询用户资产等)。

如果用户持有相关 NFT 资产:

恶意代码会以 Two-step wallet 验证的借口,发起 setApprovalForAll 让用户授权给他们后端接口返回的地址(攻击者一般为了提高封禁成本,基本上会分流并且每个地址控制在 200 个交易内)。

如果用户点了 Approve,攻击者还会调用监测代码通知自己有人点击了:

如果当用户地址没有 NFT 资产时,它还会尝试直接发起转移钱包里的 ETH 的资产请求:

另外这种代码变量名加密成 _0xd289 _0x 开头的方式,我们曾经在 play-otherside.org,thesaudisnfts.xyz 这些钓鱼网站也见到过。

根据用户资产发起 setApprovalForAll 或者直接转移 ETH,并且阻止用户使用开发者工具 debug。

预防方式

那么作为普通用户如何预防?现阶段 MetaMask 对 ERC 721 的 setApprovalForAll 的风险提示,远没有 ERC20 的 Approve 做得好。

即使很多新用户无法感知到这个行为的风险,但我们作为普通用户看到带 Approve 之类的交易一定要仔细打开授权给相关地址,看看这些地址最近的交易是否异常(比如清一色的 safeTransferFrom),避免误授权!

这种攻击和上次 Etherscan 上 Coinzilla 利用广告注入恶意的攻击方式挺相似的,那么在技术上有没有可能预防?

理论上如果已知一些恶意 js 代码的行为和特征:

比如说代码的加密方式

恶意代码关键特征

代码会反 debug

会调用 opensea, debank, dappradar 等 API 查询用户资产

根据这些恶意代码的行为特征库,那么我们可以尝试在客户端网页发起交易前,检测页面有没有包含已知恶意特征的代码来探测风险,或者直接更简单一点,对常见的网站设立白名单机制,不是交易类网站发起授权,给到足够的风险提醒等。

接下来 Scam Sniffer 和慢雾安全团队也会尝试探索一下如何在客户端来预防此类的攻击发生!

Ps. 感谢作者 Scam Sniffer 的精彩分析!

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

银河链

狗狗币最新价格金色观察|Uniswap V3的“漏洞”风云

熊市的盛夏,黑客攻击频出,让已经对价格无感的持币者们还要为安全担心。北京时间7月12日上午9时,币安创始人赵长鹏发布推文:“我们的威胁情报在 ETH 区块链上检测到 Uniswap V3 存在潜在漏洞.

[0:15ms0-1:552ms