title: 導出Chrome瀏覽器中保存的密碼
date: 2018-02-11 17:54:51
tags:
導出Chrome瀏覽器中保存的密碼
先知看到的,挺有意思,記錄一下
不同瀏覽器的密碼路徑:
360:
C:\Users\1\Local Settings\Application Data\360Chrome\Chrome\User Data\
C:\Users\1\AppData\Local\360Chrome\Chrome\User Data\
chrome:
C:\Users\1\Local Settings\Application Data\Google\Chrome\User Data\
C:\Users\1\AppData\Local\Google\Chrome\User Data\
使用工具讀取數據庫文件,測試工具: SQLiteStudio
下載地址:
https://sqlitestudio.pl/index.rvt
Chrome做二次加密的方法: 通過Windows API CryptProtectData()實現
參考加密代碼:
CryptProtectData()的說明可參考:
https://msdn.microsoft.com/en-us/library/windows/desktop/aa380261(v=vs.85).aspx
獲得關鍵信息:
(1)對應解密函數為CryptUnprotectData
參考地址:
https://msdn.microsoft.com/en-us/library/windows/desktop/aa380882(v=vs.85).aspx
(2)只有與加密數據的用戶具有相同登錄憑據的用戶才能解密數據
也就是說,只能在當前用戶的憑據下解密數據
解密的開源代碼也有很多,這里給出一個示例:
from os import getenv
import sqlite3
import win32crypt
import binascii
conn = sqlite3.connect(getenv("APPDATA") + "\..\Local\Google\Chrome\User Data\Default\Login Data")
cursor = conn.cursor()
cursor.execute('SELECT action_url, username_value, password_value FROM logins')
for result in cursor.fetchall():
password = win32crypt.CryptUnprotectData(result[2], None, None, None, 0)[1]
print password
注:
調用win32crypt.CryptUnprotectData需要安裝pywin32
下載地址:
http://sourceforge.net/projects/pywin32/files/pywin32/Build 219/pywin32-219.win32-py2.7.exe