HashCat使用手册

0x00 背景

Hashcat是一个已经有贴近完美的工作工具,支持像“PasswordsPro”,“约翰开膛手”基于规则的攻击。然而,对于一些未知的原因,他们两个不支持多线程。这是写Hashcat的唯一理由:为了利用现代CPU的多个核心。

0x01 简介

Hashcat有两个主要的变种:

  • 1.Hashcat 基于CPU的密码恢复工具
  • 2.oclHashcat/cudaHashcat 一个GPU加速工具

许多由Hashcat支持的算法可以在更短的时间,通过使用证据充分的GPU加速被破解在oclHashcat(如MD5,SHA1,等等)利用。然而,并非所有的算法可以通过利用GPU的加速。Bcrypt就是一个很好的例子。由于种种因素,比如依赖于数据的分支,序列化和内存(以仅举几例),oclHashcat不是一个包罗万象的替代Hashcat。
使用的话,低版本提示版本过低的话,改一下时间就行了)
使用Hashcat没有任何限制,使用oclhashcat则必须满足AMD(的OpenCL)和Nvidia(CUDA)。

0x02 特性

  • Hashcat可用于Linux,OSX和Windows。oclHashcat仅适用于Linux和Windows
  • 世界最快的密码破解
  • 世界第一个也是唯一基于GPU规则引擎
  • 自由
  • 开源
  • 多GPU(高达128 GPU)的
  • 多散列(高达1亿散列)
  • 多操作系统(Linux和Windows本地二进制文件)
  • 多平台(OpenCL和CUDA支持)
  • 多算法中(见下文)
  • 资源利用率低,你仍然可以看电影或玩游戏而破裂
  • 高度集中迭代现代哈希
  • 基于重点字典攻击
  • 支持分布式开裂
  • 支持暂停 / 恢复而开裂
  • 支持会话
  • 支持恢复
  • 支持读取单词文件
  • 支持读取字标准输入
  • 支持六角盐
  • 支持十六进制字符集
  • 内置基准系统
  • 综合热看门狗
  • 150+算法在考虑性能的实现

0x04 使用说明

破解的hash类型

使用 –help 查看破解类型

900 = MD4
0 = MD5
5100 = Half MD5
100 = SHA1
10800 = SHA-384
1400 = SHA-256
1700 = SHA-512
5000 = SHA-3(Keccak)
10100 = SipHash
6000 = RipeMD160
6100 = Whirlpool
6900 = GOST R 34.11-94
11700 = GOST R 34.11-2012 (Streebog) 256-bit
11800 = GOST R 34.11-2012 (Streebog) 512-bit
10 = md5($pass.$salt)
20 = md5($salt.$pass)
30 = md5(unicode($pass).$salt)
40 = md5($salt.unicode($pass))
3800 = md5($salt.$pass.$salt)
3710 = md5($salt.md5($pass))
2600 = md5(md5($pass)
4300 = md5(strtoupper(md5($pass)))
4400 = md5(sha1($pass))
110 = sha1($pass.$salt)
120 = sha1($salt.$pass)
130 = sha1(unicode($pass).$salt)
140 = sha1($salt.unicode($pass))
4500 = sha1(sha1($pass)
4700 = sha1(md5($pass))
4900 = sha1($salt.$pass.$salt)
1410 = sha256($pass.$salt)
1420 = sha256($salt.$pass)
1430 = sha256(unicode($pass).$salt)
1440 = sha256($salt.unicode($pass))
1710 = sha512($pass.$salt)
1720 = sha512($salt.$pass)
1730 = sha512(unicode($pass).$salt)
1740 = sha512($salt.unicode($pass))

破解方式

0 = Straight                 #直接字典破解
1 = Combination         #组合破解
2 = Toggle-Case             #切换不同文件破解    
3 = Brute-force             #掩码暴力破解
4 = Permutation         #置换组合破解
5 = Table-Lookup         #查表破解
8 = Prince    

参数说明

General: 
  -m,  --hash-type=NUM              hash类型,引用上文数字
  -a,  --attack-mode=NUM            攻击类型,引用上文数字
  -V,  --version                      版本
  -h,  --help                        帮助文档
--quiet                       Suppress output

Misc:
--hex-salt                                以十六进制给出       
--hex-charset                             以字符集给出    
--runtime=NUM                          运行num时间后终止
--status                                 启用状态
--status-timer=NUM                       定时器
--status-automat                           状态

Built-in charsets:  #自定义字符集
?l = abcdefghijklmnopqrstuvwxyz
?u = ABCDEFGHIJKLMNOPQRSTUVWXYZ
?d = 0123456789
?s =  !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
?a = ?l?u?d?s
?b = 0x00 - 0xff

FIile:
  -o,--outfile =文件中定义OUTFILE已恢复哈希
       --outfile格式= NUM定义恢复的散列OUTFILE格式,请参阅下面引用
   --outfile-autohex-Disable禁止使用$ HEX []输出平原
  -p,--separator = CHAR定义hashlists / outfile中分离炭
       --show显示密码破解只(见--username)
       --left只(见--username)显示未开裂的密码
       --username启用hashfile用户名忽略(推荐:也使用--show)
       一旦它被破解--remove启用哈希删除
       --stdout标准输出模式
       --potfile,禁止不写potfile
       --debug模式= NUM(仅适用于通过使用规则的混合)定义调试模式,                                见下面的参考资料
       --debug文件=调试规则文件的输出文件(见--debug模式)
-e,--salt-file =文件盐,文件无盐hashlists

Increment:
      -i,     --increment                   
     --increment-min=NUM           最小值
     --increment-max=NUM           最大值

0x05 具体操作

使用字典进行破解

使用给的字典和hash进行破解

Hashcat.exe -m 500 example500.hash example.dict
cudaHashcat32.exe -m 500 example500.hash example.dict >result.txt

使用掩码进行破解

48E231E66FF8943DB0F6D2B6CB6536D2(xiaoming123456)?l?l?l?l?l?l?l?l?d?d?d?d?d?d
hashcat.exe -m 0 -a 3 
48E231E66FF8943DB0F6D2B6CB6536D2 ?l?l?l?l?l?l?l?l?d?d?d?d?d?d

HashCat参数优化

HashCat本身考虑到系统资源的分配,默认参数下并没有最大化的来使用硬件资源。如果我们想要让破解速度最大化,就需要对一些参数进行配置。

  1. Workload tuning 负载调优。
    该参数支持的值有1,8,40,80,160

    --gpu-accel 160
    

    可以让GPU发挥最大性能。

  2. Gpu loops 负载微调
    该参数支持的值的范围是8-1024(有些算法只支持到1000)。

    --gpu-loops 1024
    

    可以让GPU发挥最大性能。

  3. Segment size 字典缓存大小
    该参数是设置内存缓存的大小,作用是将字典放入内存缓存以加快字典破解速度,默认为32MB,可以根据自身内存情况进行设置,当然是越大越好XD。

    --segment-size 512
    

    可以提高大字典破解的速度。

大爷,赏个铜板呗!