- 操作环境 - Chrome 浏览器 Version 125.0.6422.112 (Official Build) (64-bit)
- Firefox 浏览器 Version 126.0 (64 位)
 
- Chrome 浏览器储存密钥原理 - 新的 Chrome 浏览器储存密码的方案是使用 Chrome 生成的 AES 密钥对用户密码进行加密之后储存在 Sqlite 数据库文件中,AES 密钥储存在文件中,Windows 操作系统下 Chrome 会使用 CryptProtectData 函数(Windows API)对密钥进行加密处理,之后再进行 Base64 编码
- 加密编码后的密钥保存在 C:\%USERPROFILE%\Google\Chrome\User Data\Local State文件中
  
- Sqlite 文件保存在 C:\%USERPROFILE%\Google\Chrome\User Data\Profile 1\Login Data和C:\%USERPROFILE%\Google\Chrome\User Data\Default\Login Data文件中,可以通过SELECT action_url, username_value, password_value FROM logins语句在这些 Sqlite 数据库中查找出关键信息
 
- 解密 Chrome 浏览器用户密码步骤 - 先解密出 AES 密钥,Base64 解码之后通过 CryptUnprotectData 函数进行解密,这一步可以通过编写 Python 脚本来完成
- 通过查找 Sqlite 数据库中的关键信息提取出 password_value 值,因为只有这个值被加密
- 通过 AES 密钥对 password_value 值进行解密
- 使用 decrypt_chrome_password.py 脚本自动化此步骤
 C:\> git clone https://github.com/ohyicong/decrypt-chrome-passwords.git C:\> pip install pycryptodomex && pip install pywin32 C:\> python3 decrypt_chrome_password.py 
- Firefox 浏览器用户密码提取 - Firefox 浏览器使用 Json 文件储存用户密码,文件路径为 Mozilla\Firefox\Profiles\*.default*\logins.json
- 通过 firefox_decrypt.py 脚本自动解密 Firefox 用户密码
 C:\> git clone https://github.com/unode/firefox_decrypt.git C:\> python3.9 firefox_decrypt.py 
- Firefox 浏览器使用 Json 文件储存用户密码,文件路径为 
- 参考 - How To Extract Plaintext Google Chrome Passwords - John Hammond
- https://github.com/ohyicong/decrypt-chrome-passwords.git - ohyicong
- https://github.com/unode/firefox_decrypt.git - unode