hashcat的使用方法 技术分享

2024-12-24 12:26:55

hashcat 有四种基本的解密方式:
1. 字典解密

2. 组合字符串解密

3. 暴力解密(弃用)–mask attack(掩码解密)
4. 混合解密
还有基于规则的解密方式,还有切换大小写的不过可以归为规则解密

字典解密

-a 0 -m type hashfile dictionary1 dictionary2
貌似还可以用gpu加速

组合字符串解密

假如字典里面的内容是这样的
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

举个栗子:
字典1:

    11
    2212

字典2:

    33
    4412

commands:

    -j '$-'
    -k '!$'12

上面的$代理字典里面的单词,-j '$-'表示在单词右侧加一个-,-k '$!'表示在单词左侧加一个!
所以产生的组合是:

    11-33!
    22-33!
    11-44!
    22-44!1234

Mask Attack

这个东东,官方给出来的说明比较简单,就是说mask attack 比brute-force强在减少了密码表的数量,至于减少密码数量的算法没有过多介绍(基于hcmask文件),只是简单的提了一句通过一些常规的密码形式来减少密码数量,举个栗子:”Kele1997”,暴力解密的时候会枚举所有的可能,etc.. 但是mask attack的时候程序就会尝试只有首字母大写,因为大多数密码很少会在第二或者是第三的位置上有大写,通过这些规则来减少密码的候选数量

官方说mask attack比起brute-force来说没有任何缺点,因为mask attack 可以产生所有brute-force的密码

Charset 字符集

内置字符集
?l = abcdefghijklmnopqrstuvwxyz
?u = ABCDEFGHIJKLMNOPQRSTUVWXYZ
?d = 0123456789
?h = 0123456789abcdef
?H = 0123456789ABCDEF
?s = «space»!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
?a = ?l?u?d?s
?b = 0x00 - 0xff123456789

程序目录里面有charsets包含各种各样诡异的字符,加入你的密码中有的话,你可以使用这些文件

hashcat 有四个参数用于指定自定义的字符集
–custom-charset1=CS
–custom-charset2=CS
–custom-charset3=CS
–custom-charset4=CS
这四个参数可以用缩写 -1, -2, -3 和 -4来代替. 你可以指定自定义的字符集来进行解密

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 这个参数来

 -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

Hashcat mask files

-a 3 hash.txt mask_file.hcmask 加载hcmask文件,使用文件中的mask来解密

hashcat 自带了几个hcmask文件,放在程序目录mask/下面

16进制字符

--hex-charset 后面的字符串是16进行

混合解密

生成的密码是有字典和暴力解密生成的字符组合而成的
举个栗子:example.dict

    password
    hello12

hashcat64 -a 6 example.dict ?d?d?d?d
?d?d?d?d表示四位长的整数
所以最后生成的密码候选序列是:

    password0000
    password0001
    password0002
    .
    .
    .
    password99991234567

hashcat64 -a 6 ?d?d?d?d example.dict
结果:

0000password
0001password
.
.
.
9999password123456

使用规则模拟混解密 (Using rules to emulate Hybrid attack 没法子翻译了)

使用maskprocessor利用规则产生暴力解密所需要的规则,然后生成的规则文件可以使用hashcat -r进行加载和字典混合成成密码候选
举个栗子:example.dict

hello
password12

hash -o bf.rule '$?d $?d $?d $?d

生成的规则是这个样子的: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 。。。。
最后生成的是这个样子:

    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

上一条:hashcat 哈希猫的几种攻击模式
下一条:Hashcat 是一款密码爆破神器,信息安全必备工具之一,特此收藏此文章记录总结