Вопрос или проблема
Когда я использую John the Ripper, он запускается мгновенно и говорит, что завершил расшифровку хешей, но не предоставляет мне пароли.
Это проблема с версией, которую я установил, или у меня неправильный формат для моего хеш-файла?
Я выполнил команду
./john myHash.txt
Она выдала следующий результат:
Загружено 3 хеша паролей без различных соли (LM [DES 64/64])
Нажмите 'q' или Ctrl-C, чтобы прерваться, почти любую другую клавишу для статуса
(demo)
(Гость)
(Администратор)
3g 0:00:00:00 100% 2/3 100.0g/s 33200p/s 33200c/s 99600C/s 123456..MAGIC
Используйте опцию "--show", чтобы надежно отобразить все расшифрованные пароли
Сессия завершена
Затем я выполнил:
./john --show myHash.txt
И он выдал:
Administrator::500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Гость::501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
demo::1000:aad3b435b51404eeaad3b435b51404ee:c47e33e6dfd9c79f92d9e49595938c29:::
3 хеша паролей расшифрованы, 0 осталось
Предполагается, что значение хеша LM (aad3b435b51404eeaad3b435b51404ee) соответствует пустому значению.
И значение хеша NTLM (31d6cfe0d16ae931b73c59d7e0c089c0) тоже.
Однако для пароля demo у нас есть пустой хеш LM, но значение хеша NTLM не пустое, в данном случае это c47e33e6dfd9c79f92d9e49595938c29.
Что значит иметь пустой хеш LM и ненулевой хеш NTLM?
Что значит иметь пустой хеш LM и ненулевой хеш NTLM?
Это обычно означает, что система настроена так, чтобы не хранить хеши LM (что является стандартом с Windows Vista), и также может означать, что пароль длиннее 14 символов (поэтому не может быть сохранен как хеш LM).
Но проблема, с которой вы столкнулись, заключается в том, что John расшифровывает и отображает хеши LM, как вы можете видеть в выводе:
Загружено 3 хеша паролей без различных соли (LM [DES 64/64])
В то время как вам интересны хеши NTLM. Поэтому вам нужно передать опцию --format=nt
в ваши команды John, чтобы сказать ему расшифровывать и отображать хеши NTLM вместо LM.
Ответ или решение
Когда вы используете John the Ripper и он сообщает, что "взлом" хешей завершен, но не выводит пароли, это может быть связано с несколькими факторами, которые нужно рассмотреть.
В вашем случае вывод команды показывает, что были загружены хеши типа LM (LM [DES 64/64]), и система завершила процесс с тремя хешами:
Loaded 3 password hashes with no different salts (LM [DES 64/64])
Значение хеша LM (aad3b435b51404eeaad3b435b51404ee) указывает на то, что это пустое значение или что пароля нет; именно это и сообщается в вашем вопросе. Хеш NTLM для пользователя "Administrator" — это (31d6cfe0d16ae931b73c59d7e0c089c0), что также является хешем пустого пароля.
Теперь, когда у вас есть демонстрационный пользователь с хешем NTLM c47e33e6dfd9c79f92d9e49595938c29, это означает, что срок пароля больше 14 символов, и он не может быть представлен в виде хеша LM (что также подтверждает ваше замечание о его значении).
Как исправить вашу проблему
Вы столкнулись с тем, что John the Ripper обрабатывает только хеши LM по умолчанию. Для того чтобы ваша программа смогла правильно "взломать" и показать хеши NTLM, вы должны указать формат выполнения:
-
Запустите команду для проверки паролей как NTLM:
./john --format=nt myHash.txt
-
Чтобы показать пароли, используйте:
./john --show --format=nt myHash.txt
Использование параметра --format=nt
позволяет программному обеспечению сосредоточиться на NTLM хешах, что даст вам необходимые пароли.
Заключение
Причина, по которой вы не видите паролей, заключается в том, что John the Ripper по умолчанию не работал с NTLM хешами, поэтому обязательно указывайте соответствующий формат. Убедитесь, что ваш файл хешей правильно отформатирован и содержит хеши нужного типа для обеспечения правильного процесса взлома.