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

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

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

攻击细节

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

Hal Press:下周在SVB听证会上储户将获得至少50%的存款:金色财经报道,对冲基金North Rock Digital CEO Hal Press发推称,关于SVB的听证会,有许多不同的渠道正在进行,包括将银行完全出售给另一家银行或政府的支持,如果需要的话。更重要的是,下周听证会上储户(甚至是大储户)将获得至少50%的存款(SVB的大部分资产已经被出售),甚至可能更多。长期来看,他们可能会得到90%以上的回报,而且很可能没有储户损失一分钱。[2023/3/12 12:58:02]

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

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

Coinbase正在收购资产管理公司Osprey Funds:5月21日消息,两名知情人士透露,Coinbase正在收购资产管理公司Osprey Funds。(CoinDesk )[2021/5/21 22:27:47]

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

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

上传文件接口有漏洞可以上传任意文件到任意Path

声音 | ICE主席Jeff Sprecher:预计Bakkt在今年晚些时候推出:据Cointelegraph消息,美国洲际交易所(ICE)主席 Jeff Sprecher在近日举行的财报电话会议上表示,预计该公司的数字资产平台Bakkt将于2019年晚些时候推出。此次财报会议的主题是洲际交易所第四季度和2018年全年的财务业绩。Sprecher解释说,公司在战略计划上花费了超过10亿美元,包括推出数字资产平台。[2019/2/10]

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

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

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

区块链猎头企业速职完成数百万Pre-A轮融资:5月16日消息,全民猎头项目——速职完成一轮新的融资,投资方由知名天使投资人和知名币圈投资人组成,其中速职创始人干滨豪参与跟投。干滨豪表示,线上招聘平台的收益60%来自于简历售卖,单个用户的简历只要被平台储存,它将可以无限制售卖。速职将通过区块链技术去形成基于个人身份的职业档案,每访问一次是访问权限的,通过智能合约去生成每个人的职业档案访问权限。[2018/5/17]

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

恶意代码cdn.min.js

PreAngel创始合伙人王利杰:区块链技术应在监管下运行:PreAngel创始合伙人王利杰认为,现在能懂区块链的人很少,但区块链已经很热,行业里的人特别痴迷,没有进场的人很不理解。互联网带来了自媒体时代,区块链带来的很可能是自金融。他表示:“区块链技术发展若干年后,银行、保险等中心化的机构可能都会被颠覆。这关系到国家稳定,所以区块链不是不能做,而是要在监管下做。”[2018/1/27]

根据代码内容,可以大致看到有通过调用dappradar.com的接口来查询用户的NFT资产列表。

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

恶意代码会以Two-stepwallet验证的借口,发起setApprovalForAll让用户授权给他们后端接口返回的地址。

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

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

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

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

预防方式

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

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

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

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

比如说代码的加密方式

恶意代码关键特征

代码会反debug

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

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

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

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

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

金宝趣谈

[0:15ms0-5:868ms