解决“No hashes loaded”错误
在此步骤中,我们将排查 John the Ripper 中最常见的错误之一:“No password hashes loaded”(未加载密码哈希)。此错误通常由两个主要原因引起:John 已经破解了提供的文件中的所有哈希,或者该文件格式不被 John 理解。
首先,让我们在一个有效的哈希文件上运行 John。设置脚本已在你的当前目录(~/project)中创建了一个名为 shadow.txt 的文件,其中包含一个 John 能够识别格式的用户密码哈希。
让我们尝试使用一个简单的单词列表来破解它。
john --wordlist=pass.list shadow.txt
你应该会看到输出表明 John 已加载一个哈希并正在尝试破解它。它应该能很快找到密码。
Using default input encoding: UTF-8
Loaded 1 password hash (descrypt, traditional crypt(3) [DES 128/128 SSE2-16])
Cost 1 (algorithm [1:descrypt]...
Press 'q' or Ctrl-C to abort, almost any other key for status
password123 (dummyuser)
1g 0:00:00:00 DONE (2023-10-27 10:30) 100.0g/s 100.0p/s 100.0c/s 100.0C/s password123
Use the "--show" option to display all of the cracked passwords reliably
Session completed
现在密码已被破解,John 将其存储在名为 john.pot 的文件中。让我们再次尝试运行完全相同的命令。
john --wordlist=pass.list shadow.txt
这次,你将看到错误。
Using default input encoding: UTF-8
No password hashes loaded (see FAQ)
这是因为 John 在开始之前会检查 john.pot 文件,并忽略所有已被破解的哈希。你可以查看 john.pot 文件的内容来确认。
cat ~/.john/john.pot
输出将显示哈希和已破解的密码。
$1$notarealhash$b5gQ1P2kPiyP2t.OqI0kS1:password123
导致此错误的另一个原因是文件格式无效。让我们创建一个不包含任何哈希的文件。
echo "this is just a text file" > plain.txt
现在,尝试在上面运行 John。
john plain.txt
你将看到相同的“No password hashes loaded”错误,因为 John 在文件中找不到任何看起来像密码哈希的数据。请务必确保你的目标文件包含受支持格式的哈希。