導出Chrome瀏覽器中保存的密碼



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()實現

參考加密代碼:

https://github.com/scheib/chromium/blob/eb7e2441dd8878f733e43799ea77c2bab66816d3/chrome/browser/password_manager/password_store_win_unittest.cc#L107

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM