Hashcat号称世界上最快的密码破译工具,今天这篇文章会抽取几个常见常用的参数,结合密码破译命令,分析如何使用hashcat破译密码。
我们知道hashcat可以破译大量的密码类型,它可以破译大约210种密码,其中绝大多数是hash。想通过hashcat进行密码破译,首先需要了解密码的形式,然后根据密码形式索引这个密码在hashcat中的编号。
我们以口令:digapis,和盐值asdf为例,展示部分hash值的形式。
编号 | 名称 | 类型 | 例子 |
---|---|---|---|
0 | MD5 | Hash,长度32 | 8713d75511bea7e0df78c6063dc778b0 |
1400 | SHA-256 | hash | aa106625c7de812d6118992a191ea4627e2457fa80bf6ec06f9c60cbf8e5260f |
1700 | SHA-512 | hash | 23afac4524f62ea4d941ca4933249b2b78d19069773266abc36d6fd17a6fbe2f4ccc834acc868358ba32ddca553611218a2865f975339fe45d38cc1999f84b5e |
10 | Md5($pass.$salt) | 口令加盐后进行一次MD5,口令在前 | 48985c61e2581c3f9ee5f1cfb775afbc:asdf |
20 | MD5($salt.$pass) | 盐在前 | 4fa1dd606353e055fed67d9812bddf35:asdf |
2600 | md5(md5($pass)) | 口令进行2次MD5 | 98177c3f36af4a3f77f5b87594e6cf6a |
3710 | md5($salt.md5($pass)) | 口令进行一次MD5变换,在前面加上盐,再进行一次MD5 | 88a535877ec21b8786775a7074e4de4c:asdf |
4400 | md5(sha1($pass)) | 口令进行一次sha1变换,再进行一次MD5 | ec7bf3099984001a2b0f37ba5d1d68fa |
4500 | sha1(sha1($pass)) | 略 | 005a41cfe16c9a5556c7a5cdd5f1958991f2e031 |
1460 | HMAC-SHA256(key=$salt) | 略 | d684ab7c38ddc262f215328334c4d0273cef10d6c5e61988f5cc87fcab8a7a60:asdf |
11500 | CRC32 | 略 | 4C244A19:00000000 |
-a命令可以指定攻击模式。用hashcat破译密码,仅知到密码的编号是不够的,还需要选定用hashcat进行密码破译的攻击模式。
Hashcat4.0.1有5中攻击模式,每种攻击模式都有其特征。
编号 | 攻击模式 | 含义 |
---|---|---|
0 | straight | 直接攻击模式 |
1 | Combinstion | 组合攻击模式 |
3 | Brute-force | 爆力破解模式 |
6 | Hybrid Wordlist+Mask | 字典+掩码组合 |
7 | Hybird Mask+Wordlist | 掩码+字典组合 |
在这5中攻击模式下,我们可以利用字典进行密码破译,利用暴力破解的方式遍历所有可能的密码,也可以结合字典和掩码进行密码破译。在不同的攻击模式下,hashcat命令所用到的参数有所不同,我们以straight攻击模式为例,学习hashcat是如何利用字典文件进行密码破译。同事也会穿插其他参数的使用方法。
直接攻击模式就是直接利用字典进行密码爆破,它可以使用单一字典文件,或多个字典文件进行解密。还可以通过将字典与规则文件结合,让密码爆破效率更高。
hashcat -a 0 –m 0 mima.txt –o outfile dic.txt
-a指定攻击模式为直接攻击,-m指定hash类型为MD5,-o会把破译出的密码写入outfile中。
双字典攻击也是直接攻击模式下的一种情形,会在利用字典文件爆破密码时,加载两个字典文件。这样就扩大了字典文件的空间。
多字典攻击同时利用加载多个字典文件,下面这条命令利用三个字典进行字典攻击,依次加载三个字典进行爆破。命令中的dic.txt是爆破中用到的字典文件。
利用字典目录攻击会把字典目录下的多个字典文件用于直接攻击,利用字典目录会在直接攻击过程中依次加载字典目录中的多个字典文件,下面命令中的dic是多个字典文件所在的文件夹。
-r/--rule-file命令会把规则文件中的多条规则作用于字典中的每个字。规则文件可以自己生成,也可以使用hashcat自带的规则文件。hashcat自带的规则文件通常在rules文件夹下。rules文件夹下的规则文件如下:
在字典+规则攻击中,可以用单字典,多字典或字典目录结合规则文件进行密码爆破。其实就是直接攻击摸式结合规则文件的形式。
所谓规则类似于生成候选密码的编程语言,它可以修改,剪切,扩展单词或者是根据条件操作符跳过一些操作。从而可以更加灵活高效的进行攻击。
规则攻击可以和双字典,多字典甚至字典目录结合使用。使用方法与单字典+规则攻击类似。
-o参数后面是使出文件,通过-o命令把破译出的密码输入到指定文件,默认存储形式是hash:plain。前面有关于该命令使用的例子,大家自行去看上面一张图。
该命令可以指定outfile文件的输出格式。Outfile文件共有15中输出模式。
Outfile-format=1仅输出破译出的密文hash;
Outfile-format=2,仅输出破译出的密码的明文。
除了用-o参数输出,我们还可以通过参数remove,把密文文件中已经破译的密码筛除,仅留下不能破译的密码。这样在后续进行密码破译时,就可以减少重复工作。
当破译密码数量比较多或字典文件非常大时会出现如下选项,键盘输入S会在屏幕中打印下一条状态,通过该状态可以查看当前密码破译的进度。
每次想要查看当前密码破译进度都要输入S会比较麻烦,这是利用status参数就可以让让屏幕自动更新状态屏幕。减少自己需要进行的操作,也可以减少误触。
除了利用status参令hashcat自动更新屏幕状态,还可以利用--status-timer参数设置状态屏幕更新的间隔。
Hashcat中的直接攻击模式的使用方法大致就是以上内容。对hashcat感兴趣的话还可以直接访问hashcat的网站,其中有对hashcat的命令参数以及各攻击模式的详细介绍。
文章转载自丁牛网安实验室