引言
在本实验中,你将探索如何使用 hashcat 的工作负载配置文件(workload profiles)来优化这个强大的密码恢复工具的性能。工作负载配置文件设置允许你精细调整 hashcat 的资源消耗,从而在原始破解速度和整体系统响应能力之间取得平衡。当你需要在运行其他活动的机器上执行长时间的破解任务时,这一点至关重要。
你将学会:
- 理解
hashcat中可用的不同工作负载配置文件。 - 建立一个基准性能测试。
- 测试和比较“低功耗”(Low Power)和“高性能”(High Performance)配置文件。
- 将这些知识应用于实际的破解场景。
理解 -w 工作负载配置文件的目的
在此步骤中,你将了解 hashcat 中的 -w (或 --workload-profile) 选项。此选项控制 hashcat 的内部工作负载管理,影响其对 CPU 和 GPU 的压力。
共有四个主要配置文件:
-w 1(低功耗 Low Power): 最小化资源使用。系统保持高度响应,但破解速度显著降低。非常适合在工作站上作为后台运行。-w 2(默认 Default): 一个平衡的配置文件,提供良好的性能,同时保持系统基本可用。-w 3(高性能 High Performance): 通过使用更多系统资源来最大化破解速度。系统可能会变得迟钝。-w 4(噩梦 Nightmare): 适用于专用的、高度优化的破解设备。它将硬件推向极限,并可能导致标准机器出现系统不稳定或崩溃。
让我们从查看此特定选项的帮助信息开始。这是了解任何命令行工具功能的好习惯。
在你的终端中执行以下命令,以在 hashcat 的帮助菜单中查找工作负载配置文件选项的描述:
hashcat --help | grep "workload-profile"
你应该会看到描述 -w 选项及其可用级别的输出。
-w, --workload-profile | ## | Enable a specific workload profile. See below. | -w 3
Workload Profiles:
==================
## | Profile | Performance | Memory | Unattended | Base Tuning
-+-----------+-------------+--------+------------+-------------
1 | Low-Power | 10 % | 1/4 | No | -n 1 -u 1024
2 | Default | 90 % | 1/2 | No | -n 8 -u 256
3 | High-Perf | 100 % | Full | No | -n 64 -u 64
4 | Nightmare | 100 % | Full | Yes | -n 512 -u 32
这证实了不同的配置文件,并暗示了它们对性能和系统调优的影响。
运行基准测试以建立基线
在此步骤中,你将建立一个性能基线。基线是一个标准测量值,你可以将其用作比较的参考点。我们将运行 hashcat 的内置基准测试模式,使用其默认设置(相当于 -w 2)。
基准测试模式 (-b) 允许 hashcat 在无需任何输入哈希文件的情况下,测试其在各种哈希算法上的性能。我们将专门测试 MD5 算法,该算法由模式编号 0 (-m 0) 指定。
运行以下命令以启动 MD5 的基准测试:
hashcat -b -m 0
hashcat 将启动并测试你的系统在 MD5 哈希类型上的性能。密切关注输出。片刻之后,它将显示一个结果表。你感兴趣的是 Speed 列。
hashcat (v6.2.6) starting in benchmark mode
...
Hashtype: 0 - MD5
Speed.#1.........: 299.4 MH/s (46.38ms) @ Accel:128 Loops:256 Thr:64 Vec:1
...
注意: 你看到的速率(例如 299.4 MH/s)将根据虚拟机的资源而有所不同。重要的是要记住这个数字。这就是你在默认工作负载配置文件下的基线性能。
使用 -w 1 测试低功耗配置文件
在此步骤中,你将测试“低功耗”工作负载配置文件。顾名思义,此配置文件旨在对系统的资源影响较小。当你需要长时间运行 hashcat 而不影响你使用计算机执行其他任务的能力时,它是理想的选择。
我们将运行与上一步相同的基准测试,但这次我们将添加 -w 1 标志以明确选择低功耗配置文件。
执行以下命令:
hashcat -b -m 0 -w 1
再次,hashcat 将为 MD5 算法运行其基准测试。观察输出并找到 Speed 值。
hashcat (v6.2.6) starting in benchmark mode
...
Hashtype: 0 - MD5
Speed.#1.........: 37.8 MH/s (48.13ms) @ Accel:1 Loops:1024 Thr:1 Vec:1
...
将此新速度与你在步骤 2 中记录的基线进行比较。你应该会注意到速度明显降低。这展示了权衡:你牺牲了原始性能以换取更好的系统响应能力。
使用 -w 3 测试高性能配置文件
在此步骤中,你将测试“高性能”工作负载配置文件。此配置文件与低功耗配置文件的作用相反:它指示 hashcat 使用尽可能多的系统资源来实现最大破解速度。这是你在性能是唯一优先事项的专用机器上会使用的配置文件。
让我们再次运行基准测试,这次使用 -w 3 标志。
执行以下命令:
hashcat -b -m 0 -w 3
hashcat 将使用高性能设置执行 MD5 基准测试。查看输出中的 Speed 值。
hashcat (v6.2.6) starting in benchmark mode
...
Hashtype: 0 - MD5
Speed.#1.........: 315.1 MH/s (43.80ms) @ Accel:64 Loops:64 Thr:64 Vec:1
...
将此速度与基线(步骤 2)和低功耗结果(步骤 3)进行比较。你应该会看到这是迄今为止最快的速度,可能甚至比默认配置文件还要快。这证实了 -w 3 成功地将速度置于系统响应能力之上。
比较性能和系统响应能力
在最后一步中,你将整合你的发现,并将它们应用于一个实际(尽管简单)的破解任务。
到目前为止,你已经观察到以下关系:
- 速度 (
-w 1) < 速度 (默认) < 速度 (-w 3)
这清楚地说明了工作负载配置文件所管理的权衡。现在,我们将使用高性能配置文件来破解在实验开始时为你准备的示例哈希。~/project 目录包含一个哈希文件 sample.hash 和一个字典文件 wordlist.txt。
我们将使用以下命令:
-m 0: 指定 MD5 哈希类型。-a 0: 选择直接字典攻击。sample.hash: 包含要破解的哈希的文件。wordlist.txt: 包含潜在密码的文件。-w 3: 高性能配置文件,以尽快获得结果。
运行命令以开始破解过程:
hashcat -m 0 -a 0 sample.hash wordlist.txt -w 3
由于密码在我们的小字典中,hashcat 会几乎立即找到它。输出将显示破解的哈希和相应的密码。
...
Dictionary cache built:
* Filename..: wordlist.txt
* Passwords.: 4
* Bytes.....: 29
* Keyspace..: 4
81d38d4b393528b4c444097c69141559:labex
Session..........: hashcat
Status...........: Cracked
Hash.Name........: MD5
Hash.Target......: 81d38d4b393528b4c444097c69141559
Time.Started.....: ...
Time.Estimated...: 0 secs
Guess.Base.......: File (wordlist.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........: 268.2 MH/s (0.01ms) @ Accel:64 Loops:64 Thr:64 Vec:1
Recovered........: 1/1 (100.00%) Digests
Progress.........: 4/4 (100.00%)
Rejected.........: 0/4 (0.00%)
Restore.Point....: 3/4 (75.00%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-1
Candidates.#1....: 123456 -> labex
Hardware.Mon.#1..: Temp: 48c Util: 98% Core:1800MHz Mem:3500MHz Bus:16
Started: ...
Stopped: ...
关键行是 81d38d4b393528b4c444097c69141559:labex,它显示了原始哈希以及恢复的密码 labex。你已成功使用工作负载配置文件来优化破解任务。
总结
恭喜你完成本次实验!你已成功学会如何使用 hashcat 的工作负载配置文件来管理性能和系统资源。
在本次实验中,你:
- 学习了
-w选项的目的及其不同配置文件(-w 1、-w 2、-w 3)。 - 使用基准测试模式(
-b)来建立基线并衡量不同配置文件下的性能。 - 观察了破解速度与系统响应能力之间的直接权衡。
- 将高性能配置文件应用于实际的密码破解任务。
理解如何调整你的工具是任何技术专业人士的关键技能。现在,你可以将这些知识应用于为任何情况选择合适的 hashcat 设置,无论你是在专用机器上需要最大速度,还是在个人工作站上需要安静的后台任务。


