1.指定HASH類型
在HashCat中--hash-type ?參數可以指定要破解的HASH類型,運行hashcat主程序加上--help參數,在* Generic hash types:中可以看到各種HASH類型的代號,如圖所示: 
不同版本的HashCat所支持的hash類型有所不同,如果沒有指定--hash-type參數,那么程序默認為MD5類型。
2.指定破解模式
在HashCat中--attack-mode ?參數可以可以指定破解模式,軟件一共支持5種破解模式,分別為
0 Straight(字典破解) 1 Combination(組合破解) 3 Brute-force(掩碼暴力破解) 6 Hybrid dict + mask(混合字典+掩碼) 7 Hybrid mask + dict(混合掩碼+字典)
下面為大家介紹兩個最常用的破解方式:字典破解和掩碼暴力破解。
使用字典破解MD5:
oclHashcat-plus64.exe --hash-type 0 --attack-mode 0 {HASH文件} [字典1] [字典2] [字典3]…
如:
oclHashcat-plus64.exe --hash-type 0 --attack-mode 0 d:md5.txt d:dict1.txt d:dict2.txt
字典破解由於受到磁盤和內存速度的影響,速度無法達到GPU的最大運算速度,基本上一個5GB的字典,對於MD5破解來說10分鍾內可以跑完。
使用掩碼暴力破解SHA1:
oclHashcat-plus64.exe --hash-type 100 --attack-mode 3 {HASH文件} [掩碼]
{掩碼的設置}
對於掩碼,這邊需要稍微做一個說明。Hashcat默認的掩碼一共有9種,如圖所示:
?l表示a-z,?u表示A-Z,?d表示0-9,?a表示鍵盤上所有的特殊字符,?s表示鍵盤上所有的可見字符,?h表示8bit 0xc0-0xff的十六進制,?D表示8bit的德語字符,?F表示8bit的法語字符,?R表示8bit的俄語字符。
那么有同學可能會問了,如果我要用掩碼表示小寫+數字怎么辦呢?這就需要用到自定義字符集這個參數了。軟件支持用戶最多定義4組字符集,分別用
--custom-charset1 [chars] --custom-charset2 [chars] --custom-charset3 [chars] --custom-charset4 [chars]
來表示,在掩碼中用?1、?2、?3、?4來表示。
比如說我要設置自定義字符集1為小寫+數字,那么就加上
-- custom-charset1 ?l?d
如果要設置自定義字符集2為abcd1234,那么就加上
--custom-charset2 abcd1234
如果要破解8位的小寫+數字,那么需要設置自定義字符集1為
--custom-charset1 ?l?d
設置掩碼為?1?1?1?1?1?1?1?1。 如果已知密碼的第一位為數字,長度為8位,后幾位為大寫+小寫,那么需要設置自定義字符集1為
--custom-charset1 ?l?u
設置掩碼為?d?1?1?1?1?1?1?1。
{掩碼的長度}
對於已知長度的密碼,可以使用固定長度的掩碼進行破解。比如要破解11位數字,就可以這樣寫掩碼?d?d?d?d?d?d?d?d?d?d?d。
對於想要破解一些未知長度的密碼,希望軟件在一定長度范圍內進行嘗試的,可以使用--increment參數,並且使用--increment-min ?定義最短長度,使用--increment-max ?定義最大長度。比如要嘗試6-8位小寫字母,可以這樣寫
--increment --increment-min 6 --increment-max 8 ?l?l?l?l?l?l?l?l
{舉例}
破解8-11位數字+小寫
oclHashcat-plus64.exe --hash-type 100 --attack-mode 3 --increment --increment-min 8 --increment-max 11 --custom-charset1 ?l?d d:sha1.txt ?1?1?1?1?1?1?1?1?1?1?1
感謝原博主分享