使用 --left 和 --show 过滤哈希

Kali LinuxBeginner
立即练习

引言

Hashcat 是一个强大且流行的密码恢复工具。当你处理非常大的哈希列表时,破解会话可能需要很长时间,并且可能会被中断。在这些情况下,了解哪些哈希已经被破解,哪些仍然需要破解至关重要。

在本实验中,你将学习如何使用两个重要的 hashcat 标志:--show--left--show 标志允许你查看已成功破解的密码,而 --left 标志则只显示尚未破解的哈希。这使你能够高效地管理你的密码破解任务。

对大型哈希列表发起攻击

在此步骤中,你将使用 hashcat 开始标准的字典攻击。我们已在 ~/project 目录中为你准备了两个文件:hashes.txt,其中包含一个 MD5 哈希列表;以及 wordlist.txt,这是一个包含潜在密码的小型字典。

hashcat 攻击的基本命令结构是 hashcat -m <mode> <hash_file> <wordlist_file>。我们将使用 -m 0 来指定我们的哈希是 MD5。

在你的终端中执行以下命令来启动攻击。

hashcat -m 0 hashes.txt wordlist.txt

Hashcat 将会启动,初始化其后端,并开始破解过程。你将看到一个实时更新的状态屏幕。让它运行几秒钟。

hashcat (v6.2.6) starting

...

Session..........: hashcat
Status...........: Running
Hash.Name........: MD5
Hash.Target......: hashes.txt
Time.Started.....: ...
Time.Estimated...: ...
Guess.Base.......: File (wordlist.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........:   ... H/s (0.01ms) @ Accel:128 Loops:1 Thr:1 Vec:8
Recovered........: 3/5 (60.00%) Digests
Progress.........: 5/5 (100.00%)
Rejected.........: 0/5 (0.00%)
Restore.Point....: 5/5 (100.00%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-1
Candidates.#1....: password -> admin
Hardware.Mon.#1..: Temp: 46c

[s]tatus [p]ause [b]ypass [c]heckpoint [q]uit =>

中途停止攻击

在此步骤中,我们将模拟一次中断,或者在你需要在破解过程完全完成之前停止它。Hashcat 允许你优雅地退出,保存你的进度,以便稍后恢复或检查结果。

当 hashcat 状态屏幕在你的终端中激活时,只需在键盘上按下 q 键即可退出。

q

在你按下 q 后,hashcat 将会停止会话并将你返回到命令提示符。它会自动将所有已破解的密码保存到其工作目录下的一个名为 hashcat.potfile 的文件中。这个文件对于后续步骤至关重要。

Session hashcat stopping.

使用 --show 标志查看已破解的哈希

现在会话已停止,你可能想查看迄今为止成功恢复了哪些密码。这时 --show 标志就派上用场了。它会根据 hashcat.potfile 检查输入的哈希文件,并显示所有匹配项。

在你的终端中,再次对同一个哈希文件运行 hashcat 命令,但这次要添加 --show 标志。

hashcat -m 0 hashes.txt --show

输出将列出每个已破解的哈希,后跟其对应的明文密码,两者之间用冒号分隔。

5f4dcc3b5aa765d61d8327deb882cf99:password
e10adc3949ba59abbe56e057f20f883e:123456
e9a71b642151421421257419a0a23d89:sunshine

这证实了使用我们的字典,五个哈希中有三个被成功破解。

使用 --left 标志查看未破解的哈希

正如查看已破解的内容很有用一样,查看剩余的内容同样重要。--left 标志的作用与 --show 相反。它会将输入的哈希文件与 hashcat.potfile 进行比较,并仅显示那些尚未被破解的哈希。

要查看剩余的哈希,请运行带有 --left 标志的 hashcat 命令。

hashcat -m 0 hashes.txt --left

输出将是 hashes.txt 中尚未在 hashcat.potfile 中的哈希列表。

2c7e3378803a5b054952514139821a79
b8d3c555434b89a01af1654b26d30609

这是我们的 wordlist.txt 未能破解的两个哈希。

创建一个仅包含未破解哈希的新文件

一个常见的流程是将剩余的未破解哈希保存到一个新文件中。这允许你在未来的攻击中专门针对它们,也许使用不同的字典或不同的攻击模式,而无需在已破解的哈希上浪费时间。

你可以通过将 --left 命令的输出重定向到一个新文件来轻松完成此操作。我们将其命名为 uncracked.txt

hashcat -m 0 hashes.txt --left > uncracked.txt

此命令不会在终端产生任何输出,因为输出已被重定向到文件。要验证它是否有效,你可以使用 cat 命令显示新文件的内容。

cat uncracked.txt

你应该会看到两个未破解的哈希,它们现在已准备好进行你的下一次破解尝试。

2c7e3378803a5b054952514139821a79
b8d3c555434b89a01af1654b26d30609

总结

在本实验中,你学习了如何在 hashcat 的密码破解会话期间管理和过滤哈希列表。

你启动了一次攻击然后停止了它,模拟了一个常见的实际场景。然后,你使用了 --show 标志来查看成功破解的密码,并使用 --left 标志来隔离仍未破解的哈希。最后,你学习了一种实用的技术,可以将这些剩余的哈希保存到一个新文件中,以备将来的攻击使用。

掌握 --show--left 对于高效的密码恢复工作流程至关重要,尤其是在处理大规模任务时。