自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何破解12位+字符的高強(qiáng)度密碼?

安全 數(shù)據(jù)安全
破解 12+ 字符的密碼,在理論上這是不可能的。今天我就這個(gè)題目做一下介紹和演示。

看到這個(gè)標(biāo)題,你肯定抱著懷疑的態(tài)度。破解 12+ 字符的密碼,在理論上這是不可能的。因?yàn)榘凑瞻踩珜?zhuān)家的說(shuō)法,想要破解一個(gè) 12+ 字符的高強(qiáng)度密碼,大概需要 17134 年。這里我只是說(shuō),如果我們利用一些現(xiàn)代硬件設(shè)備,如“預(yù)算”裂解裝置,我們就能在一個(gè)相對(duì)合理的時(shí)間范圍內(nèi),窮舉出像 MD5,NTLM,SHA1等,這些標(biāo)準(zhǔn)快速散列算法。通常,暴力破解這種方式,對(duì)于超過(guò) 8 個(gè)字符的標(biāo)準(zhǔn)快速散列算法加密的密碼,一般被認(rèn)為是無(wú)法破解的。

例如當(dāng)我們對(duì)一種語(yǔ)言的特點(diǎn),和不同人的不同習(xí)慣上分析發(fā)現(xiàn),英語(yǔ)單詞平均有 4.79 個(gè)字符長(zhǎng)度,而一般情況下,人們會(huì)習(xí)慣性的使用多個(gè)單詞組合來(lái)構(gòu)建密碼。

密碼

一、那么為什么12+字符的超強(qiáng)密碼,容易受到攻擊呢?

事實(shí)上,通常人們?cè)趧?chuàng)建大于10個(gè)字符以上的密碼時(shí),都會(huì)習(xí)慣性的使用一些常見(jiàn)的單詞或短語(yǔ)組合來(lái)構(gòu)建。之所以這樣做,其實(shí)也很容易理解。例如“horsebattery123”比“GFj27ef8%k $ 39” 這個(gè)密碼記起來(lái)會(huì)更加容易。這已經(jīng)不是一個(gè)“漏洞”的問(wèn)題,而是人類(lèi)的思維本能和行為習(xí)慣形成的。因此,這個(gè)問(wèn)題也會(huì)一直存在我們的周?chē)N耶?dāng)然贊同,使用XKCD那種漫畫(huà)隨機(jī)產(chǎn)生的四個(gè)單詞作為密碼。但是那只適用于非快速散列算法,如bcrypt。在這篇文章,我將演示 Hashcat的組合及混合 兩種攻擊方式。這些例子將讓你看到,攻擊者是如何利用那些硬件設(shè)備,來(lái)對(duì)那些所謂的高強(qiáng)度密碼,進(jìn)行有效攻擊的。

二、組合&混合 攻擊背景

首先快速介紹一下這些攻擊方法:

組合攻擊:兩個(gè)字典中的所有單詞都相互附加。

例如:

  1. dictionary1.txt dictionary2.txt 
  2.  
  3. pass => password, passpass, passlion 
  4.  
  5. word => wordpass, wordword, wordlion 
  6.  
  7. lion => lionpass, lionword, lionlion 

混合攻擊:字典攻擊,但具有附加/前置一個(gè)暴力掩碼的能力。

例如:

  1. dictionary.txt ?u?l?l 
  2.  
  3. pass => passAbc, passBcd, passCde 
  4.  
  5. word => wordAbc, wordBcd, wordCde 
  6.  
  7. lion => lionAbc, lionBcd, lionCde 
  8.  
  9. **進(jìn)一步的解釋可以在 Hashcat 的網(wǎng)站上找到。 

**進(jìn)一步的解釋可以在 Hashcat 的網(wǎng)站上找到。

三、組合攻擊

讓我們來(lái)看看組合攻擊這種方式,是如何幫助我們組合英語(yǔ)單詞的密碼的。在這里,我推薦大家使用Google的10,000 個(gè)最常見(jiàn)的單詞列表,作為我們組合的字典。這10000個(gè)最常見(jiàn)的單詞列表,是由Google的Trillion單詞庫(kù)的n-gram 頻率分析而確定。 現(xiàn)在讓我們使用兩個(gè)隨機(jī)選擇的英語(yǔ)單詞,組合形成一個(gè)16個(gè)字符的密碼,如shippingnovember。

如果這是一個(gè)通過(guò) MD5 加密的密碼,那么我們?cè)撊绾问褂?Hashcat 的組合攻擊這個(gè)密碼:

例如:

  1. hashcat -a 1 -m 0 hash.txt google-10000.txt google-10000.txt 

通過(guò)使 Hashcat 將該列表中的每個(gè)字詞彼此組合,并結(jié)合一些性能較好的硬件設(shè)備,密碼在不到 1 秒內(nèi)就被破解出來(lái)。目前這種破解方法并不過(guò)時(shí),它對(duì)那些中等較慢的哈希類(lèi)型效果依然不錯(cuò)。

Screen_Shot_2017-01-01_at_2.35.25_PM_euctqj.png

在這里也許有人會(huì)說(shuō),“我用的shippingnovember全部為小寫(xiě)字母,因此能成功破解出來(lái),但是如果隨意做個(gè)改動(dòng),例如增加特殊字符,字母大小寫(xiě)變化等,如:ShippingNovember這個(gè)形式就不一定能成功。那么,就讓我們來(lái)快速測(cè)試一下吧。首先我使用Hashcat的“combinator.bin” 將google的字典列表合并成一個(gè)單獨(dú)的字典。

例如:

  1. combinator.bin google-10000.txt google-10000.txt > google-10000-combined.txt 

接著我們就可以使用Hashcat結(jié)合這個(gè)新生成的,基于規(guī)則的字典文件,爆破修改大小寫(xiě)后密碼 ShippingNovember:

例如:

  1. hashcat -a 0 -m 0 hash.txt google-10000-combined.txt -r best64.rule 

Screen_Shot_2017-01-01_at_4.56.38_PM_yyoi7u.png

這里我們用時(shí) 28 秒,成功爆破!

1. 3個(gè)單詞

現(xiàn)在讓我們來(lái)看看,由三個(gè)單詞隨機(jī)組成的短語(yǔ)密碼,如“securityobjectivesbulletin”…看起來(lái)不錯(cuò)吧? 上面我們剛剛創(chuàng)建了新的 “google-10000-combined.txt” 字典文件,下面我們可以繼續(xù)使用上面的方式,將由兩個(gè)單詞組合的字典同單個(gè)單詞的字典列表進(jìn)行組合:

例如:

  1. hashcat -a 1 -m 0 hash.txt google-10000-combined.txt google-10000.txt 

Screen_Shot_2017-01-01_at_5.56.24_PM_wprjxg.png

如果添加了一些字符變體,但是因?yàn)槟憧梢钥吹街苯拥碾S機(jī)英語(yǔ)單詞落在2秒鐘,這可能會(huì)有點(diǎn)更困難。 你在這里看到一個(gè)趨勢(shì)嗎?

理論上來(lái)說(shuō)我們添加了字符數(shù)量,破解起來(lái)也應(yīng)該會(huì)更加困難耗時(shí),但這里我們只用了2秒左右時(shí)間,就成功破解出來(lái)了!在這里,你看到什么趨勢(shì)了嗎?

2. 4個(gè)單詞

接著,讓我們?nèi)L試攻擊下XKCD介紹的使用4個(gè)隨機(jī)英語(yǔ)單詞,來(lái)生成一個(gè)新密碼“sourceinterfacesgatheredartists”。在這里我們多增加了一個(gè)單詞,這也意味著我們的破解范圍更加龐大。它的組合大概在鍵盤(pán)有10,000,000,000,000,000多種的可能性。但是即便如此,它的強(qiáng)度也會(huì)大打折扣。因?yàn)?,在這里我們使用的為MD5散列函數(shù)。下面,我將使用 Hashcat 并結(jié)合新創(chuàng)建的 “combined” 字典,再次執(zhí)行組合攻擊:

例如:

  1. hashcat -a 1 -m 0 hash.txt google-10000-combined.txt google-10000-combined.txt 

Screen_Shot_2017-01-02_at_8.24.43_AM_bjesul.png

這個(gè)破解嘗試,可能需要4天左右的時(shí)間才能完成。但幸運(yùn)的是,我們發(fā)現(xiàn)我們只用了5小時(shí)35分鐘就成功爆破了出來(lái)。如果對(duì)這個(gè)密碼做簡(jiǎn)單的修改,例如:添加數(shù)字或特殊字符,都會(huì)使這個(gè)密碼超出我們的范圍,但是再次隨機(jī)的通用詞是不匹配的。

四、混合攻擊

1. Google-10000 + 掩碼

對(duì)于第一個(gè)示例,我將使用之前在組合攻擊演示中的 google-10000.txt 字典表,來(lái)作為我們爆破的基本單詞列表。然后我將使用 PACK(密碼分析和破解工具包)和來(lái)自weakpass.com網(wǎng)站上的hashesorg251015.txt字典做演示。

我之所以選擇使用hashesorg字典,是因?yàn)樗男氏鄬?duì)較高評(píng)級(jí)為 65.9,并且字典的體積也相對(duì)較小。我們需要做的是分析hashesorg的數(shù)據(jù)集,并根據(jù)一定的字符長(zhǎng)度,來(lái)創(chuàng)建基于最流行的密碼模式的掩碼。這些掩碼將被 附加/添加 到我們的google-10000.txt單詞列表,并形成一個(gè)有效的混合攻擊。

2. PACK 示例

生成5-6個(gè)字符長(zhǎng)度的混合掩碼密碼,并輸出到掩碼文件。(注意這可能需要等待一段時(shí)間)

  1. python statsgen.py hashesorg251015.txt –minlength=5 –maxlength=6 –hiderare -o hashesorg_5or6.masks 

接著,讓我們將生成的掩碼文件格式,轉(zhuǎn)換為 Hashcat 可以無(wú)縫使用的 .hcmasks 格式文件。

3. PACK 示例

  1. python maskgen.py hashesorg_5or6.masks –optindex -o hashesorg_5or6.hcmask 

現(xiàn)在我們就可以使用Hashcat中的攻擊模式6,并結(jié)合新創(chuàng)建的hashesorg掩碼文件,來(lái)進(jìn)行混合攻擊了。這將啟動(dòng)一個(gè)有序的攻擊,從第一個(gè)掩碼開(kāi)始,并沿著列表向下逐一嘗試。有的攻擊可能會(huì)進(jìn)行的很快,有些則可能需要一段時(shí)間。為了達(dá)到我們測(cè)試的目的,我們這里將使用一個(gè)隨機(jī)密碼 “environmentsqaz472” 我們知道最終我們將會(huì)成功爆破!

例如:

  1. hashcat -a 6 -m 0 hash.txt google-1000.txt hashesorg_5or6.hcmask 

Screen_Shot_2017-01-02_at_6.55.26_PM_z9sk3y.png

這次攻擊花了將近 20 分鐘的時(shí)間。前面的格式轉(zhuǎn)換占用了我們大部分時(shí)間,而從攻擊開(kāi)始到成功爆破,卻只用 14 秒。

4. Rockyou + Rockyou-1-60.hcmask

現(xiàn)在,讓我們使用從 Rockyou 密碼數(shù)據(jù)集派生的 Hashcat 的內(nèi)置掩碼。 Hashcat 中的 rockyou 掩碼,已經(jīng)被分割成更小的塊,其大小基于編號(hào)而不斷增加。我將使用最小的 .hcmask 文件 rockyou-1-60,因?yàn)樗^高的概率掩碼,非常適用于這種混合攻擊模式。我們還將把這個(gè)與實(shí)際的 Rockyou 密碼配對(duì),可以在 Skullsecurity 上找到。當(dāng)你將掩碼與字典配對(duì)時(shí),請(qǐng)務(wù)必確保字典體積不會(huì)過(guò)于龐大,否則你的攻擊將會(huì)話費(fèi)很長(zhǎng)的時(shí)間。就我個(gè)人而言,我喜歡將我的混合攻擊字典大小控制在 500M 以內(nèi),甚至更小。

讓我們從 Rockyou 字典隨機(jī)抽取密碼 “sophia **!”,然后我們?cè)偬砑右粋€(gè)任意日期 “1996”,密這樣就產(chǎn)生了一個(gè)碼 1996sophia **! 前面好比是用戶名,后面則是出生年份。下面我們就可以開(kāi)始嘗試攻擊了,這次攻擊我將把 rockyou-1-60 數(shù)據(jù)集中順序包含的掩碼列表,附加給 Rockyou 字典中包含的所有密碼。

例如:

  1. hashcat -a 7 -m 0 hash.txt rockyou-1-60.hcmask rockyou.txt 

Screen_Shot_2017-01-02_at_7.17.59_PM_qrn3vx.png

這種攻擊,用不到幾分鐘就會(huì)命中一個(gè)?d?d?d?d 的掩碼。這也是為了演示目的,但其充分展示了混合攻擊的攻擊過(guò)程及威力。rockyou-1-60.hcmask 中共包含了 836 個(gè)不同的掩碼,如果你覺(jué)得依然不夠,則 Hashcat 將會(huì)自動(dòng)包含 rockyou 數(shù)據(jù)集中的的所有掩碼。

5. Cut First 5 Chars + 掩碼

讓我們來(lái)創(chuàng)建一個(gè)自己的字典和掩碼,來(lái)配合我們的混合攻擊。在文章開(kāi)頭我們已經(jīng)知道了,平均英語(yǔ)單詞為 4.79 個(gè)字符 長(zhǎng)。因此,我們創(chuàng)建的字典將最多包含 5 個(gè)字符長(zhǎng)度。在這個(gè)例子中,我們將再次使用 rockyou.txt 字典。我們將使用 cut 命令,將截取字典中的前 5 個(gè)字符,并按順序?qū)⑵渥芳拥揭粋€(gè)名為 first5_dict.txt 的文件內(nèi)。根據(jù)你硬件的性能,將決定你字典的生成時(shí)間。你可能會(huì)注意到,這個(gè)新生成的字典文件體積非常的小,只有 18MB。但是對(duì)于非快速散列算法,這是一個(gè)非常完美的字典文件。

例如:

  1. cut -c 1-5 rockyou.txt | sort -u > first5_dict.txt 

下面,讓我們將新生成的 first5_dict.txt 字典與 Hashcat 中的 rockyou-1-60 掩碼配對(duì)。現(xiàn)在,我們來(lái)隨機(jī)生成一個(gè)密碼。這里我在 first5_dict.txt 字典文件中,隨機(jī)選擇了 Alty5 和 隨機(jī)數(shù)字 9402847 的組合,來(lái)作為我的密碼,即 Alty59402847 。

例如:

  1. hashcat -a 6 -m 0 hash.txt first5_dict.txt rockyou-1-60.hcmask 

Screen_Shot_2017-01-08_at_11.03.14_AM_knmj2x.png

這種攻擊,對(duì)于那些喜歡使用相同的基本單詞或數(shù)字作為密碼,并且將賬戶作為附加或預(yù)置 “隨機(jī)” 碼的用戶,尤為有效!從結(jié)果我們可以看到,在30分鐘內(nèi),我們就成功破解出了密碼。

6. 直接通過(guò)掩碼攻擊 12+ 字符密碼

讓我們?cè)俅问褂?rockyou.txt 字典,來(lái)作為例子生成這些掩碼。但在此之前,先讓我們先來(lái)測(cè)試下我們的機(jī)器,對(duì) md5 哈希爆破的速度。

例如(MD5):

  1. hashcat -b -m 0 

Screen_Shot_2017-01-08_at_11.04.04_AM_ccwoe5.png

 

從以上測(cè)試結(jié)果得知,我們的機(jī)器破解速度為 760億每秒(76,000,000,000 c / s),讓我們使用 PACK 從 rockyou.txt 字典,來(lái)創(chuàng)建新的掩碼。

例如:

  1. python statsgen.py rockyou.txt -o rockyou.masks 

下面我們就可以來(lái)生成我們的 Hashcat hcmask 文件了,我們?cè)O(shè)定攻擊速度為 1 天(86400秒),攻擊范圍涵蓋 12-15 的字符長(zhǎng)度。

例如:

  1. pythong maskgen.py rockyou.masks –optindex –minlength=12 –maxlength=15 –targettime=86400 –pps=76000000000 -o rockyou_12-15.hcmask 

Screen_Shot_2017-01-08_at_11.07.36_AM_slriec.png

當(dāng)成功生成掩碼文件后,我們就可以使用 rockyou_12-15.hcmask 文件,來(lái)對(duì)md5哈希進(jìn)行爆破了。如果順利的話,那么我們將會(huì)在一天內(nèi)爆破出結(jié)果。

例如:

  1. hashcat -a 3 -m 0 hash.txt rockyou_12-15.hcmask 

總結(jié)

通過(guò)以上的介紹及演示,相信你已經(jīng)意識(shí)到,密碼的安全與否,并不是單單取決于字符的長(zhǎng)短的。如果想要更好的保護(hù)你的賬戶,不被他人竊取。那么,你必須摒棄一些你的壞習(xí)慣。例如:使用一些常見(jiàn)的單詞或短語(yǔ)組合,或者全部采用小寫(xiě)字母或純數(shù)字等來(lái)構(gòu)建你的密碼。這些都有可能,給你賬號(hào)帶來(lái)安全隱患!因此,在這里我強(qiáng)烈建議大家,盡可能的使用一些密碼管理器,例如像 1Password 和 Keepass 這類(lèi)的應(yīng)用。

責(zé)任編輯:趙寧寧 來(lái)源: FreeBuf
相關(guān)推薦

2020-06-07 11:46:05

密碼信息泄露高強(qiáng)度密碼

2019-07-02 13:16:05

密碼賬號(hào)安全數(shù)據(jù)安全

2016-11-08 17:56:37

Linux命令行密碼

2017-01-05 14:01:38

linux密碼高強(qiáng)度

2013-01-06 13:45:14

2010-12-09 14:50:20

2010-08-03 18:22:46

NET軟件加密鎖飛天誠(chéng)信

2022-03-30 14:55:54

微步在線TDP

2015-06-04 10:38:09

編程工作50歲

2013-07-05 10:04:47

2012-05-11 10:16:17

2010-12-16 11:38:02

2020-12-13 17:57:16

加密密碼Python

2010-04-19 12:45:19

猝死

2023-01-06 13:48:09

AI文本

2022-03-31 11:41:02

DDoS網(wǎng)絡(luò)安全關(guān)鍵信息基礎(chǔ)設(shè)施

2010-12-03 11:43:51

2019-04-01 13:20:34

技術(shù)負(fù)責(zé)人CEO

2020-12-21 16:00:07

Pythonzip文件密碼

2016-03-14 12:33:46

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)