oclhashcat:离线hash密码破解工具官方文档(中文版)
AMD users require AMD drivers 14.9 or later (recommended 15.12 exact)
Intel users require Intel OpenCL Runtime 14.2 or later (recommended 16.1 or later)
NVidia users require NVidia drivers 346.59 or later (recommended 367.27 or later)
世界上最快的密码破解软件,不过经不严谨测试(虚拟里面使用CPU和物理机使用GPU对比:速度快了244倍) (来自官方文档…)
免费,开源
跨系统 (Linux, Windows and OSX)
跨平台 (CPU, GPU, DSP, FPGA, etc., everything that comes with an OpenCL runtime)
支持多种hash算法(可在下面的参数手册查看,多到超出想象…) (可在同时破解多种hash)
支持多种驱动器 (可在同一系统多种设备中生效)
支持多种驱动器类型 (可在同一系统混合使用多种不同的设备)
支持分布式破解
支持暂停/重新开始
支持会话与恢复
支持从密码文件读取hash值或是直接输入
支持16进制字符集(包括盐)
支持自动性能调优
支持markov-chains
內建标杆测试
集成热watchdog
等等
优点:总之,它是离线破解单向密码的好工具(第一选择是网络,但是网上不支持一些“小众”的密码类型,就只能使用它来碰碰运气咯)!它支持的攻击模式有:Brute-Force Attack(暴力破解攻击)和Mask Attack(掩码攻击)。相对于Brute-Force的优点是,它减少了排列的可能性,提高了破解速度。举个例子,在传统的暴力破解中,破解一个9位的密码(例如Julia1984)需要超过4年的时间,但是在mask attack攻击中,由于密码通常只是首字母大写,可以缩短破解时间到40分钟。没有缺点。。。
Masks(掩码)是指每一个密码位都需要一个掩码占位,例如密码有8位,就需要8个掩码(就像正则表达式里面的通配符)。
输出由于反向算法优化,顺序如下(并非简单的字母序): aaaaaaaa aaaabaaa aaaacaaa aaaaxzzz aaaayzzz aaaazzzz baaaaaaa baaabaaa baaacaaa baaaxzzz baaayzzz baaazzzz zzzzzzzz
内建字符集: ?l = abcdefghijklmnopqrstuvwxyz ?u = ABCDEFGHIJKLMNOPQRSTUVWXYZ ?d = 0123456789 ?s = «space»!”#$%&’()*+,-./:;?@[/]^_`{|}~ ?b = 0x00 - 0xff
自定义字符集: 所有的hashcat衍生版都有四个命令行参数用来自定义字符集: –custom-charset1=CS –custom-charset2=CS –custom-charset3=CS –custom-charset4=CS
你可以直接在命令行中使用-1,-2,-3,-4来指定字符集并且直接使用?1,?2,?3,?4来调用,也可以在配置文件(*.hcchr)中指定。在指定时,可以直接使用内建字符集组合,也可以使用纯字符组合甚至是混合的组合。
例如,指定?1代表的字符时,可以使用下面这些方式(他们效果一样): -1 abcdefghijklmnopqrstuvwxyz0123456789 -1 abcdefghijklmnopqrstuvwxyz?d -1 ?l0123456789 -1 loweralpha_numeric.hcchr # file that contains alldigits + chars (abcdefghijklmnopqrstuvwxyz0123456789)
下面是在指定“0123456789abcdef”这个字符集时的例子: -1 ?dabcdef
下面是指定7位ASCII码全字符(“mixalpha-numeric-all-space”)时的例子:
下面是指定为特殊语言字符集时的例子: -1 charsets/special/Russian/ru_ISO-8859-5-special.hcchr
例如,下面的命令是创建如下的密码(-a 3表示暴力破解攻击): keyspace: aaaaaaaa - zzzzzzzz keyspace: aaaaa - 99999 command: -a 3 password?d keyspace: password0 - password9 keyspace: aaaaaa1900 - Zzzzzz1999
keyspace: 00aaaaa - ffZZZZZ command: -a 3 -1 efghijklmnop ?1?1?1 keyspace: eee - ppp
密码长度增量: 默认情况下,使用8位的掩码只能破解8位的密码,不能破解低于8位更不能破解高于8位的,但可以使用increment来实现破解低于8位的(他可以设置最小位数和最大位数,但最大位数不能超过掩码位数)。
字符集文件: 可以将常用的字符集保存为*.hcchr格式的纯文本文件,以后就可以直接调用(像上面例子中使用的charsets/special/Russian/ru_ISO-8859-5-special.hcchr一样)。
掩码文件: 同样可以将掩码直接保存为一个文件,以后使用时直接调用,它是一行一行的纯文本文件,以.hcmask为扩展名,格式如下: [?1,][?2,][?3,][?4,]mask
本来在命令行中,我们要使用自定义的字符集,需要使用如下格式: 那么在掩码文件中就可以直接这样写: 当然,在没有使用自定义字符集时就不需要前面的部分了,直接写掩码即可,使用方法如下: -a 3 hash.txt mask_file.hcmask
其他:
- 可以在每一行的开头使用#来注释掉那一行,可以写入多行,每一行互相独立
- 当掩码中存在逗号时,需要用/来转义
- 同样,掩码文件也可以支持增量参数
下面是一些例子,看看能不能看懂是什么意思: 16进制字符可以使用“–hex-charset”参数
Combinator Attack(组合攻击)给定两个字典文件,它们将会组合成一个字典来进行破解: 例如: Dict1.txt: Hia Hiaa Hiaaa
Dict2.txt: Bb Cc
结果为: HiaBb HiaCc HiaaBb HiaaCc HiaaaBb HiaaaCc
可以使用参数来对某个字典进行“在开始处添加字符”、“在结尾处添加字符”的操作: -j, –rule-left=RULE(左边添加) -k, –rule-right=RULE(右边添加)
Dictionary Attack(字典攻击)即straight mode,使用字典进行攻击
Hybrid Attack(混合攻击)即用暴力攻击来修饰字典文件,分为: mask + dict(掩码在字典前) dict + mask(掩码在字典后)
例如,字典文件是example.dict: password hello
命令为: $ … -a 6 example.dict ?d?d?d?d
生成的字典是: password0000 password0001 password0002 password9999
hello0000 hello0001 hello0002 hello9999
另一种情况,命令是: $ … -a 7 ?d?d?d?d example.dict
生成的字典是: 0000password 0001password 0002password 9999password 0000hello 0001hello 0002hello 9999hello
Toggle-Case Attack(大小写切换攻击)尝试所有的大小写组合: 例如,pass1234会产生: pass1234 Pass1234 pAss1234 PAss1234 paSs1234 PaSs1234 pASs1234 PASs1234 pasS1234 PasS1234 pAsS1234 PAsS1234
Rule-based Attack(基于规则的攻击)是功能最强大、也最复杂的一种模式,可以根据规则设置密码规则!它的语法和john和passwordPro互通,下面是语法: (图片无法显示,请参考原文)
下面是拒绝规则,即密码符合规则才执行,否则跳过: (图片无法显示,请参考原文)
这是hashcat特有的语法: (图片无法显示,请参考原文)
生成规则的方式有两种:
- 使用专门的软件:Using maskprocessor to create rules.
- 使用随机规则:
- 使用–generate-rules=NUM创造NUM个随机的规则
- 使用–generate-rules-func-min=NUM指定规则中函数的最小个数(默认一个)
- 使用–generate-rules-func-max=NUM指定规则中函数的最大个数(默认四个)
下面是命令帮助文件(若有疑问请查阅英文原版): (图片无法显示,请参考原文)
下面使用几个例子: cudaHashcat64.exe -a 3 -m 1000b4b9b02e6f09a9bd760f388b67351e2b ?a?l?l?l?l?l?l ntlm.png 可以用来破解WPA、WPA2的密码:首先对aircrack等抓下来的包含握手包的.cap文件进行清洗(可使用在线清洗,最简单,不放心可以本地清洗,也有脚本。。。)得到.hccap包 cudaHashcat64.exe -m 2500 -a 0 C:/Users/Beta/Desktop/hashcat.hccap G:/渗透工具/密码破解/WPA破解工具/字典/WPA字典/WPA.txt Clipboard Image.png 显示破解失败…955Mb的字典,跑完用了32分钟。其他的类似就不做示例了。
如果想要做练习,可以使用官方提供的测试hash。
如果使用过程中遇到什么问题可以在这里看看有没有说明: