在 Kali 中使用 John 破解密码

网络安全Beginner
立即练习

介绍

离线密码恢复将候选密码与提供的哈希比较,而非尝试登录。理解格式、候选集合和保存的恢复状态,是解释成功或失败的关键。

本实验提供一个有意设置的弱训练哈希和一份微型字典。你将使用独立 pot 文件和会话运行范围有限的 John 字典恢复,然后显示并保存与账户关联的结果。

离线恢复提供的弱密码

本步骤中,你将用小型候选列表处理已知格式的训练哈希,并使恢复状态与其他练习分离。

进入 Kali 并选择提供的练习目录:

kali
cd /home/labex/project/password-practice

密码哈希是派生表示,可用于检查密码,而无需以明文保存密码。盐值有助于使相同密码生成不同的存储哈希。本练习提供一个有意设置的弱训练密码,以加盐的 SHA512-crypt 格式表示;这与原始 SHA-512 摘要并非同一种格式。

读取提供的账户与哈希文件:

cat hashes.txt

该行以训练账户名、冒号以及以 $6$ 开头的哈希组成。盐值与派生值都是存储表示的一部分。无需生成或编辑哈希。

查看小型候选列表:

cat candidates.txt

每行是一个可能的密码。字典恢复在离线状态下用这些候选项检验提供的哈希,不会向网络服务发送登录尝试。

John 是密码恢复工具。--format=sha512crypt 显式选择提供的格式,--wordlist=candidates.txt 选择候选文件,--pot=guided.pot 将恢复结果保存在专用 pot 文件中。--session=guided-session 为本次恢复会话命名,避免与无关会话混用:

john --format=sha512crypt --wordlist=candidates.txt --pot=guided.pot --session=guided-session hashes.txt

等待运行结束。输出应报告恢复了一个密码。具体性能数值与线程消息可能不同。pot 文件存储已恢复哈希与密码的映射,因此使用同一个 pot 重复运行时,可能跳过已经恢复的哈希;这不能证明新一次尝试又恢复了它们。

字典运行可能因缺少正确候选项、格式选择错误或输入格式不正确而失败。运行未成功并不能证明密码无法恢复。

显示并保存已验证的恢复结果

本步骤中,你将通过 John 读取恢复状态,并保存与账户关联的结果供审阅。

留在同一练习目录。John 的 --show 模式将提供的哈希文件与所选 pot 对照,显示恢复的账户/密码结果:

john --show --format=sha512crypt --pot=guided.pot hashes.txt

账户行应包含 training-user:cedar42,随后是一个哈希已恢复、没有剩余哈希的统计。该密码有意设置得较弱,且出现在提供的候选列表中。

保存经过验证的视图,不要手写恢复成功的声明:

john --show --format=sha512crypt --pot=guided.pot hashes.txt > recovered.txt
cat recovered.txt

保存的文件应保留账户关联结果与恢复统计。将提供的哈希、候选列表和专用 pot 放在一起,使结果能与确切的训练数据核对。

这些结果包含明文训练凭据。在实际工作中,恢复的密码是敏感证据,只应在授权工作流程内使用。本练习不要求你测试真实账户,也不要求复用演示密码。

总结

你区分了哈希、盐值和明文,使用明确格式执行离线字典恢复,隔离了 pot 文件与会话,并保存了 show 模式产生的结果。你将恢复结果理解为关于特定提供哈希与候选集合的证据。