商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 系统应用 > 理解 Hashcat 命令结构

理解 Hashcat 命令结构

  发布于2026-08-19 阅读(0)

扫一扫,手机访问

引言

Hashcat 是一个强大且功能多样的密码恢复工具。要有效地使用它,你必须首先理解其命令行结构。一个 Hashcat 命令由几个关键组件组成,这些组件精确地告诉程序要破解什么以及如何破解。

在本次实验中,你要学习Hashcat命令的基本构成。我们会逐步构建出一个完整且能使用的命令,其中涵盖五个基本组成部分:可执行文件、哈希类型、攻击模式、输入哈希文件以及输入字典文件。等完成这些步骤后,你就能够为基于字典的攻击构建出基本的Hashcat命令了。

识别 Hashcat 命令的核心组件

在此步骤中,我们将识别 Hashcat 命令的基本语法。理解此结构是使用该工具的第一步。

一个典型的 Hashcat 命令遵循以下模式:

hashcat [options] hashfile [wordlist/mask]

让我们分解这些组件:

  • CODE_0: 这是可执行程序本身的名称。
  • CODE0: 这些是修改程序行为的标志。最重要的选项是用于哈希类型的 CODE1 和用于攻击模式的 CODE_2,我们将在接下来的步骤中介绍。
  • CODE_0: 这是包含你想要破解的哈希或哈希的文件路径。
  • CODE_0: 这是输入文件的路径,例如用于字典攻击的字典文件,或用于暴力破解攻击的掩码模式。

首先,让我们查看内置的帮助菜单,以了解该工具。此命令列出了所有可用的选项和信息。

在你的终端中执行以下命令:

hashcat --help

你将看到一个详细说明 Hashcat 所有功能的长输出。我们将在后续步骤中参考这些信息。

```plaintext
hashcat (v6.2.6) starting in help mode

Usage: hashcat [options]... hash|hashfile|hccapxfile [dictionary|mask|directory]...

...
-a, --attack-mode | Num | 攻击模式,见下面的参考。
-m, --hash-type | Num | 哈希类型,见下面的参考。
...
```

现在我们已经理解了基本结构,可以开始构建我们的命令了。

使用 -m 标志指定哈希类型

在此步骤中,你将学习如何指定目标哈希类型。Hashcat 支持数百种不同的哈希算法,你必须告诉它你正在尝试破解哪一种。这是通过使用 CODE_0 标志后跟一个数字代码来完成的。

我们的实验环境准备了一个名为 CODE0 的文件,其中包含一个 MD5 哈希。要查找 MD5 的正确代码,你可以搜索 CODE1 的输出。

使用 CODE_0 命令过滤帮助文本中的“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 哈希的代码是 CODE_0。现在我们可以将其添加到我们的命令中。命令目前看起来像这样:

CODE_0

在下一步中,我们将指定攻击模式。

使用 -a 标志指定攻击模式

在此步骤中,你将学习如何使用 CODE_0 标志设置攻击模式。攻击模式告诉 Hashcat 使用哪种方法来破解密码。

Hashcat 提供了几种攻击模式,但最常见的是:

  • CODE_0: Straight (字典攻击) - 将哈希与单词列表进行比较。
  • CODE_0: Combination - 组合来自两个不同字典的单词。
  • CODE_0: Brute-force (掩码攻击) - 根据定义的模式(掩码)尝试所有可能的字符组合。

对于本次实验,我们将执行 Straight(字典)攻击,因此我们将使用攻击模式 CODE_0。你可以在帮助菜单中找到所有攻击模式的列表。

让我们再次使用 CODE_0 来查找“Attack-Modes”部分:

hashcat --help | grep "Attack-Modes" -A 10

CODE0 标志告诉 CODE1 显示匹配项之后的 10 行,为你提供完整列表。

```plaintext
- [ Attack-Modes ] -

## | Mode
===+======
0 | Straight
1 | Combination
3 | Brute-force
6 | Hybrid dict + mask
7 | Hybrid mask + dict
```

我们现在已经确定了攻击模式。让我们将其添加到我们的命令中,命令现在变为:

CODE_0

接下来,我们将提供包含我们想要破解的哈希的文件。

提供输入哈希文件

在此步骤中,你将指定包含要破解的哈希的输入文件。此参数位于选项之后。

本次实验的设置脚本已在你的当前目录(CODE0)中创建了一个名为 CODE1 的文件。此文件包含一个 MD5 哈希。

让我们使用 CODE_0 命令查看此文件的内容:

cat hashes.txt

你应该会看到以下输出:

5f4dcc3b5aa765d61d8327deb882cf99

这就是我们将要破解的哈希。要将其添加到我们的命令中,只需将文件名放在选项之后。我们的命令现在看起来像这样:

CODE_0

最后一步是为我们的字典攻击提供单词列表。

提供输入单词列表或掩码

在最后一步中,你将提供字典攻击所需的最后一个组件:单词列表。单词列表是一个纯文本文件,其中每一行都是一个潜在的密码。

实验环境包含一个名为 CODE_0 的简单单词列表。让我们检查一下它的内容:

cat wordlist.txt

输出将是:

test
hello
password
123456

Hashcat 将使用此单词列表来测试哈希。单词列表文件是我们命令中的最后一个参数。

现在,让我们组装并运行完整的命令:

hashcat -m 0 -a 0 hashes.txt wordlist.txt

Hashcat 将启动。由于我们的哈希和单词列表非常简单,它将几乎立即完成。输出将显示破解会话的状态。

...
Session..........: hashcat
Status...........: Cracked
Hash.Name........: MD5
Hash.Target......: 5f4dcc3b5aa765d61d8327deb882cf99
Time.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:8
Recovered........: 1/1 (100.00%) Digests
Progress.........: 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-1
Candidates.#1....: test -> 123456
Hardware.Mon.#1..: Util: 99%
...

CODE0 行确认成功。要查看破解的密码,你可以再次运行相同的命令并加上 CODE1 标志。

hashcat -m 0 -a 0 hashes.txt wordlist.txt --show

输出将清晰地显示哈希及其对应的明文密码:

5f4dcc3b5aa765d61d8327deb882cf99:password

恭喜你,你已成功构建并执行了一个完整的 Hashcat 命令!

总结

在本次实验中,你从零开始构建了一个 Hashcat 命令,学习了其基本命令结构。你已成功使用字典攻击破解了一个 MD5 哈希。

你现在理解了 Hashcat 基本命令的五个核心组成部分:

  1. 可执行文件CODE_0
  2. 哈希类型:通过 CODE0 指定(例如,MD5 为 CODE1)。
  3. 攻击模式:通过 CODE0 指定(例如,字典攻击为 CODE1)。
  4. 哈希文件:包含目标哈希的文件(例如,CODE_0)。
  5. 单词列表/掩码:攻击的输入(例如,CODE_0)。

你学到的最终命令结构是:CODE_0。这些知识为你探索更高级的 Hashcat 功能奠定了坚实的基础。

本文转载于:https://labex.io/zh/tutorials/kali-understand-hashcat-command-structure-594512 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注