渗透技巧——导出Firefox浏览器中保存的密码

来源:岁月联盟 编辑:猪蛋儿 时间:2020-02-16

结果正常,如下图:

我的测试环境(key4.db),Master Password为12345678,命令如下:

解密存在bug,提示口令失败,如下图:
3.Lazagne
地址:https://github.com/AlessandroZ/LaZagne/
导出Firefox浏览器的代码来自https://github.com/lclevy/firepwd
结果同上,如下图:

4.firefox_decrypt.py
地址:https://github.com/unode/firefox_decrypt
使用NSS(Network Security Services)进行解密,支持key3.db和key4.db的Master Password解密。
能获得部分信息,包括以下类别:
· Website address
· Username
· Password
测试结果如下图:

在64位系统下,Python和Firefox的版本需要保持一致(同为32位或者同为64位),否则会提示ERROR - Problems opening 'nss3.dll' required for password decryption
注:在下一篇文章《通过Network Security Services导出Firefox浏览器中保存的密码》将要详细介绍通过NSS解密的细节。
5.Firefox浏览器
通过导出配置文件的方式实现。
需要获得记录文件(logins.json或signons.sqlite)和密钥文件(key4.db或key3.db),保存在本地的文件夹C:/test/data1
使用-profile参数启动Firefox:

输入正确的Master Password,成功获得Firefox浏览器保存的信息。
0x04 利用思路
如果Firefox设置了Master Password,使用以上工具尝试导出密码时,结果会显示为0条结果,所以需要先读取记录文件确认是否存在记录。
可以通过查询注册表的方式获得Firefox的版本,这里可以参考之前开源的代码:https://github.com/3gstudent/ListInstalledPrograms/blob/master/ListInstalledPrograms.ps1
不同版本的Firefox对应的记录文件不同,具体区别如下:
· Version大于等于32.0,保存记录的文件为logins.json
· Version大于等于3.5,小于32.0,保存记录的文件为signons.sqlite
定位logins.json文件的命令如下:

定位signons.sqlite文件的命令如下:

如果存在记录,接下来就可以使用工具尝试导出。
在离线导出时需要注意以下问题:
1.未设置Master Password
只需要获得记录文件(logins.json或signons.sqlite)和密钥文件(key4.db或key3.db)。
使用firepwd.py或者Firefox浏览器导入配置文件即可。
2.设置Master Password
(1)只获得记录文件(logins.json或signons.sqlite)和密钥文件(key4.db或key3.db)
本地使用Firefox浏览器导入配置文件,输入Master Password
(2)需要获得完整的配置文件
需要包括以下文件:
· %APPDATA%/Mozilla/Firefox/profiles.ini
· %APPDATA%/Mozilla/Firefox/Profiles/xxxxxxxx.default/中的文件
使用firefox_decrypt.py,命令示例:

0x05 小结
本文介绍了导出Firefox浏览器密码的原理和利用方法,分析了使用Master Password解密时需要注意的细节。
对于普通用户来说,为了增加密码的安全性,建议设置Master Password。
 

上一页  [1] [2]