感谢前辈们铺好的路
https://3gstudent.github.io/3gstudent.github.io/%E6%B8%97%E9%80%8F%E6%8A%80%E5%B7%A7-%E5%AF%BC%E5%87%BAFirefox%E6%B5%8F%E8%A7%88%E5%99%A8%E4%B8%AD%E4%BF%9D%E5%AD%98%E7%9A%84%E5%AF%86%E7%A0%81/
这里是由于是遇到了目标用户没有%APPDATA%环境变量的时候用了chrome和firfox但是密码都抓不到引发的思考。而且目标系统很奇怪不像一般的用户目录是C:userswww这种
学习思路
原理 常用工具 利用
由于firfox在没有关闭自动更新的情况下,一般使用就会自动更新,所以这里我们只看最新版的
不同版本的Firefox保存记录的文件名称不同,具体区别如下:
- Version大于等于32.0,保存记录的文件为logins.json
- Version大于等于3.5,小于32.0,保存记录的文件为signons.sqlite
这里由于我们的版本Version大于3.5了,所以保存记录的文件为signons.sqlite,由于这是我的测试机器,所以环境变量和目录
都是正常目录且版本为84.0.1
C:Usersjava>dir %APPDATA%MozillaFirefoxProfiles*logins.json /s /b C:UsersjavaAppDataRoamingMozillaFirefoxProfilesvcpi2zfq.default-release logins.json
其中encryptedUsername
和encryptedPassword
是加密的内容,解密需要获得密钥文件(key和iv)并作3DES-CBC解密
不同版本的Firefox密钥文件的位置不同,具体区别如下:
Version小于58.0.2,密钥文件为key3.db Version大于等于58.0.2,密钥文件为key4.d
这里介绍一下Master Pass,就像二级密码一样在我理解来
解密流程
读取密钥文件(key4.db或key3.db),获得key和iv 读取记录文件(logins.json或signons.sqlite)的内容 如果未设置Master Password,使用key和iv对记录文件中的加密内容进行3DES-CBC解密 如果设置Master Password,还需要获得明文形式的Master Password,才能进行解密
导出工具
0X01PasswordFox
这是https://www.nirsoft.net/utils/web_browser_password.html的子项目
此工具并不支持master pass解密
0X02firepwd.py
地址:https://github.com/lclevy/firepwd
python报错解决办法
https://nomodulenamed.com/m/Crypto.Util.Padding
我们加master pass看看
刚刚的解密不出来了
python firepwd.py -p 123456789 -d mozilla_db
成功解密
0X03Lazagne
这个就不用多介绍了 神器 想必大家都知道
地址:
https://github.com/AlessandroZ/LaZagne/
0x04firefox_decrypt.py
地址:https://github.com/unode/firefox_decrypt
0X05net版firfox解密
https://github.com/gourk/FirePwd.Net
利用方法
在设置了Master pass的情况下如果不知道master pass 很难解密
在未设置的情况下 最好是脱文件回来解密 因为 在目标机器上还要与av对抗 如果你的bypass AV能力不是特别强 最好不要正面与AV对抗能避免就避免
其实这篇文章也只是学习了工具的使用,对于加解密算法并未深入了解
参考
https://3gstudent.github.io/3gstudent.github.io/%E6%B8%97%E9%80%8F%E6%8A%80%E5%B7%A7-%E5%AF%BC%E5%87%BAFirefox%E6%B5%8F%E8%A7%88%E5%99%A8%E4%B8%AD%E4%BF%9D%E5%AD%98%E7%9A%84%E5%AF%86%E7%A0%81/ http://kb.mozillazine.org/Profile_folder_-_Firefox https://www.nirsoft.net/password_recovery_tools.html https://github.com/lclevy/firepwd/issues?q=is%3Aissue+is%3Aclosed https://nomodulenamed.com/m/Crypto.Util.Padding https://github.com/unode/firefox_decrypt https://github.com/gourk/FirePwd.Net
学习之路 少就是多 慢就是快