Hash破解-hashcat工具

hashcat 密码破解
今天我要分享一个被誉为世界上最快的密码破解工具——hashcat。在渗透测试中,我们经常遇到一些经过加密处理的哈希值,有时在线网站无法解密,这时我们可以使用hashcat进行密码恢复。今天我将使用JohnTheRipper中的zip2john.exe工具获取加密zip文件的哈希值,并使用hashcat进行掩码破解。
搭建环境
- 加密压缩包:flag.zip
- JohnTheRipper-v1.8.0.12工具
- hashcat-5.1.0工具
了解hashcat
hashcat号称世界上最快的密码破解工具,它是第一个也是唯一一个基于GPU规则引擎的工具,支持免费多GPU(最多128个)、多哈希、多操作系统(Linux和Windows本地二进制文件)、多平台(支持OpenCL和CUDA)、多算法等特性。hashcat目前支持高达247种公开算法,几乎覆盖了市面上所有公开的密码加密算法。
- 官网:hashcat官网
- Wiki:hashcat Wiki
- 下载地址:hashcat下载地址


hashcat的扫描模式:
- 字典破解,使用字典进行破解
- 组合破解,使用多个字典进行破解
- 掩码破解,使用掩码方式进行破解
- 字典+掩码破解
- 掩码+字典
掩码设置:
掩码格式肉眼可见,使用问号?+掩码来表示一位值,例如:
- 4-6位字母密码:--increment --increment-min 4 --increment-max 6 ?l?l?l?l?l?l?l?l
- 前三个字符为"root",后三位未知:?a?a?aroot?a?a?a
通过掩码方式,我们可以根据已知信息进行组合,从而加快哈希破解速度。
常用参数:
-a
:指定破解模式,0表示字典攻击,1表示组合攻击,3表示掩码攻击。-m
:指定要破解的哈希类型,默认为MD5。-o
:指定破解成功后的哈希及对应的明文密码的存放位置,可以将破解成功的哈希写入指定的文件中。--force
:忽略破解过程中的警告信息,对于单条哈希可能需要加上此选项。--show
:显示已经破解的哈希及其对应的明文密码。--increment
:启用增量破解模式,可以让hashcat在指定的密码长度范围内执行破解过程。--increment-min
:密码最小长度,后面直接跟一个整数,与increment模式一起使用。--increment-max
:密码最大长度,后面直接跟一个整数,与increment模式一起使用。--outfile-format
:指定破解结果的输出格式ID,默认为3。
zip2john.exe flag.zip
flag.zip:$zip2$*0*3*0*b7d87e422bf350b36e436796bbc14ae8*7294*12*0aab67010215f567093a82dfdd75214b23ec*fda948392ccba597113e*$/zip2$:::::flag.zip-flag.txt

hashcat64.exe -a 3 -m 13600 $zip2$*0*3*0*b7d87e422bf350b36e436796bbc14ae8*7294*12*0aab67010215f567093a82dfdd75214b23ec*fda948392ccba597113e*$/zip2$ ?d?d?d?d?h?h?h
使用zip2john.exe获取flag.zip的哈希值
为了方便起见,我将哈希值复制到文件中(中间没有回车,为了更清晰,我在中间加了个回车)。
使用hashcat:
- 设置哈希类型为winzip13600(类型可以在hashcat的帮助文档中找到对应的值)。
- 破解模式为掩码模式。

首先进行破解,然后使用--show
参数输出密码。
在密码破解成功的一瞬间,我的激动心情也逐渐平静下来。多年尘封的种子资源终于可以重见天日。当我输入密码,打开文件的瞬间,我笑了。
这就是我使用win系统工具获取的方法。