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

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

在之前的文章《渗透技巧——导出Chrome浏览器中保存的密码》介绍了导出Chrome浏览器密码的原理和利用方法,本文将要对导出Firefox浏览器密码的原理和利用方法进行介绍,分析利用思路。
0x01 简介
本文将要介绍以下内容:
· 密码保存方式
· 原理介绍
· 常用的导出工具
· 利用思路
0x02 密码保存方式
正常用户在访问网站时,可选择使用Firefox浏览器保存登录的用户密码,用于下次登录的时候Firefox自动填写登录密码。
可以通过选择Logins and Passwords进行查看,如下图:

包括以下信息:
· Website address
· Username
· Password
· Created
· Last modified
· Last used
所有记录保存在同一个文件中,具体位置为:%APPDATA%/Mozilla/Firefox/Profiles/xxxxxxxx.default/
注:xxxxxxxx为8位随机字母和数字的组合。
不同版本的Firefox保存记录的文件名称不同,具体区别如下:
· Version大于等于32.0,保存记录的文件为logins.json
· Version大于等于3.5,小于32.0,保存记录的文件为signons.sqlite
更详细的文件说明可参考:
http://kb.mozillazine.org/Profile_folder_-_Firefox
定位logins.json文件的位置可通过cmd命令实现,内容如下:

查看logins.json文件的内容,如下图:

其中encryptedUsername和encryptedPassword是加密的内容,解密需要获得密钥文件(key和iv)并作3DES-CBC解密。
不同版本的Firefox密钥文件的位置不同,具体区别如下:
· Version小于58.0.2,密钥文件为key3.db
· Version大于等于58.0.2,密钥文件为key4.db
注:key3.db和key4.db的版本区别来源于https://github.com/lclevy/firepwd/blob/master/firepwd.py#L236
我在我的测试系统(Win7x64)下,安装64位Firefox,测试结果有所不同,具体如下:
· 如果Firefox的版本低于58.0,密钥文件为key3.db
· 如果Firefox为更高的版本,密钥文件为key4.db
默认情况下,当前用户的权限可以查看Firefox浏览器中保存的所有密码,为了提高安全性,Firefox浏览器支持为保存的密码添加额外的保护:设置Master Password。
具体位置如下图:

添加Master Password后,查看保存的密码需要额外输入Master Password。
解密流程:
1. 读取密钥文件(key4.db或key3.db),获得key和iv
2. 读取记录文件(logins.json或signons.sqlite)的内容
3. 如果未设置Master Password,使用key和iv对记录文件中的加密内容进行3DES-CBC解密 如果设置Master Password,还需要获得明文形式的Master Password,才能进行解密
0x03 导出工具
1.WebBrowserPassView.exe
下载地址:
https://www.nirsoft.net/utils/web_browser_password.html
注:这个版本不支持命令行操作。
命令行版本需要在另一地址下载:
https://www.nirsoft.net/password_recovery_tools.html
命令行下的使用方法:

结果保存在c:/test/passwords.html中,内容如下图:

能获得完整的信息,包括以下类别:
· Website address
· Username
· Password
· Created
· Last modified
· Last used
不支持使用Master Password解密。
2.firepwd.py
地址:https://github.com/lclevy/firepwd
需要安装依赖包:

能获得部分信息,包括以下类别:
· Website address
· Username
· Password
命令示例:

结果如下图:

支持使用Master Password解密。
注:我在自己的测试环境下,firepwd.py只支持key3.db的Master Passwor解密,key4.db的Master Passwor解密存在bug。
命令示例:
使用测试文件mozilla_db(key3.db),Master Password为MISC*,命令如下:

[1] [2]  下一页