hashcat 有四種基本的解密方式:
1. 字典解密
2. 組合字符串解密
3. 暴力解密(棄用)–mask attack(掩碼解密)
4. 混合解密
還有基于規(guī)則的解密方式,還有切換大小寫的不過可以歸為規(guī)則解密
-a 0 -m type hashfile dictionary1 dictionary2
貌似還可以用gpu加速
假如字典里面的內(nèi)容是這樣的
11
22
33
那么組合出來的就是:
1111
1122
1133
2222
2233
3333
-j, --rule-left=RULE Single rule applied to each word on the left dictionary -k, --rule-right=RULE Single rule applied to each word on the right dictionary123
舉個(gè)栗子:
字典1:
11 2212
字典2:
33 4412
commands:
-j '$-' -k '!$'12
上面的$代理字典里面的單詞,-j '$-'表示在單詞右側(cè)加一個(gè)-,-k '$!'表示在單詞左側(cè)加一個(gè)!
所以產(chǎn)生的組合是:
11-33! 22-33! 11-44! 22-44!1234
這個(gè)東東,官方給出來的說明比較簡(jiǎn)單,就是說mask attack 比brute-force強(qiáng)在減少了密碼表的數(shù)量,至于減少密碼數(shù)量的算法沒有過多介紹(基于hcmask文件),只是簡(jiǎn)單的提了一句通過一些常規(guī)的密碼形式來減少密碼數(shù)量,舉個(gè)栗子:”Kele1997”,暴力解密的時(shí)候會(huì)枚舉所有的可能,etc.. 但是mask attack的時(shí)候程序就會(huì)嘗試只有首字母大寫,因?yàn)榇蠖鄶?shù)密碼很少會(huì)在第二或者是第三的位置上有大寫,通過這些規(guī)則來減少密碼的候選數(shù)量
官方說mask attack比起brute-force來說沒有任何缺點(diǎn),因?yàn)閙ask attack 可以產(chǎn)生所有brute-force的密碼
內(nèi)置字符集 ?l = abcdefghijklmnopqrstuvwxyz ?u = ABCDEFGHIJKLMNOPQRSTUVWXYZ ?d = 0123456789 ?h = 0123456789abcdef ?H = 0123456789ABCDEF ?s = ?space?!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ ?a = ?l?u?d?s ?b = 0x00 - 0xff123456789
程序目錄里面有charsets包含各種各樣詭異的字符,加入你的密碼中有的話,你可以使用這些文件
hashcat 有四個(gè)參數(shù)用于指定自定義的字符集
–custom-charset1=CS
–custom-charset2=CS
–custom-charset3=CS
–custom-charset4=CS
這四個(gè)參數(shù)可以用縮寫 -1, -2, -3 和 -4來代替. 你可以指定自定義的字符集來進(jìn)行解密
The following command sets the first custom charset (-1) to russian language specific chars:
-1 charsets/special/Russian/ru_ISO-8859-5-special.hcchr
我們不用指定密碼的固定長度,我們可以通過指定–increment 這個(gè)參數(shù)來
-i, --increment | | Enable mask increment mode | --increment-min | Num | Start mask incrementing at X | --increment-min=4 --increment-max | Num | Stop mask incrementing at X 123
-a 3 hash.txt mask_file.hcmask 加載hcmask文件,使用文件中的mask來解密
hashcat 自帶了幾個(gè)hcmask文件,放在程序目錄mask/下面
--hex-charset 后面的字符串是16進(jìn)行
生成的密碼是有字典和暴力解密生成的字符組合而成的
舉個(gè)栗子:example.dict
password hello12
hashcat64 -a 6 example.dict ?d?d?d?d
?d?d?d?d表示四位長的整數(shù)
所以最后生成的密碼候選序列是:
password0000 password0001 password0002 . . . password99991234567
hashcat64 -a 6 ?d?d?d?d example.dict
結(jié)果:
0000password 0001password . . . 9999password123456
使用maskprocessor利用規(guī)則產(chǎn)生暴力解密所需要的規(guī)則,然后生成的規(guī)則文件可以使用hashcat -r進(jìn)行加載和字典混合成成密碼候選
舉個(gè)栗子:example.dict
hello password12
hash -o bf.rule '$?d $?d $?d $?d
生成的規(guī)則是這個(gè)樣子的:bf.rule
$0 $0 $0 $0 $0 $0 $0 $1 $0 $0 $0 $2 $0 $0 $0 $3 $0 $0 $0 $4 . . . $9 $9 $9 $9123456789
然后使用hashcat -a 6 example.dict -r bf.rule -m 。。。。
最后生成的是這個(gè)樣子:
hello0 0 0 0 password0 0 0 0 hello0 0 0 1 password0 0 0 1 hello0 0 0 2 password0 0 0 2 . . . hello9 9 9 9 password9 9 9 91234567891011