引言
Hashcat 是一个强大且流行的密码恢复工具。当你处理非常大的哈希列表时,破解会话可能需要很长时间,并且可能会被中断。在这些情况下,了解哪些哈希已经被破解,哪些仍然需要破解至关重要。
在本实验中,你将学习如何使用两个重要的 hashcat 标志:--show 和 --left。--show 标志允许你查看已成功破解的密码,而 --left 标志则只显示尚未破解的哈希。这使你能够高效地管理你的密码破解任务。
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 标志就派上用场了。它会根据 hashcat.potfile 检查输入的哈希文件,并显示所有匹配项。
在你的终端中,再次对同一个哈希文件运行 hashcat 命令,但这次要添加 --show 标志。
hashcat -m 0 hashes.txt --show
输出将列出每个已破解的哈希,后跟其对应的明文密码,两者之间用冒号分隔。
5f4dcc3b5aa765d61d8327deb882cf99:password
e10adc3949ba59abbe56e057f20f883e:123456
e9a71b642151421421257419a0a23d89:sunshine
这证实了使用我们的字典,五个哈希中有三个被成功破解。
正如查看已破解的内容很有用一样,查看剩余的内容同样重要。--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 对于高效的密码恢复工作流程至关重要,尤其是在处理大规模任务时。