看到Nepnep写的WMCTF Writeup有写到这个知识点,本人对此非常感兴趣,于是自己简单整了一下,单纯为了好玩
注意!本文仅用于学习用途,请勿将文章内操作用于违法行为!!!
第一步:跟着Writeup查看指定的StackExchange问题:Where does metamask store the wallet seed? (file path) - Ethereum Stack Exchange
里面的回答基本上都是Chrome插件的Metamask,不过好像有一个提到了Firefox上的Metamask,刚好我主要用的是Edge上的Metamask,所以就在火狐上面新建了一个地址
根据那个回答,我尝试去自己的Appdata找了一下火狐插件的那些数据放在哪里,简单来说就是%APPDATA%\Mozilla\Firefox\Profiles\cil8gc9h.default-release\storage\default
,那串乱码应该是版本号之类的信息,问题不大,后面是.default-release
就行,里面的就是各种数据
至于我们的小狐狸是一个插件,那它的目录自然是以moz-extension+++
开始的,但是我们需要它的内部UUID,根据回答我们在火狐输入about:debugging#/runtime/this-firefox
就能看到各个插件的UUID了,找到对应的目录然后进入该目录就正式进入Metamask的“私人领域”了(并不)
根据回答,他查看了idb
目录下的那个SQLite文件,但是没找到什么重要的信息,咱也就是主打一个叛逆,用Navicat打开看看什么情况:
还真就一个啥都没有,看了这么久确实没啥东西,不过回答说这个SQLite删掉了Metamask就重新问你要助记词了…这个数据库怕不只是一个索引?
再仔细看看file
表里面,只有一个id
…诶你等等,我好像在旁边那个目录看到过同样id的文件,马萨卡…
于是把文件扔010看了一下…还真就是我们需要的数据文件
至于数据文件的结构我们不需要知道(不过看这布局估计是哪个db),我们只需要找到三个东西:data
,salt
和iv
搜一下,"iv"
,这样找到的数据绝大部分是连续完整的,剩下的那些不可见字符其实都好解决,给一下最后提取出的数据的json:
1 | {"data":"Your data in Base64","iv":"Your iv in Base64","keyMetadata":{"algorithm":"PBKDF2","params":{"iterations":600000}},"salt":"Your salt in Base64"} |
对于算法和迭代次数这两个是固定的,好像整个哈希是由PBKDF2_SHA256
和AES_GCM
两个部分组成的,不过原理我实在不清楚,知道有这两个东西也是后面看某位大佬的hashcat模组源码知道的,这个是后话了
至于解密助记词,我们还有一个东西需要获取,那就是给Metamask设置的密码,Metamask会使用这个密码对助记词进行加密,这个确实没有什么办法拿到,基本上就只能靠爆破获取,一般来说是使用hashcat
其实hashcat本来是有26600模块对这个进行爆破的,不过前段时间好像Metamask那边更新了他们的哈希方法,因此使用26600模块基本不可能爆出来,但是还是有大佬写出了模块并且发布了出来,分别是cyclone-github/hashcat_26620_kernel: Custom hashcat kernel for new Metamask Vaults以及flyinginsect271/MetamaskHashcatModule: Test Metamask’s new encryption algorithm improvements! For educational purposes only. (github.com),前者需要自行编译,后者只需要将作者编译好的.dll或者.so复制到hashcat里的\modules\
目录就可以了,我这里使用的是后者,也就是26650模块
模块26620的哈希格式是$metamask$600000$_salt$_iv$_data
,而模块26650的哈希格式是$metamask$_salt$_iv$_data
,两个的$metamask$
都是签名,别改
我这边卸载重装了一遍Metamask然后新建了地址,密码是rockyou随便找的,最后爆了亿下:
速度不到2K H/s,只能说保护的还是挺好的
好的,我们所有的要素都有了,最后就是获取助记词了,Metamask其实有发布一个网页用于解密助记词:MetaMask Vault Decryptor(对,就是官方),我们把上面的json输入进去,然后输入我们刚刚爆破出来的密码,我们就可以看到我们这个地址的助记词是什么了!
刚刚在火狐删掉了扩展,删掉扩展的同时也把数据文件一起删掉了,难怪每次重装Metamask要重新问你要助记词和新建一个密码…
- 本文作者: 9C±Void
- 本文链接: https://cauliweak9.github.io/2024/09/11/fox-n-fox/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!