Hashcat號(hào)稱世界上最快的密碼破譯工具,今天這篇文章會(huì)抽取幾個(gè)常見常用的參數(shù),結(jié)合密碼破譯命令,分析如何使用hashcat破譯密碼。
我們知道hashcat可以破譯大量的密碼類型,它可以破譯大約210種密碼,其中絕大多數(shù)是hash。想通過hashcat進(jìn)行密碼破譯,首先需要了解密碼的形式,然后根據(jù)密碼形式索引這個(gè)密碼在hashcat中的編號(hào)。
我們以口令:digapis,和鹽值asdf為例,展示部分hash值的形式。
編號(hào) | 名稱 | 類型 | 例子 |
---|---|---|---|
0 | MD5 | Hash,長度32 | 8713d75511bea7e0df78c6063dc778b0 |
1400 | SHA-256 | hash | aa106625c7de812d6118992a191ea4627e2457fa80bf6ec06f9c60cbf8e5260f |
1700 | SHA-512 | hash | 23afac4524f62ea4d941ca4933249b2b78d19069773266abc36d6fd17a6fbe2f4ccc834acc868358ba32ddca553611218a2865f975339fe45d38cc1999f84b5e |
10 | Md5($pass.$salt) | 口令加鹽后進(jìn)行一次MD5,口令在前 | 48985c61e2581c3f9ee5f1cfb775afbc:asdf |
20 | MD5($salt.$pass) | 鹽在前 | 4fa1dd606353e055fed67d9812bddf35:asdf |
2600 | md5(md5($pass)) | 口令進(jìn)行2次MD5 | 98177c3f36af4a3f77f5b87594e6cf6a |
3710 | md5($salt.md5($pass)) | 口令進(jìn)行一次MD5變換,在前面加上鹽,再進(jìn)行一次MD5 | 88a535877ec21b8786775a7074e4de4c:asdf |
4400 | md5(sha1($pass)) | 口令進(jìn)行一次sha1變換,再進(jìn)行一次MD5 | ec7bf3099984001a2b0f37ba5d1d68fa |
4500 | sha1(sha1($pass)) | 略 | 005a41cfe16c9a5556c7a5cdd5f1958991f2e031 |
1460 | HMAC-SHA256(key=$salt) | 略 | d684ab7c38ddc262f215328334c4d0273cef10d6c5e61988f5cc87fcab8a7a60:asdf |
11500 | CRC32 | 略 | 4C244A19:00000000 |
-a命令可以指定攻擊模式。用hashcat破譯密碼,僅知到密碼的編號(hào)是不夠的,還需要選定用hashcat進(jìn)行密碼破譯的攻擊模式。
Hashcat4.0.1有5中攻擊模式,每種攻擊模式都有其特征。
編號(hào) | 攻擊模式 | 含義 |
---|---|---|
0 | straight | 直接攻擊模式 |
1 | Combinstion | 組合攻擊模式 |
3 | Brute-force | 爆力破解模式 |
6 | Hybrid Wordlist+Mask | 字典+掩碼組合 |
7 | Hybird Mask+Wordlist | 掩碼+字典組合 |
在這5中攻擊模式下,我們可以利用字典進(jìn)行密碼破譯,利用暴力破解的方式遍歷所有可能的密碼,也可以結(jié)合字典和掩碼進(jìn)行密碼破譯。在不同的攻擊模式下,hashcat命令所用到的參數(shù)有所不同,我們以straight攻擊模式為例,學(xué)習(xí)hashcat是如何利用字典文件進(jìn)行密碼破譯。同事也會(huì)穿插其他參數(shù)的使用方法。
直接攻擊模式就是直接利用字典進(jìn)行密碼爆破,它可以使用單一字典文件,或多個(gè)字典文件進(jìn)行解密。還可以通過將字典與規(guī)則文件結(jié)合,讓密碼爆破效率更高。
hashcat -a 0 –m 0 mima.txt –o outfile dic.txt
-a指定攻擊模式為直接攻擊,-m指定hash類型為MD5,-o會(huì)把破譯出的密碼寫入outfile中。
雙字典攻擊也是直接攻擊模式下的一種情形,會(huì)在利用字典文件爆破密碼時(shí),加載兩個(gè)字典文件。這樣就擴(kuò)大了字典文件的空間。
多字典攻擊同時(shí)利用加載多個(gè)字典文件,下面這條命令利用三個(gè)字典進(jìn)行字典攻擊,依次加載三個(gè)字典進(jìn)行爆破。命令中的dic.txt是爆破中用到的字典文件。
利用字典目錄攻擊會(huì)把字典目錄下的多個(gè)字典文件用于直接攻擊,利用字典目錄會(huì)在直接攻擊過程中依次加載字典目錄中的多個(gè)字典文件,下面命令中的dic是多個(gè)字典文件所在的文件夾。
-r/--rule-file命令會(huì)把規(guī)則文件中的多條規(guī)則作用于字典中的每個(gè)字。規(guī)則文件可以自己生成,也可以使用hashcat自帶的規(guī)則文件。hashcat自帶的規(guī)則文件通常在rules文件夾下。rules文件夾下的規(guī)則文件如下:
在字典+規(guī)則攻擊中,可以用單字典,多字典或字典目錄結(jié)合規(guī)則文件進(jìn)行密碼爆破。其實(shí)就是直接攻擊摸式結(jié)合規(guī)則文件的形式。
所謂規(guī)則類似于生成候選密碼的編程語言,它可以修改,剪切,擴(kuò)展單詞或者是根據(jù)條件操作符跳過一些操作。從而可以更加靈活高效的進(jìn)行攻擊。
規(guī)則攻擊可以和雙字典,多字典甚至字典目錄結(jié)合使用。使用方法與單字典+規(guī)則攻擊類似。
-o參數(shù)后面是使出文件,通過-o命令把破譯出的密碼輸入到指定文件,默認(rèn)存儲(chǔ)形式是hash:plain。前面有關(guān)于該命令使用的例子,大家自行去看上面一張圖。
該命令可以指定outfile文件的輸出格式。Outfile文件共有15中輸出模式。
Outfile-format=1僅輸出破譯出的密文hash;
Outfile-format=2,僅輸出破譯出的密碼的明文。
除了用-o參數(shù)輸出,我們還可以通過參數(shù)remove,把密文文件中已經(jīng)破譯的密碼篩除,僅留下不能破譯的密碼。這樣在后續(xù)進(jìn)行密碼破譯時(shí),就可以減少重復(fù)工作。
當(dāng)破譯密碼數(shù)量比較多或字典文件非常大時(shí)會(huì)出現(xiàn)如下選項(xiàng),鍵盤輸入S會(huì)在屏幕中打印下一條狀態(tài),通過該狀態(tài)可以查看當(dāng)前密碼破譯的進(jìn)度。
每次想要查看當(dāng)前密碼破譯進(jìn)度都要輸入S會(huì)比較麻煩,這是利用status參數(shù)就可以讓讓屏幕自動(dòng)更新狀態(tài)屏幕。減少自己需要進(jìn)行的操作,也可以減少誤觸。
除了利用status參令hashcat自動(dòng)更新屏幕狀態(tài),還可以利用--status-timer參數(shù)設(shè)置狀態(tài)屏幕更新的間隔。
Hashcat中的直接攻擊模式的使用方法大致就是以上內(nèi)容。對(duì)hashcat感興趣的話還可以直接訪問hashcat的網(wǎng)站,其中有對(duì)hashcat的命令參數(shù)以及各攻擊模式的詳細(xì)介紹。
文章轉(zhuǎn)載自丁牛網(wǎng)安實(shí)驗(yàn)室