文章总结: 本文介绍了Hashcat这款GPU加速密码恢复工具,支持多种哈希算法。文章详细讲解了命令结构,重点说明通过-m指定哈希类型和-a选择攻击模式,涵盖字典攻击、掩码攻击及规则攻击的具体操作。该工具适用于安全审计与密码恢复,通过hashID辅助识别哈希类型可提升效率。 综合评分: 85 文章分类: 安全工具,渗透测试,CTF
Hashcat密码工具:快速识别百种哈希密码类型+GPU加速密码爆破
网安武器库
网安武器库
2026年1月7日 17:55 湖南
更多干货 点击蓝字 关注我们
注:本文仅供学习,坚决反对一切危害网络安全的行为。造成法律后果自行负责!
往期回顾
·“手机版的kali”黑客工具:Tool-X使用和安装指南
·pentmenu:黑客必备实战流量攻击工具
·CTF-FlaskSession的cookie密码快速爆破工具
·钓鱼工具分享:I-SEE-YOU获取受害者地理位置,实现物理”开盒“
·ZipCracker: CTF-MISC必备之zip伪加密破解和密码爆破工具
·Ds_store_exp工具一键挖掘备份文件泄露-CTF文件泄露-漏洞信息挖掘
介绍
Hashcat是一款顶级的GPU加速密码恢复工具,支持数百种哈希算法,可以让你在拥有合法授权的前提下,测试密码强度或恢复被遗忘的密码。
| | | | — | — | | 核心特色 | 支持GPU、CPU、APU等多种计算核心进行高速破解,拥有模块化的攻击模式。 | | 支持算法 | 支持超过200种哈希类型,涵盖MD5、SHA系列、NTLM、Linux密码哈希等常见类型。 |
| | | | — | — | | 攻击模式 | 提供字典、组合、掩码、混合、规则攻击等多种模式。 | | 主要应用场景 | 安全审计、数字取证、密码恢复(需合法授权) |
项目地址:
https://github.com/hashcat/hashcat
使用
hashID – 专属的识别先锋
这是Hashcat项目官方推荐的识别工具,专门为Hashcat的 -m 参数服务。
# 直接识别一个哈希值hashid '5f4dcc3b5aa765d61d8327deb882cf99'
输出解读:
Analyzing '5f4dcc3b5aa765d61d8327deb882cf99' [+] MD2 [+] MD5 <-- 最常见的结果 [+] MD4 [+] Double MD5 [+] LM ... (可能列出多种相似类型)
它会根据哈希的长度、字符集和特征,给出一个从最可能到较可能的候选列表。你需要根据上下文(例如,这个哈希来自什么系统)来判断最可能的类型,然后使用Hashcat进行验证。
一个典型的Hashcat命令由以下几个核心部分组成:
hashcat [options] hashfile [wordlist/mask]
hashcat: 这是可执行程序本身的名称。[options]: 这些是修改程序行为的标志。最重要的选项是用于哈希类型的 -m 和用于攻击模式的 -a,我们将在接下来的步骤中介绍。hashfile: 这是包含你想要破解的哈希或哈希的文件路径。[wordlist/mask]: 这是输入文件的路径,例如用于字典攻击的字典文件,或用于暴力破解攻击的掩码模式。
使用 -m 标志指定哈希类型
Hashcat支持数百种不同的哈希算法,你必须告诉它你正在尝试破解哪一种。这是通过使用 -m 标志后跟一个数字代码来完成的。
我们准备一个名为 hashes.txt 的文件,其中包含一个 MD5 哈希。要查找 MD5 的正确代码,你可以搜索 hashcat --help 的输出。
使用 grep 命令过滤帮助文本中的“MD5”:
hashcat --help | grep MD5
输出将显示所有与 MD5 相关的哈希类型及其对应的代码。
0 | MD5 | Raw Hash, Salted and/or Iterated 10 | md5($pass.$salt) | Raw Hash, Salted and/or Iterated 20 | md5($salt.$pass) | Raw Hash, Salted and/or Iterated...
标准 MD5 哈希的代码是 0。
现在我们可以将其添加到我们的命令中。命令目前看起来像这样:
hashcat -m 0 ...
#
使用 -a 标志指定攻击模式
攻击模式告诉 Hashcat 使用哪种方法来破解密码。
Hashcat 提供了几种攻击模式,但最常见的是:
0: Straight (字典攻击) - 将哈希与单词列表进行比较。1: Combination - 组合来自两个不同字典的单词。3: Brute-force (掩码攻击) - 根据定义的模式(掩码)尝试所有可能的字符组合。
本次我们将执行Straight(字典)攻击,因此我们将使用攻击模式0。
让我们再次使用 grep 来查找“Attack-Modes”部分:
hashcat --help | grep "Attack-Modes" -A 10
-A 10 标志告诉 grep 显示匹配项之后的 10 行,为你提供完整列表。
- [ Attack-Modes ] - ## | Mode ===+====== 0 | Straight 1 | Combination 3 | Brute-force 6 | Hybrid dict + mask 7 | Hybrid mask + dict
我们现在已经确定了攻击模式。让我们将其添加到我们的命令中,命令现在变为:
hashcat -m 0 -a 0 ...
接下来,我们将提供包含我们想要破解的哈希的文件。
提供输入哈希文件
让我们使用 cat 命令查看此文件的内容:
cat hashes.txt
会看到以下输出:
5f4dcc3b5aa765d61d8327deb882cf99
这就是我们将要破解的哈希。要将其添加到我们的命令中,只需将文件名放在选项之后。我们的命令现在像这样:
hashcat -m 0 -a 0 hashes.txt ...
最后一步是为我们的字典攻击提供单词列表。
提供输入单词列表或掩码
在最后一步中,你将提供字典攻击所需的最后一个组件:单词列表。单词列表是一个纯文本文件,其中每一行都是一个潜在的密码。
对一个名为 wordlist.txt 的简单单词列表。让我们检查一下它的内容:
cat wordlist.txt
输出将是:
testhellopassword123456
Hashcat 将使用此单词列表来测试哈希。单词列表文件是我们命令中的最后一个参数。
现在,让我们组装并运行完整的命令:
hashcat -m 0 -a 0 hashes.txt wordlist.txt
Hashcat启动,由于我们的哈希和单词列表非常简单,它将几乎立即完成。输出将显示破解会话的状态。
...Session..........: hashcatStatus...........: CrackedHash.Name........: MD5Hash.Target......: 5f4dcc3b5aa765d61d8327deb882cf99Time.Started.....: ...Time.Estimated...: 0 secs (0.00ms)Guess.Base.......: File (wordlist.txt)Guess.Queue......: 1/1 (100.00%)Speed.#1.........: 496.9 kH/s (0.00ms) @ Accel:128 Loops:1 Thr:1 Vec:8Recovered........: 1/1 (100.00%) DigestsProgress.........: 4/4 (100.00%)Rejected.........: 0/4 (0.00%)Restore.Point....: 4/4 (100.00%)Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-1Candidates.#1....: test -> 123456Hardware.Mon.#1..: Util: 99%...
“Status...........: Cracked“行确认成功。要查看破解的密码,你可以再次运行相同的命令并加上 --show 标志。
hashcat -m 0 -a 0 hashes.txt wordlist.txt --show
输出将清晰地显示哈希及其对应的明文密码:
5f4dcc3b5aa765d61d8327deb882cf99:password
获取帮助:
hashcat --help
会看到一个详细说明 Hashcat 所有功能的长输出。我们将在后续步骤中参考这些信息:
hashcat (v6.2.6) starting in help modeUsage: hashcat [options]... hash|hashfile|hccapxfile [dictionary|mask|directory]......-a, --attack-mode | Num | Attack-mode, see references below.-m, --hash-type | Num | Hash-type, see references below....
参考:https://labex.io/zh/tutorials/kali-understand-hashcat-command-structure-594512
总结
1.字典攻击 (-a 0)
这是最直接的模式。Hashcat会读取你提供的字典文件,将其中每一行作为密码候选进行尝试
# 使用 rockyou.txt 字典破解MD5哈希文件hashcat -m 0 -a 0 hashes.txt rockyou.txt
2.掩码攻击 (-a 3)
当你对密码结构(如长度、字符类型)有了解时,掩码攻击非常高效。它通过定义密码的“模板”来系统性地生成候选密码。
# 破解一个已知为6位纯数字的密码 (MD5)hashcat -m 0 -a 3 hashes.txt ?d?d?d?d?d?d
?l:小写字母 (abc...)?u:大写字母 (ABC...)?d:数字 (0123456789)?s:特殊字符 (!@#$%...)?a:以上所有字符的集合
3.规则攻击 (-r)****
这是字典攻击的威力加强版。你可以编写或使用预定义的“规则”,对字典中的基础单词进行各种变换(如大小写切换、添加后缀、字符替换等),从而极大地扩展字典的覆盖范围。
# 使用自定义规则文件对字典进行变换后攻击hashcat -m 0 -a 0 hashes.txt dictionary.txt -r custom.rule
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:网安武器库 网安武器库《Hashcat密码工具:快速识别百种哈希密码类型+GPU加速密码爆破》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论