- 操作環境
- 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