HashCat 密码破解工具入门与实战指南
Hashcat 密码破解工具的基本功能、硬件支持、常用参数及攻击模式。内容涵盖字典攻击、掩码暴力破解、混合攻击等模式,以及针对 MD5、SHA、WPA、Office、RAR 等多种哈希类型的破解实例。此外,还详细讲解了 Hashcat 规则编写方法、掩码设置技巧及 Maskprocessor 工具的使用,旨在帮助用户掌握本地密码恢复技术。

Hashcat 密码破解工具的基本功能、硬件支持、常用参数及攻击模式。内容涵盖字典攻击、掩码暴力破解、混合攻击等模式,以及针对 MD5、SHA、WPA、Office、RAR 等多种哈希类型的破解实例。此外,还详细讲解了 Hashcat 规则编写方法、掩码设置技巧及 Maskprocessor 工具的使用,旨在帮助用户掌握本地密码恢复技术。

Hashcat 是一款基于 GPU 的密码破解工具,支持多 GPU、多哈希类型及多操作系统(Linux 和 Windows)。它支持 OpenCL 和 CUDA,资源利用率低,支持分布式破解。目前支持各类公开算法高达 247 类,市面上公开的密码加密算法基本都支持。
在渗透测试中,我们往往会得到很多 hash,需要去解密,而一些在线的网站无法解密出来,所以我们可以使用 hashcat 在本地进行密码恢复。
官网:https://hashcat.net/hashcat/ Wiki: https://hashcat.net/wiki/ 下载地址:https://hashcat.net/files/hashcat-5.1.0.7z
-a 指定要使用的破解模式,其值参考后面对参数。
-m 指定要破解的 hash 类型,如果不指定类型,则默认是 MD5
-o 指定破解成功后的 hash 及所对应的明文密码的存放位置
--force 忽略破解过程中的警告信息
--show 显示已经破解的 hash 及该 hash 所对应的明文
--increment 启用增量破解模式
--increment-min 密码最小长度
--increment-max 密码最大长度
--outfile-format 指定破解结果的输出格式 id
-r 使用自定义破解规则
| Mode | Name | Description |
|---|---|---|
| 0 | Straight | 字典破解:基于字典进行破解 |
| 1 | Combination | 组合破解:基于多个字典进行破解 |
| 3 | Brute-force | 掩码暴力破解:基于掩码设置进行破解 |
| 6 | Hybrid Wordlist + Mask | 字典 + 掩码破解 |
| 7 | Hybrid Mask + Wordlist | 掩码 + 字典破解 |
1 = hash[:salt] 2 = plain 3 = hash[:salt]:plain 4 = hex_plain 5 = hash[:salt]:hex_plain 6 = plain:hex_plain 7 = hash[:salt]:plain:hex_plain 8 = crackpos 9 = hash[:salt]:crackpos 10 = plain:crackpos 11 = hash[:salt]:plain:crackpos 12 = hex_plain:crackpos 13 = hash[:salt]:hex_plain:crackpos 14 = plain:hex_plain:crackpos 15 = hash[:salt]:plain:hex_plain:crackpos
因为比较多所以就不一一列举,可以 hashcat64.exe –help 查看。
常见的包括:
?d?d?d?d?d?d?d?d?a?a?a?a?a?a?a?a?u?u?u?u?d?d?d?d--increment --increment-min 6 --increment-max 8 ?l?l?l?l?l?l?l?lhashcat64.exe -m 0 -a 3 25d55ad283aa400af464c76d713c07ad ?d?d?d?d?d?d?d?d
hashcat64.exe -m 0 -a 3 e80b5017098950fc58aad83c8c14978e ?l?l?l?l?l?l
hashcat64.exe -a 3 -m 0 --force b54e53e2f21b7260df895bc885ceaa3e --increment --increment-min 1 --increment-max 8 ?h?h?h?h?h?h?h?h
-a 0 是指定字典破解模式,-o 是输出结果到文件中。
hashcat64.exe -a 0 ede900ac1424436b55dc3c9f20cb97a8 password.txt -o result.txt
hashcat64.exe -a 1 25f9e794323b453885f5181f1b624d0b pwd1.txt pwd2.txt
使用 zip2john 获取密码哈希值。 设置 hash 类型:win-zip 扫描模式:掩码模式。
hashcat64.exe -m 13600 -a 3 $zip2$*0*3*0*b71633a9a7fc15682a0dad00d17f1a43*2cee*1d*4c55a370878091d08bd637730ae11c1abdcdbcdbe099d14c166826216d*770b0e7ff9bbc5e4149c*$/zip2$ ?d?d?d?d?d?d --show
使用 mimikatz 获取 windows hash:需要管理员权限。
mimikatz.exe log
mimikatz # privilege::debug
mimikatz # sekurlsa::logonpasswords
mimikatz # exit
NT-hash:
hashcat64.exe -a 3 -m 1000 b4814903533072474831d4791b7d4a9c ?l?l?l?d?d?d?s
首先 rar2john 获取 rar 文件 hash 值。
rar:$rar5$16$639e9ce8344c680da12e8bdd4346a6a3$15$a2b056a21a9836d8d48c2844d171b73d$8$04a52d2224ad082e
hashcat64.exe -a 3 -m 13000 --force $rar5$16$639e9ce8344c680da12e8bdd4346a6a3$15$a2b056a21a9836d8d48c2844d171b73d$8$04a52d
获取 office 的 hash 值:python office2john.py 1.docx。
hashcat64.exe -a 3 -m 9600 $office$*2013*100000*256*16*e4a3eb62e8d3576f861f9eded75e0525*9eeb35f0849a7800d48113440b4bbb9c*577f8d8b2e1c5f60fed76e62327b38d28f25230f6c7dfd66588d9ca8097aabb9 --force ?d?d?d?d?d?d
首先先把我们的握手包转化为 hccapx 格式,现在最新版的 hashcat 只支持 hccapx 格式了。 官方在线转化:https://hashcat.net/cap2hccapx/
hashcat64.exe -a 3 -m 2500 1.hccapx 1391040?d?d?d?d
只要有效利用 Hashcat 的规则,就可对长度超过 8 个字符的密码进行高效破解。官方提供了一些规则的说明。
创建一个包含 spring 的简单字典:
echo spring> dict.txt
创建一个新文件,这将是我们的规则文件(我命名为 test.rule)。在规则文件中输入 c 并保存。注意,c 规则将单词的第一个字母大写,其余字母小写,因此 spring 应该成为 Spring。测试如下:
hashcat64.exe -r test.rule --stdout dict.txt Spring
c: 首字母大写$: 追加字符^: 前置字符例如,将字符附加到单词的开头或结尾:
c $2$0$1$9 -> Spring2019
将 123 添加到单词的开头:
^3^2^1 -> 123spring
在需要设定很长的密码时,人们通常会通过复制来解决这个问题。
c d $2$0$1$9 --> SpringSpring2019
规则 ss$ 会将 password 转换为 pa$$word。
用脚本去生成脚本通常是在明确知道所需的规则类型的情况下,为了减轻手动操作,节约时间而执行的操作。
Hashcat 团队中的某个开发人员开发了一个名为 maskprocessor 的工具,可以让你轻松创建复杂的规则文件。
mp64.exe -o test.rule "$?a"
mp64.exe -o test.rule "$?a $?a"
mp64.exe -o test.rule -1 ?s?d "$?a $?1 $?1"
等效于下面的三种攻击:
hashcat64.exe -a 6 -m 0 md5_hashes.txt wordlist.txt ?a
hashcat64.exe -a 6 -m 0 md5_hashes.txt wordlist.txt ?a?a
hashcat64.exe -a 6 -m 0 md5_hashes.txt wordlist.txt -1 ?s?d ?a?1?1
虽然看起来更加简洁了,但它并没有赋予我们新能力。但是,我们还是可以发现它有两种非常重要的能力: 1)我们可以在密码的两侧放置掩码。 2)你还想让字符串的首字母大写吗?
生成规则文件的命令:
mp64.exe -o test1.rule "c ^?d $?a"
你可以进行你想要的任何操作,当然,产生的规则越多,攻击所需的时间就越长。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML 转 Markdown 互为补充。 在线工具,Markdown 转 HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML 转 Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online