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
感谢原博主分享