无码av一区,麻豆乱码国产一区二区三区,亚洲一区二区三区麻豆,美日韩精品视频

密碼破解的技術(shù)原理,如何提升解密的成功率,如何成功解密找回密碼

2024-12-25 12:44:09

像黑客一樣思考,問問自己,根據(jù)密碼的結(jié)構(gòu),密碼可以多快被破解。

當(dāng)黑客或滲透測試人員破壞系統(tǒng)并希望從數(shù)據(jù)庫轉(zhuǎn)儲中訪問明文密碼時,他們必須首先破解存儲的密碼哈希值。許多攻擊者一頭扎進了這個概念:他們嘗試了任何他們想嘗試的任意密碼攻擊,幾乎沒有理由。本討論將展示一些有效的密碼破解方法,以及如何將密碼的統(tǒng)計分析與工具結(jié)合使用,以創(chuàng)建一種有時間限制的方法來實現(xiàn)高效和成功的破解。

為什么這很重要?

密碼破解是一項垂死的事業(yè)。用戶需要創(chuàng)建更復(fù)雜的密碼,一些后端開發(fā)人員開始使用 Bcrypt 等機制來替換標(biāo)準(zhǔn)哈希函數(shù)。Bcrypt 哈希值需要更長的時間來生成,因此,密碼變得更加難以破解。破解者需要非??焖俚厣晒V挡拍苡行У仄平饷艽a,因此 Bcrypt 是對抗此類攻擊的非常強大的工具。為了說明這個例子,2012 年推出的由 25 個 GPU 集群制作的密碼破解程序能夠?qū)崿F(xiàn)每秒 3500 億個哈希的 NTLM 哈希生成速度,而 Bcrypt 哈希生成速度為 71,000 個。以此作為比較模型,對于生成的每個 Bcrypt 哈希,可以生成 500 萬個 NTLM 哈希。當(dāng)面對 Bcrpyted 算法時,黑客必須對密碼進行更多計算的猜測,并且不能依賴對每種可能性使用蠻力。

執(zhí)行流程的順序

注意:如果攻擊者知道密碼的長度非常短,以至于暴力破解密鑰空間不會花費很長時間,則無需采取增量攻擊步驟。

時間線

時間效率成為成功破解密碼的關(guān)鍵因素。雖然覆蓋用戶密碼的整個關(guān)鍵空間會很好,但這樣做所需的時間通常不可行。因此,在破解時,重要的是首先嘗試最省時的攻擊,如果不成功,則繼續(xù)進行覆蓋更多密鑰空間的較慢的密碼攻擊。最快的方法是基于常用用戶密碼和以前的密碼轉(zhuǎn)儲的簡單字典攻擊。從那里開始,應(yīng)該嘗試操縱字典以在末尾添加數(shù)字或符號或更改字母。這稱為混合攻擊或基于規(guī)則的攻擊。接下來,可以嘗試使用機器學(xué)習(xí)功能生成可能的密碼。馬爾可夫鏈就是一個很好的例子。通過組合英語中存在的常見元素來形成單詞(例如,“ing”、“er”、“qu”),可以生成對密碼的良好猜測,例如下面的密碼。盡管使用任何方法都很容易破解此特定密碼,但為了簡化所有攻擊媒介,我們將使用該密碼。Password1234Password1234

Pa + ss + word + 1234

最后,有針對性的暴力攻擊(稱為掩碼攻擊)基于密碼結(jié)構(gòu)覆蓋給定密碼的所有密鑰空間。我所說的密碼的 “結(jié)構(gòu)” 是指用于創(chuàng)建密碼的字符類型和順序。例如,具有大寫字母的“結(jié)構(gòu)”,后跟 7 個小寫字母,后跟 4 位數(shù)字(記為 )。Password1234ullllllldddd

小寫字母 、 大寫字母 、 符號 、 數(shù)字(l)(u)(s)(d)

因此,如果攻擊者決定使用該結(jié)構(gòu)創(chuàng)建字符組合的所有可能性,他或她最終會找到 密碼 .那么攻擊者的問題就變成了:在攻擊一組哈希值時,應(yīng)該首先以什么結(jié)構(gòu)為目標(biāo)?Password1234

統(tǒng)計分析

為了幫助回答這個問題,我對流行的密碼轉(zhuǎn)儲進行了一些統(tǒng)計分析,以查看是否存在比其他密碼結(jié)構(gòu)更普遍的密碼結(jié)構(gòu),以及這種結(jié)構(gòu)在多大程度上是正確的。超過 3400 萬個公開暴露的密碼的樣本量包括 RockYou、LinkedIn、phpBB 等著名的密碼轉(zhuǎn)儲。


下圖顯示掩碼結(jié)構(gòu)針對每個唯一掩碼的頻率。紅線表示 50% 線,該線出現(xiàn)在第 13 個最頻繁出現(xiàn)的掩碼之后。


從示例圖派生的密碼掩碼

這意味著前 13 個唯一掩碼結(jié)構(gòu)占樣本密碼的 50%。樣本中超過 2000 萬個密碼的結(jié)構(gòu)位于前 13 個掩碼中。就結(jié)構(gòu)化密碼的普遍性而言,這些結(jié)果相當(dāng)令人震驚。其他 50% 存在于長長的右尾內(nèi),在此圖中已被縮減。事實上,在 260,500 個唯一掩碼中,此圖中只顯示了 400 個。這種通用結(jié)構(gòu)密碼的概念令人難以置信;但是,當(dāng)您考慮用戶如何創(chuàng)建和記住他們的密碼時,這并不奇怪。根據(jù)分析數(shù)據(jù),有一些邏輯因素有助于解釋這是如何可能的。當(dāng)用戶被要求提供包含大寫字母的密碼時,超過 90% 的時間會將其作為第一個字符。當(dāng)要求使用數(shù)字時,大多數(shù)用戶會在密碼末尾(可能是畢業(yè)年份)加上兩位數(shù)字。下一個最受歡迎的選擇是用四位數(shù)字結(jié)束密碼(可能是上一年或今年)。在這種情況下,下一個最流行的數(shù)字在末尾有一個數(shù)字,在結(jié)尾處有三個數(shù)字。諸如此類的結(jié)構(gòu)共性使攻擊者能夠預(yù)測用戶密碼的結(jié)構(gòu)最有可能是什么。

統(tǒng)計混合 – 加速

利用這些結(jié)構(gòu)知識,可以安全地假設(shè)用戶很可能會將其密碼設(shè)置為 than(隨機字母),即使它們都以 9 個字母開頭并具有 9 個字母。因此,我們假設(shè)給定一個密碼結(jié)構(gòu),如果我們看到連續(xù)的字母,它很可能是一個單詞。這對 crackers 來說是一個非常有用的假設(shè),因為它消除了大量的 key 空間。然后,這變成了一種利用通用密碼結(jié)構(gòu)的統(tǒng)計顯著性的混合攻擊。potatoespwivwdhpp

效率和時間限制

通常,作為滲透測試人員,即使我們破壞了一組哈希值,我們也可能沒有時間破解所有哈希值。但是,破壞它們可能有助于升級對系統(tǒng)的訪問,并為客戶帶來更有用的發(fā)現(xiàn)。因此,在破解密碼時,確定將分配多少時間來破解一組哈希值可能很有用。使用在前面的分析中發(fā)現(xiàn)的結(jié)構(gòu),攻擊者可以根據(jù)按最快完成時間排序的密碼復(fù)雜性要求來確定他或她想要覆蓋前 10 種流行的結(jié)構(gòu)。最后,攻擊者可以通過花費不超過一個小時來執(zhí)行破解,從而對他或她的方法進行時間限制。這是在最近的一次獲取哈希的滲透測試中發(fā)現(xiàn)的。下面是基于 CPU 的 cracker 的結(jié)果快照。

受損結(jié)果表

在這種情況下,最快完成的結(jié)構(gòu)是 ,我們將其定義為一個大寫字母,后跟三個小寫字母(“W”代表“word”),然后是四位數(shù)字。哈希集中有 69 個與該結(jié)構(gòu)匹配的密碼,我的標(biāo)準(zhǔn) CPU 能夠在一分鐘內(nèi)遍歷該結(jié)構(gòu)的所有可能性。我們在 62 分鐘時停止破解,破解產(chǎn)生了 221 個獨特的破解哈希值,匹配了 491 個賬戶,總共導(dǎo)致了 11% 的泄露。破解密碼和帳戶泄露數(shù)量差異較大的原因是 Office 設(shè)置往往會導(dǎo)致人們使用常用密碼。如果攻擊者確定環(huán)境中正在使用通用密碼,則具有相同密碼的所有用戶也將受到威脅。U(W3)dddd

盡管混合攻擊或基于規(guī)則的攻擊(例如)可以更快地破解其中的幾個密碼,但攻擊密碼的結(jié)構(gòu)可以讓我們覆蓋更多的密鑰空間。如果 Faster 攻擊被證明無法成功破壞目標(biāo)哈希,則此方法是有效的下一步。此外,重要的是要記住,此示例是在相當(dāng)平庸的 CPU 上完成的,并且在強大的 GPU 上執(zhí)行相同的攻擊可以將此時間縮短到幾秒鐘。因此,確切的時機不如有效執(zhí)行理論重要。best64

針對

統(tǒng)計分析有助于我們普遍攻擊常見的密碼結(jié)構(gòu);但是,有一些工具可以幫助定位特定應(yīng)用程序。CeWL 等工具可以從網(wǎng)頁中抓取單詞,并用于生成專門針對公司的單詞列表或詞典。之所以有效,是因為公司傾向于使用與其行業(yè)、公司或工作相關(guān)的密碼。此外,由于我們確定常用密碼在工作環(huán)境中很流行,因此也可以將已經(jīng)被破解的密碼用作其他密碼的基礎(chǔ),這可能是類似的。例如,如果我們發(fā)現(xiàn) “” 是一個用戶的密碼,我們可能會將 “” 放入新的單詞列表中,將其放入規(guī)則集中,然后發(fā)現(xiàn)其他人擁有密碼 “”。這種使用破解的基本詞(如 '')并與周圍字符進行修飾的概念在破解從企業(yè)環(huán)境轉(zhuǎn)儲的哈希值時非常有效,這可以追溯到密碼重用的概念。根據(jù)我們進行的滲透測試,這最適合用于破解最后 20% 的未破解哈希值。AcmeCorp1234AcmeCorpAcmeCorp@2015AcmeCorp

修剪詞典以使猜測的所有密碼都符合應(yīng)用程序規(guī)定的要求也很重要,這樣就不會浪費時間猜測由于長度或字符組成而無法猜測的密碼。

把它放在一起

從最快的攻擊開始,覆蓋最少的密鑰空間(標(biāo)準(zhǔn)字典攻擊)到最慢和最大的密鑰空間(純蠻力)是考慮分配給攻擊的時間的最理想進展。因此,攻擊者應(yīng)該實施一種考慮到這一點的標(biāo)準(zhǔn)方法。如果攻擊者想要入侵的帳戶在第一階段完成,那么可能沒有理由繼續(xù)使用其他攻擊;但是,在許多情況下,如果存在目標(biāo)帳戶,則簡單的字典攻擊可能不夠,或者攻擊者只是想破壞盡可能多的帳戶,因此可能需要使用統(tǒng)計結(jié)構(gòu)的混合攻擊和有針對性的暴力攻擊。因此,建立方法對于成功破解至關(guān)重要,其中可以包括前面提到的方法以及一些自動化流程。最近的工具(如 PRINCE)可以幫助促進密碼破解。開發(fā)一條工具帶,例如 PRINCE 在方法中嘗試是很重要的,但了解工具背后的功能,而不是完全依賴它們,這將使破解更加有效。

防御 – 如何對抗統(tǒng)計數(shù)據(jù)

通過使用這些密碼進行分析,可以確定給定所需復(fù)雜程度的最流行的結(jié)構(gòu)。因此,開發(fā)人員可能應(yīng)該實現(xiàn)一些控件,以阻止用戶使用其中一些非常流行的結(jié)構(gòu),以使上一個圖形的曲線變平。然而,這個想法的問題在于,如果沒有簡單的結(jié)構(gòu),用戶可能會發(fā)現(xiàn)很難記住他們的密碼。我推薦使用需要雙重身份驗證的密碼管理器。這些應(yīng)用程序?qū)槟珊痛鎯δ乃忻艽a,因此內(nèi)存不是問題。他們生成的密碼在結(jié)構(gòu)上是隨機的,只要應(yīng)用程序允許,就可以一直使用。正如我之前提到的,加密密碼是另一種非常有效的方法,可以減緩攻擊者的發(fā)展前景。最后,在辦公室內(nèi)實施策略,幫助用戶了解共享密碼或重復(fù)使用密碼的危險,是朝著正確方向邁出的成功一步,即使用戶并不總是遵守。雖然他們很可能不會一直遵守,但這是一種有效的控制措施。

結(jié)論和收獲

密碼破解可能是一個模糊的概念。隨著破解難度的增加,需要基于效率的針對性攻擊,并應(yīng)建立個人破解方法。為了最終提高哈希生成速度而投入資金是不值得的。因此,使用統(tǒng)計數(shù)據(jù)和工具作為攻擊手段實施一種方法和簡化的流程可以促進密碼破解。開發(fā)人員可以制定控制措施來應(yīng)對這種情況,用戶可以使用安全的密碼管理器來最大限度地降低這些攻擊的有效性;但是,此類實現(xiàn)還不是很流行。目前,針對密碼的統(tǒng)計攻擊在破解數(shù)量和時間連接效率方面都是有效的。想想你自己的密碼,問問自己,根據(jù)密碼的結(jié)構(gòu),以及你辦公室內(nèi)的哪些控制措施可能導(dǎo)致攻擊者入侵用戶的賬戶,它們能以多快的速度被破解。

上一條:Hashcat號稱世界上最快的密碼破譯工具,如何使用hashcat解密密碼?
下一條:使用專業(yè)的解密軟件自己電腦破解Exlce、word、pdf、壓縮包格式密碼教程