用户的Firefox各种配置文件存储在自己的Appdata\Roaming(%appdata%)目录下:
C:\Users\admin\AppData\Roaming\Firefox\Profiles\<random text>.default\
不同版本的Firefox浏览器,存放登录信息文件和存放密钥文件也不同,其中用到的加密方式也有少许不同:
Firefox 版本 <32 (key3.db, signons.sqlite) Firefox 版本 >=32 (key3.db, logins.json) Firefox 版本 >=58.0.2 (key4.db, logins.json) Firefox 版本 >=75.0 (sha1 pbkdf2 sha256 aes256 cbc used by key4.db, logins.json)
如果Firefox 版本 >=58.0.2 那么接下来需要找的两个文件路径分别是:
C:\Users\admin\AppData\Roaming\Firefox\Profiles\<random text>.default\key4.db
C:\Users\admin\AppData\Roaming\Firefox\Profiles\<random text>.default\logins.json
logins.json将用户所有登录信息(包括URL,用户名,密码和其他元数据)存储为JSON。值得注意的是,这些文件中的用户名和密码均经过3DES加密,然后经过ASN.1编码,最后写入base64编码的文件中,用一个测试登录信息如下所示,其中encryptedUsername和encryptedPassword就是被加密的用户名和密码
定位logins.json文件的位置可通过cmd命令实现,内容如下:
dir %APPDATA%\Mozilla\Firefox\Profiles\*logins.json /s /b
(1)只获得记录文件(logins.json或signons.sqlite)和密钥文件(key4.db或key3.db)
可以利用Firefox浏览器解码
需要获得记录文件(logins.json或signons.sqlite)和密钥文件(key4.db或key3.db),保存在本地的文件夹C:\test\data1
使用-profile参数启动Firefox:
firefox.exe -profile C:\test\data1
输入正确的Master Password,成功获得Firefox浏览器保存的信息
(2)需要获得完整的配置文件
需要包括以下文件:
使用firefox_decrypt.py,命令示例:
firefox_decrypt.py C:\test\data1
lclevy/firepwd: firepwd.py, an open source tool to decrypt Mozilla protected passwords (github.com)
如果是带master passwd的
使用测试文件mozilla_db(key3.db),Master Password为
MISC*
,命令如下:python firepwd.py -p 'MISC*' -d mozilla_db/