Интерпретация вывода и статуса John the Ripper

Kali LinuxBeginner
Практиковаться сейчас

Введение

John the Ripper — популярный инструмент с открытым исходным кодом для взлома паролей. При проведении аудитов паролей или попыток взлома крайне важно понимать его вывод и статус для отслеживания прогресса, выявления взломанных паролей и устранения неполадок. Эта лабораторная работа проведет вас через интерпретацию различных выходных сообщений John the Ripper, проверку его статуса взлома в реальном времени, просмотр результатов сеанса взлома, понимание его статистики производительности и ведение журнала его вывода для последующего анализа.

Интерпретация выходных сообщений John the Ripper

На этом шаге вы научитесь понимать различные сообщения, которые John the Ripper отображает во время сеанса взлома. Эти сообщения дают представление о его прогрессе, режиме взлома и любых возникших проблемах.

Сначала запустим простой сеанс взлома с использованием словарной атаки (wordlist). Мы будем использовать файл passwords.txt, созданный при настройке, и небольшой файл wordlist.txt.

Выполните следующую команду в вашем терминале:

john --wordlist=wordlist.txt passwords.txt

Вы увидите вывод, похожий на этот:

Using default input encoding: UTF-8
Loaded 3 password hashes with no different salts to the same type of crypt (sha512crypt, crypt(3) $6$)
Remaining 3 password hashes with no different salts
Press 'q' or Ctrl-C to abort, almost any other key for status
user1 (user1)
user2 (user2)
user3 (user3)
3g 0:00:00:00 DONE (2023-10-27 08:00) 100.0% 3.000g/s 18.00p/s 18.00c/s 18.00C/s user1 user2 user3
Session completed

Давайте разберем ключевые части этого вывода:

  • Using default input encoding: UTF-8: Указывает кодировку символов, которую использует John.
  • Loaded 3 password hashes...: Показывает, сколько хешей было загружено из входного файла.
  • Press 'q' or Ctrl-C to abort, almost any other key for status: Это важный запрос. Он сообщает вам, как взаимодействовать с John во время сеанса.
  • user1 (user1): Это взломанный пароль. user1 — это имя пользователя (или идентификатор хеша), а (user1) — взломанный пароль. John будет отображать каждый взломанный пароль по мере его обнаружения.
  • 3g 0:00:00:00 DONE ...: Это сводная строка.
    • 3g: Количество взломанных хешей (3 попытки).
    • 0:00:00:00 DONE: Прошедшее время и завершение сеанса.
    • 100.0%: Процент завершения процесса взлома.
    • 3.000g/s: Попыток в секунду (guesses per second).
    • 18.00p/s: Паролей в секунду (passwords per second) (количество протестированных кандидатских паролей).
    • 18.00c/s: Криптов в секунду (crypts per second) (количество вычислений хешей).
    • 18.00C/s: Кандидатов в секунду (candidates per second) (количество сгенерированных уникальных кандидатских паролей).
    • user1 user2 user3: Последние несколько взломанных паролей.
  • Session completed: Подтверждает, что сеанс взлома завершен.

Понимание этих сообщений поможет вам отслеживать ход выполнения и результаты ваших операций с John the Ripper.

Проверка статуса взлома во время сеанса

На этом шаге вы научитесь проверять статус сеанса взлома John the Ripper в реальном времени. Это особенно полезно для длительных сеансов, чтобы отслеживать прогресс, не прерывая процесс.

Сначала очистим состояние предыдущего сеанса, чтобы John начал работу с чистого листа.

john --session=test_session --restore=NONE --wordlist=wordlist.txt passwords.txt --force-load-hashes

Теперь запустим новый сеанс взлома. На этот раз мы будем использовать немного больший словарный список, чтобы сеанс работал достаточно долго, и мы могли проверить его статус. Мы будем использовать файл passwords.txt и файл wordlist.txt.

Выполните следующую команду. Обратите внимание, что мы используем --session=test_session, чтобы дать этому сеансу имя, которое полезно для последующего восстановления или проверки статуса.

john --session=test_session --wordlist=wordlist.txt passwords.txt

Пока John работает (он может быстро завершиться с небольшим словарным списком, но представьте, что он большой), откройте новую вкладку терминала (или новое окно терминала, если вы не находитесь в среде LabEx). В новом терминале вы можете проверить статус текущего сеанса.

Для проверки статуса используйте опцию --status с именем сеанса:

john --session=test_session --status

Вы увидите вывод, похожий на этот (точные цифры будут варьироваться в зависимости от прогресса):

Session test_session (john)
Progress: 3/3 (100%)
Speed: 3.000g/s (words), 18.00p/s (passwords), 18.00c/s (crypts), 18.00C/s (candidates)
Remaining: 0:00:00:00
Cracked: 3

Этот вывод предоставляет снимок прогресса сеанса, включая количество взломанных хешей, скорость взлома и предполагаемое оставшееся время.

После проверки статуса вы можете закрыть новую вкладку терминала. Исходный сеанс John the Ripper продолжит работать до завершения.

Если сеанс уже завершен, команда --status укажет, что сеанс завершен.

Session test_session (john)
Session completed

Эта функция неоценима для управления длительными операциями взлома.

Просмотр взломанных паролей из сеанса

После завершения сеанса John the Ripper взломанные пароли сохраняются в файле john.pot (часто расположенном в ~/.john/john.pot). На этом шаге вы научитесь просматривать эти взломанные пароли.

Сначала убедитесь, что у вас есть файл john.pot с взломанными паролями. Если вы следовали предыдущим шагам, он уже должен существовать. Если нет, запустите команду взлома снова:

john --wordlist=wordlist.txt passwords.txt

После завершения сеанса вы можете просмотреть взломанные пароли с помощью опции --show. Эта опция указывает John отобразить все взломанные пароли, которые он сохранил для данного файла хешей.

Выполните следующую команду:

john --show passwords.txt

Вы увидите вывод, похожий на этот:

user1:user1

user2:user2

user3:user3

3 password hashes cracked, 0 left

Вывод перечисляет каждый взломанный хеш в формате имя_пользователя:пароль. Строка 3 password hashes cracked, 0 left обобщает результаты.

Файл john.pot является важнейшим компонентом John the Ripper, поскольку он хранит все успешно взломанные пароли. John автоматически проверяет этот файл перед попыткой взлома хеша, предотвращая избыточную работу. Вы также можете напрямую просмотреть файл john.pot с помощью команды cat:

cat ~/.john/john.pot

Содержимое будет выглядеть примерно так:

user1:user1
user2:user2
user3:user3

Этот шаг демонстрирует, как получить и просмотреть ценные результаты ваших усилий по взлому.

Понимание статистики John the Ripper

John the Ripper предоставляет подробную статистику о производительности взлома. Понимание этой статистики помогает оценить эффективность ваших попыток взлома и сравнить различные стратегии взлома.

Давайте снова запустим сеанс взлома, чтобы сгенерировать некоторую статистику. Мы будем использовать ту же команду, что и раньше.

john --wordlist=wordlist.txt passwords.txt

Обратите внимание на финальную строку сводки, которая появляется после завершения сеанса:

3g 0:00:00:00 DONE (2023-10-27 08:00) 100.0% 3.000g/s 18.00p/s 18.00c/s 18.00C/s user1 user2 user3
Session completed

Давайте еще раз рассмотрим ключевые статистические показатели:

  • 3g: Это указывает на количество сделанных "догадок" (guesses), что в данном контексте соответствует количеству успешно взломанных хешей.
  • 0:00:00:00 DONE: Общее время, затраченное на сеанс. Для коротких сеансов может отображаться 0.
  • 100.0%: Процент завершения процесса взлома.
  • 3.000g/s (guesses/s): Скорость, с которой John делает догадки в секунду. Это часто является наиболее прямым показателем скорости взлома.
  • 18.00p/s (passwords/s): Количество тестовых паролей, проверенных в секунду. Это может быть больше, чем g/s, если один и тот же тестовый пароль проверяется против нескольких хешей.
  • 18.00c/s (crypts/s): Количество выполненных криптографических операций (хеширования) в секунду. Это показатель используемой вычислительной мощности.
  • 18.00C/s (candidates/s): Количество уникальных тестовых паролей, сгенерированных в секунду. Это может отличаться от p/s, если один и тот же тестовый пароль проверяется против нескольких хешей.

Эти статистические данные имеют решающее значение для:

  • Оценки производительности: Понимание того, насколько быстро John взламывает пароли.
  • Использования ресурсов: Оценка того, сколько процессорного времени используется для вычислений хешей.
  • Сравнения стратегий: Сравнение эффективности различных словарных списков или режимов взлома.

Обращая внимание на эти цифры, вы можете получить ценную информацию о ваших усилиях по аудиту паролей.

Ведение журнала вывода John the Ripper в файл

Для длительных сеансов или в целях аудита часто бывает полезно вести журнал вывода John the Ripper в файл. Это позволяет вам просматривать ход выполнения и результаты позже, не оставляя открытым терминал.

Вы можете перенаправить стандартный вывод John в файл, используя стандартное перенаправление оболочки (>).

Сначала очистим любые предыдущие файлы сеанса, чтобы обеспечить чистое начало.

john --session=log_session --restore=NONE --wordlist=wordlist.txt passwords.txt --force-load-hashes

Теперь запустите John the Ripper и перенаправьте его вывод в файл с именем john_output.log в вашем каталоге ~/project.

john --session=log_session --wordlist=wordlist.txt passwords.txt > john_output.log

Обратите внимание, что после выполнения этой команды ваш терминал, похоже, ничего не делает. Это происходит потому, что весь вывод, который обычно отображается на экране, теперь записывается в john_output.log.

Как только команда завершится (что произойдет почти мгновенно с нашим небольшим словарным списком), вы можете просмотреть содержимое файла журнала с помощью команды cat:

cat john_output.log

Вы увидите полный вывод сеанса John the Ripper, идентичный тому, что вы видели бы на экране, но теперь он сохранен в файле:

Using default input encoding: UTF-8
Loaded 3 password hashes with no different salts to the same type of crypt (sha512crypt, crypt(3) $6$)
Remaining 3 password hashes with no different salts
Press 'q' or Ctrl-C to abort, almost any other key for status
user1 (user1)
user2 (user2)
user3 (user3)
3g 0:00:00:00 DONE (2023-10-27 08:00) 100.0% 3.000g/s 18.00p/s 18.00c/s 18.00C/s user1 user2 user3
Session completed

Ведение журнала вывода является лучшей практикой для любых длительных или критически важных операций в командной строке, поскольку оно обеспечивает постоянную запись событий и результатов.

Итоги

В этой лабораторной работе вы получили полное представление о том, как интерпретировать вывод John the Ripper и управлять его сеансами. Вы научились расшифровывать различные сообщения, отображаемые во время сеанса взлома, проверять статус запущенного сеанса в реальном времени и извлекать взломанные пароли из файла john.pot. Кроме того, вы узнали, как понимать статистику производительности John и как вести журнал его вывода в файл для постоянного учета. Эти навыки являются основополагающими для эффективного использования John the Ripper для аудита паролей и тестирования безопасности.