

(1)概述
HashCat 是世界上最快的基于CPU 的口令破解工具。HashCat 系列软件在硬件上支持使用CPU 、NVIDIAGPU 、ATIGPU 来进行密码破解。在操作系统上支持Windows 、Linux 平台,并且需要安装官方指定版本的显卡驱动程序,如果驱动程序版本不对,可能导致程序无法运行。
HashCat 主要分为三个版本HashCat、oclHashCat-plus 、oclHashCat-lite 。这三个版本的主要区别是HashCat 只支持CPU 破解。oc1HashCat-plus 支持使用GPU 破解多个HASH,并且支持的算法高达77 种。oc1HashCat-lite 只支持使用GPU 对单个HASH 进行破解,支持的HASH 种类仅有32 种,但是对算法进行了优化,可以达到GPU 破解的最高速度。
(2) 指定hash 类型
在HashCat 中—hash—type?参数可以指定要破解的HASH 类型,运行HashCat 主程序加上—help 参数,在* Generic hash types: 中可以看到各种HASH 类型的代号,图7-6所示。
不同版本的HashCat 所支持的hash 类型有所不同,如果没有指定…hash-type 参数,
那么程序默认为MD5 类型。
(3)指定破解模式
在HashCa t 中—attack—mode?参数可以指定破解模式,软件一共支持5中破解模式,分别为:
0 Straight (字典破解);
1 Combination (组合破解);
3 Brute-force (掩码暴力破解);
6 Hybrid dict + mask (混合字典+掩码);
7 Hybrid mask + dict (混合掩码+字典)。
(4) HashCat 中破解例子
以oclHashCat-plus 为例,以下是oclHashCat-plus 中的参数介绍:
-m 这个是指定破解的hash 的类型,具体的类型可以在一help 参数中看到。默认是0也就是MD5。
-a 指定破解的模式,默认是字典模式。
-0 输出文件,破解成功的密码存放的文件。
--remove 移除破解成功的hash ,当hash 是从文本中读取时有用,避免自己手工移除已经破解的hash 。
一usemame 忽略用户名,如果你的hash 文件中是usemame: hash 这种格式只需要指定这个参数,就不需要再手工编辑了。
-r 指定规则文件,字典根据规则文件做变形,用于破解相似密码。
①字典破解
OclHashCat-plus64.exe ——hash-type 0 --attack-mode 0 {HASH 文件} [字典1] [字典2] [字典3]...
这是命令行中的书写格式,使用宇典破解MD5,则其命令行如下:
OclHashCat-plus64.exe--hash-type0——attack-mode 0 d: md5. txt d: dict1. txtd: dict2. txt
字典破解由于受到磁盘和内存速度的影响,速度无法达到GPU 的最大运算速度,基本上一个5GB 的字典,对于MD5 破解来说10 分钟内可以跑完。
②暴力掩码破解
OclHashCat-plus64.exe --hash-type 100 --attack-mode 3 {HASH 文件} [掩码]
掩码
HashCat 中默认的掩码一共有9 种,如图7-7 所示。
?l: a-z; ?u: A-Z; ?也。-9; ?a: 键盘上所有的特殊字符?s: 键盘上所有的可见字符?h: 8bit OxcO田Oxff 的十六进制。
?D: 8bit 的德语字符?F: 8bit 的法语字符?R: 8bit 的俄语字符。
比如?d?d?d?d?d?d?d?d 对应8 位纯数字组合:吗?l?l?l?d?d?d?d 对应前4 位小写字母,后4 位数字组合。
小写字母和数字组合要用掩码来表示时,就需要用到自定义字符集这个参数。软件支持用户最多定义4 组字符集,分别为:
?1-custom-charset1 [chars]
?2 --custom-charset2 [chars]
?3 - custom-charset3 [chars]
?4 --custom一charset4 [chars]
比如:一custom-charset1 =?1 ?d,那么?1 表示自定义字符集1 为小写+数字,那么8位随机的数字与小写字母组合,掩码表示写成?1?1?1?1?1?1?1?1 。
…custom—charset2 =abcdI234 ,那么?2表示自定义字符集2 为abcdl234 ,代表字符串由abcd1234 组成的所有可能组合,掩码表示为?2?2?2?2?2?2?2?2 。
掩码长度
对于己知长度的口令,可以使用自定长度的掩码进行破解。比如需破解10 位数字,这样就可以写成是?d?d?d?d?d?d?d?d?d?d。对于想要破解一些未知长度的口令,用户希望软件在一定长度范围内进行尝试,我们可以使用increment 参数,使用--increment-min ?定义最短长度,使用一increment—max?定义最长长度。比如,想要破解6-8 位小写字母,则可以写成:
一-increment --increment 一min 6 --increment-max 8 ?1? 工?1?1?1?工?1 ?1
破解8-11 位数字+小写,可以写成:
OclHashcat-plus64.exe --hash-type 100 --attack-mode 3 一-increment--increment-min 8 --increment-max 11 --custom-charset1 ?l?d dsha1.txt ?1?1?1? 工?1?l?l?l?l?l?l
参数优化
HashCat 本身考虑到系统资源的分配,默认参数下并没有最大化的来使用硬件资源,如果想让破解速度最大化,就需要对一些参数进行配置。
Workload tuning 负载调优
该参数支持的值有1, 8, 40, 80, 1600 --gpu-accel 160 可以让GPU 发挥最大性能。
GPU loops 负载微调
该参数支持的值的范图是8-10240 --gpu-loops 1024 可以让GPU 发挥最大性能。
Segment size 字典缓存大小
该参数是设置内存缓存的大小,作用是将字典放入内存缓存以加快字典破解速度,默认为丑陋,可以根据自身内存情况进行设置。…segment-size 512 可以提高大字典破解速度。
| 各省软考办 | ||||||||||