如何使用命令行获取key3.db
和/或logins.json
以纯文本形式打印?
$ cat /home/*/.mozilla/firefox/*.default/key3.db
$ cat /home/*/.mozilla/firefox/*.default/logins.json
答案1
我在Linux上做了什么:
- 获取
nss
适合您的发行版的源包。 - 解压、修补并配置。
- 进入 nss/cmd/pwdecrypt 子目录
- 构建
pwdecrypt
工具。
我使用以下命令行来构建该工具(CentOS 7.7):
gcc -o pwdecrypt \
-I/usr/include/nspr4 -I/usr/include/nss3 -I../lib \
-lnss3 -lplc4 -lnspr4 -lnssutil3 -lsmime3 \
pwdecrypt.c ../lib/secutil.c ../lib/basicutil.c ../lib/secpwd.c ../lib/pppolicy.c
这可能需要安装某些开发包(在我的情况下是 nss-devel)。
获得该工具后,进入 Firefox 配置文件目录并执行:
jq -r -S '.logins[] | .hostname, .encryptedUsername, .encryptedPassword' logins.json | \
pwdecrypt -d .
或者(如果使用 key4.db 而不是 key3.db):
jq -r -S '.logins[] | .hostname, .encryptedUsername, .encryptedPassword' logins.json | \
pwdecrypt -d sql:.
你可能会发现透露已保存的 Mozilla Firefox 密码这篇文章很有帮助。
答案2
要列出 Firefox 或 Thunderbird 登录信息和密码,您可以使用这个firepwd
Python 脚本。
要在 Debian/Ubuntu 系统上安装它:
wget https://github.com/lclevy/firepwd/archive/master.zip
unzip master.zip && rm master.zip
apt install python3-pip # add sudo if needed
cd firepwd-master
pip3 install -r requirements.txt
运行它:
python3 firepwd.py -d /path/to/your-profile/
请注意,路径末尾的斜杠是必需的。
这还将打印来自的盐key3.db
。要跳过它们并仅显示登录名和密码,您可以添加| sed '1,/^decrypting login/d'
。例如,如果您的 Firefox 配置文件目录x.default
在您的主目录的默认文件夹中调用:
python3 firepwd.py -d ~/.mozilla/firefox/x.default/ | sed '1,/^decrypting login/d'
还有另一个 Pyhon 脚本,我还没有尝试过,建议security.stackexchange.com 上的这个答案:https://github.com/unode/firefox_decrypt。
因为它只是一个 Python 脚本,所以它当然也可以轻松地安装在 Windows 或 Mac 系统上。
答案3
假设你不需要经常这样做,并且乐意手动完成第一步,那么你可以使用密码导出器,在我转换到 KeePass 之前我曾经使用过它。