# 我的Solana钱包大额资金被盗,真正的凶手竟然是他... **Published by:** [DbgKingg](https://paragraph.com/@dbgkingg/) **Published on:** 2022-05-26 **URL:** https://paragraph.com/@dbgkingg/solana ## Content Solana有两点好,第一点是会随时宕机,第二点就是骗子非常多。俗话说得好,常在河边走哪有不湿鞋,前两天为了抢变异猴,没想到我的钱包也被盗了。虽然只丢了点小钱,但是一向很小心的我这波确实翻皮水了,所以和社区R神一起排查了各种可能泄露的源头,最终功夫不负有心人锁定了源头。下面就给各位一一道来,请大家上车系好安全带跟着我开始这躺探索之旅!对不起我标题党了,不这样吸引不了你们进来阅读,其实损失不算严重首先要强烈抨击一下自己,虽然自己一向非常注重安全,在社区里面也是一直强调安全问题。这次确实非常不应该,但是还是希望分享自己的经历出来,哪怕能让少一个人受骗也好。讲倒是有一套,自己还不是被骗了 no.1讲倒是有一套,自己还不是被骗了 no.2事情经过因为最近Solana的NFT逐渐崛起了,其中除了无聊熊(https://magiceden.io/marketplace/okay_bears),最火热的莫过于变异猴(https://magiceden.io/marketplace/trippin_ape_tribe)。所以准备参战变异猴的公售,想着也能赚几顿猪脚饭,于是准备了些SOL,准备动用手动和科技一起开抢。傻了吧手动方面就不多说了,安装了Slope钱包,因为它自带自动approve的功能,能加大抢中的几率。科技方面因为自己以前并没有很深入地了解,所以在开mint前一天准备“学习”一下市面上的mint bot。在谷歌搜索关键字“Solana mint bot”、“Magic Eden mint bot”等关键词后,出来了蛮多页面和油管视频。但是很多都一眼骗子,所以那些需要下载exe、脚本或者安装浏览器插件的我都一律跳过了。一页的“骗子”搜索结果这时一款在Github开源的工具映入眼帘,它在搜索结果里名列前茅,我心想:“还有这好事?”。怀着疑问的我把把项目 git clone 到了本地,开始研究起来了源码。Github repohttps://github.com/SolanaNFTCollector/Solana-Minting-Bot 在读完代码和测试了一段时间后很快就发现这个所谓的“Bot”根本很难称得上是机器人,简单地概括一下就是使用Chrome Driver打开一个纯净版的Chrome浏览器,帮你预装Phantom钱包,全自动帮你导入钱包,并打开Magic Eden的铸造页面监测页面的按钮变化,在倒计时结束铸造按钮出现的瞬间,程序自动帮你点击铸造和点击Phantom弹出的确认窗口。 总机来说,这个机器人实在太过于“鸡肋”,我想象中的机器人是跳过前端直接与Magic Eden的Candy Machine交互,而不是这种伪科技。其次是它默认的Phantom钱包在铸造的时候是需要弹窗确认的,这弹窗花费的0.5 - 1秒可能就已经被抢完了。唯一的优点大概只有可以在同一个电脑多开多个同时运行,代码是没什么问题,但是和我心目中的机器人没啥大关系,所以也打消了使用它的念头。 注意在测试时是需要在 config.json 文件里面留下助记词的,安全起见我当时新开了一个空钱包进去用作测试。我把助记词写进去的config.json文件(里面的钱都被骗子转走了,不用试了)之后我就转去研究Candy Machine了,最终在开售前也没研究出个所以然,这里就不多阐述了。转眼去到准备开售的时候,当时调了闹钟半夜起床,没想到预售完只有82个剩下留给公售。瞬间心里凉了不大半,不过还是安装了Slope,新开了几个钱包想着手动冲一下试试,当然最后可想而知也是失败而终。这时候我的工具人喊我说,既然没抢到不如把钱转回交易所吧,我回到:没事的,我困了,明天再说吧!然后就带着怨念继续上床睡觉了。 结果没想到… 第二天,意外发现其中一个钱包准备拿来铸造的4个sol全被转走了,才恍然意识到钱包被盗了😑😑😑调查开始被转走的交易:https://explorer.solana.com/tx/4q339m8LPP3mrtv9F3kbRFeFDqv66aTAm8UKAs1BZVUvi6mhvAzgxQSucH9mwUYrmoPDVZKBBQYaHseDtM6NJqfP 虽然4个sol不算多,但也不算少了,可以吃好几顿好的了。我深知钱是要不回来了,但是还是想着究竟是哪个部分出错导致被盗的。于是我思考了好几个可能性,但是大多都逐一被排除了:安装的Slope钱包是假的:是通过官网链接安装的,确认为真Slope的自动授权给到了骗子的网站:后来确认了仅Magic Eden被授权了,并且转账发生的时候正在睡觉,不可能有人操作我的电脑电脑的剪切板被监控了:这点也被排除了,因为我平时很小心,没有安装过任何可疑的软件或者浏览器的插件。再说如果被监控了,钱包大概很早就被盗了最后能想到的只有之前测试过的这个“bot”在怀疑这个bot的同时,还有一个挺奇怪的问题,就是我仅仅导出过一次那个测试钱包的助记词一次,之后用来铸造的钱包都是新建的钱包。遂才发现这个被盗的钱包实则为当时想当然地新建的子钱包,如果助记词泄露,除了主钱包外所有子钱包也都会被泄露。(这是一个蛮有意思的话题,我准备再专门发一篇介绍多钱包概念的文章…)但这里其实被盗的原因就很清晰了,因为自己的一时疏忽,转账到了一个子钱包,结果助记词泄露了导致被盗。于是我花了点时间再次阅读了一次之前使用的这个Bot的代码,还是没发现任何奇怪的地方,正当我还在迷茫的时候,幸好这时候社区R神,哎呀不对不对,名侦探R神提出了一个有趣的点就是问题可能出在这个预装的Phantom里面,结果还真被他找到了一些端倪,我们来重现一下现场吧。R神出现了可以看到项目文件夹里面有一个 Phantom.crx 的文件项目文件夹导入浏览器插件的代码在代码部分也能看到在 magiceden.py 文件的122行对这个浏览器插件进行了导出。要想分析这个插件,首先我们需要把.crx文件解压出来,.crx实则就是一个压缩文件。直接运行指令 unzip <文件路径> 即可,解压出来之后发现文件还是蛮多的,为了缩短时间可能直接与官方版的对比比较好。盗版解压后的结果首先我们需要确认这个Phantom的版本,我们可以直接导入到浏览器里面查看,可以看到版本为0.12.0.1,对比我在官方下载的版本22.5.10相差甚远。盗版的Phantom导入后只能在网上找对应版本的官方下载文件,幸好在 https://www.crx4chrome.com/ 上面找到了官方的历史文件。下载下来同样的解压步骤,我们就得到了两个文件夹的文件,一个来源是官方,一个来源是那个从Github下载下来的bot。 这里借用一个叫做WinMerge的工具先简单对比一下两个文件夹,缩小排查范围。可以看到除了在盗版文件夹缺少了一个叫做 _metadata之外,唯一的不同是在一个叫 onboarding.6e49cdaa.js的文件。与官方文件比对由于这个JS文件被压缩了比较难阅读,我们美化一下再次对比一下,结果嘛,其实一目了然,整个文件唯一的不同就是右边绿色背景的部分。可以看到在助记词被导入Phantom钱包的同时,也通过一个GET 请求被发送到了这个网址:https://botrecievewe.herokuapp.com/submit/onboarding.6e49cdaa.js 文件比对结果总结一下至此,终于破案了,原来这个在项目里面隐藏起来,看似人畜无害的Phantom插件实测是被魔改了的文件。在运行程序的时候,助记词也被骗子接收到。因为被注资的子钱包实测为测试钱包的子钱包,所以获取了助记词的骗子自然也是能把资金转走。名侦探R神虽然因为自己的疏忽被骗了没得赖,还是想稍微总结一下经验:任何时候不要泄露你的助记词!!!在做有风险的事情时一定要使用空钱包(注意是全新的钱包,不是新的子钱包)子钱包并不安全,如果助记词泄露了,所有子钱包也会随之泄露。更安全的做法应该是在新的浏览器或者新开一个浏览器账号,重新安装钱包重新新建一个全新的助记词不要相信网上任何的bot,无论是下载下来需要安装的程序、脚本、网站工具还是像我这次从Github下载下来的工具都不可信区块链世界非常凶险,无论是什么链骗子都很多,因为作恶成本非常低,Solana的更是尤为多。一旦资金被盗取,取回的可能性基本为0对自己不要盲目自信,常在河边走哪有不湿鞋,任何时候都需要带脑子行事希望分享我的被骗经历除了能博大家一笑以外,也能让大家学习到一些新的东西,如果能让更少的人上当受骗就更好了。虽然迷幻猴没抢到,钱被盗了,我学习到了知识与经验呀!我想只有亲身体会了才会成长,在这里万分感谢提供相当大帮助的R神还是GohanGo!!社区的小伙伴!如果觉得有帮助,分享出去~ ps 麻烦大家狠狠举报一下这个Github仓库 (https://github.com/SolanaNFTCollector/Solana-Minting-Bot),它还有很多的fork,相信都是已经被污染了的,在这里感谢了! 大家可以参考我用来举报的文案:This Repo that the user created, has a file called Phantom.ctx is a fake Chrome extension file that has been modified by the repo owner. If you decompile the .ctx file and compare the files with the official Phantom wallet (in the same version: 0.12.0.1), you will find a difference in the onboarding.6e49cdaa.js file, which includes sending the wallet seed phrase to this URL: Scammer URL. If anyone had included their wallet seed phrase and run this program, it's very likely that the seed phrase will be sent to the scammer and hence all the assets in the wallet will be stolen.pps 下一篇文章准备详细介绍多钱包概念,这几天会做点功课,敬请期待!大怨种作者: https://twitter.com/DbgKinggg 来自最有爱的社区: https://twitter.com/GohanGoNFT 加入最有爱的社区Discord: https://discord.com/invite/GSgmWYQUPD ## Publication Information - [DbgKingg](https://paragraph.com/@dbgkingg/): Publication homepage - [All Posts](https://paragraph.com/@dbgkingg/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@dbgkingg): Subscribe to updates