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