HashCat中文手册

文章发布时间:

最后更新时间:

文章总字数:
1.4k

页面浏览: 加载中...

HashCat 中文手册

介绍

HashCat 是当前世界上最快、最先进的密码恢复工具之一。它能够利用现代硬件(尤其是 GPU)的并行计算能力,以极高的效率破解各种类型的密码哈希。

核心特性

  • GPU 加速: 性能远超传统 CPU 破解工具,支持多 GPU 并行计算。
  • 算法支持: 支持超过 300 种哈希算法,覆盖操作系统、应用程序、网络协议等多个领域。
  • 跨平台: 原生支持 Windows、Linux 和 macOS。
  • 多种攻击模式: 内置字典、组合、掩码、混合、关联等多种高效的攻击策略。
  • 高度可定制: 提供丰富的命令行选项和规则引擎,允许用户精确控制破解过程。
  • 开源免费: 基于 MIT 许可证,可自由用于任何目的。
  • 会话管理: 支持任务的暂停、恢复和管理。

安装与配置

下载

从官方网站下载最新的二进制版本:

下载后解压即可使用,无需安装。

驱动要求

为了发挥 GPU 的性能,必须安装最新的显卡驱动:

  • NVIDIA: 需要最新的 ForceWare 驱动。
  • AMD: 需要最新的 Adrenalin Software 驱动。

验证安装

通过运行基准测试可以验证 HashCat 是否正常工作,并评估硬件性能。

1
2
3
4
5
# 运行所有支持算法的基准测试
hashcat -b

# 测试特定算法 (例如:MD5)
hashcat -b -m 0

基本用法

命令行语法

1
hashcat [选项]... hash|hashfile [字典|掩码|目录]...

一个完整的例子

假设我们有一个文件 hashes.txt,内容为一个 MD5 哈希值,我们想用字典 dict.txt 来破解它。

1
2
3
4
5
6
7
8
9
10
# hashes.txt 内容:
# 8713d75511bea7e0df78c6063dc778b0

# dict.txt 内容:
# ...
# digapis
# ...

# 破解命令
hashcat -m 0 -a 0 hashes.txt dict.txt --outfile-format=2 -o cracked.txt
  • -m 0: 指定哈希类型为 MD5。
  • -a 0: 使用字典攻击模式。
  • hashes.txt: 包含哈希值的文件。
  • dict.txt: 字典文件。
  • --outfile-format=2: 指定输出格式为仅明文。
  • -o cracked.txt: 将破解结果保存到 cracked.txt

攻击模式 (-a, --attack-mode)

字典攻击 (-a 0)

最直接的攻击方式,使用一个或多个字典文件进行尝试。

1
2
3
4
5
# 使用单个字典
hashcat -a 0 -m 0 hashes.txt dict.txt

# 使用一个目录下的所有字典
hashcat -a 0 -m 0 hashes.txt /path/to/dicts/

规则 (Rules): 字典攻击可以和规则文件 (-r) 结合,对字典词进行变形,极大扩展破解能力。

1
2
# 应用 best64.rule 规则
hashcat -a 0 -m 0 hashes.txt dict.txt -r rules/best64.rule

组合攻击 (-a 1)

将两个字典的词进行组合,适用于密码是多个单词拼接的场景。

1
2
# 将 dict1.txt 和 dict2.txt 中的词两两组合
hashcat -a 1 -m 0 hashes.txt dict1.txt dict2.txt

掩码攻击 (-a 3)

当密码结构已知时,此模式最为高效。

内置字符集:

掩码 字符集
?l abcdefghijklmnopqrstuvwxyz
?u ABCDEFGHIJKLMNOPQRSTUVWXYZ
?d 0123456789
?s !"#$%&'()*+,-./:;<=>?@[\]^_{\ }~`
?a ?l?u?d?s

示例:

1
2
3
4
5
# 破解8位纯数字密码
hashcat -a 3 -m 0 hashes.txt ?d?d?d?d?d?d?d?d

# 破解 "Password" + 2位数字 的密码
hashcat -a 3 -m 0 hashes.txt Password?d?d

混合攻击 (-a 6-a 7)

结合字典和掩码进行攻击。

1
2
3
4
5
# 字典在前,掩码在后 (例如: password123)
hashcat -a 6 -m 0 hashes.txt dict.txt ?d?d?d

# 掩码在前,字典在后 (例如: 2025password)
hashcat -a 7 -m 0 hashes.txt ?d?d?d?d dict.txt

核心选项参考

  • -m, --hash-type: 必须指定。定义哈希类型。
  • -o, --outfile: 将破解结果写入文件。
  • --outfile-format: 定义输出格式 (例如: 2=仅明文, 3=仅十六进制明文)。
  • --show: 显示已破解的哈希 (需 potfile 存在)。
  • --left: 显示未破解的哈希。
  • --remove: 破解成功后从任务中移除该哈希。
  • --session: 为任务命名,便于管理。
  • --restore: 恢复指定名称的任务。
  • --force: 忽略警告,强制执行。
  • -i, --increment: 启用掩码增量模式,用于破解不定长密码。
  • --increment-min, --increment-max: 设置增量模式的最小和最大长度。

性能优化

  • -w, --workload-profile: 工作负载配置。1 (低) 到 4 (噩梦),级别越高,速度越快,但系统响应越慢。
  • -O, --optimized-kernel-enable: 启用优化内核。对某些算法有奇效,但可能限制密码长度。
  • --potfile-disable: 禁用 potfile。略微提升性能,但无法记录已破解的哈希。
  • --self-test-disable: 禁用启动自检。用于跳过某些驱动或硬件兼容性问题。

常见问题 (FAQ)

问:HashCat 启动时报告驱动错误怎么办?

答:这是最常见的问题。首先,请确保您的 NVIDIA 或 AMD 显卡驱动已更新至官网最新版本。如果问题依旧,可以尝试使用 --force--self-test-disable 参数启动,但这只能作为临时解决方案。

问:如何恢复中断的破解任务?

答:启动任务时使用 --session=my_session 为任务命名。当任务意外中断后,执行 hashcat --session=my_session --restore 即可从上次保存的进度点恢复。

问:如何破解包含特殊字符的密码?

答:在命令行中,特殊字符可能需要转义。例如,在 Windows CMD 中,| 字符需要使用 ^|。更稳妥的方法是使用自定义字符集,例如 -1 '$%@',然后在掩码中通过 ?1 来引用它。

问:如何提升破解速度?

答:1. 确保使用的是 GPU。 2. 更新显卡驱动。 3. 使用 -w 4 -O 等优化参数。 4. 尽可能缩小密码猜测范围(例如,精确的掩码或高质量的字典)。

参考链接