Управление сеансами и возобновлением работы John the Ripper

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

Введение

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

Запуск сеанса взлома John the Ripper

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

Сначала создадим простой файл списка слов с именем wordlist.txt в вашем каталоге ~/project.

echo -e "test\npassword\n123456\nadmin" > ~/project/wordlist.txt

Теперь запустите John the Ripper для взлома файла passwords.txt с использованием wordlist.txt. Мы будем использовать опцию --session для присвоения нашему сеансу определенного имени, что упрощает управление.

john --format=raw-md5 --wordlist=~/project/wordlist.txt --session=my_first_session ~/project/passwords.txt

Вы должны увидеть, как John the Ripper запускает процесс взлома. Скорее всего, он быстро найдет пароль, поскольку наш список слов небольшой и содержит правильный пароль.

Пример вывода:

Using default input encoding: UTF-8
Loaded 1 password hash (Raw-MD5 [MD5])
Cost 1 (iterations) is 10000 for Raw-MD5
Will run 4 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
password         (user1)
1g 0:00:00:00 DONE (2023-10-27 08:30) 100.0g/s 100.0p/s 100.0c/s 100.0C/s user1:password
Session completed

После завершения сеанса вы можете просмотреть взломанные пароли с помощью опции --show.

john --show ~/project/passwords.txt

Пример вывода:

user1:password

1 password hash cracked, 0 left

Приостановка и возобновление сеанса взлома

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

Сначала создадим большой фиктивный список слов, чтобы процесс взлома занял некоторое время, что позволит нам его приостановить.

seq 1000000 | sed "s/$/password/" > ~/project/large_wordlist.txt

Теперь запустите новый сеанс John the Ripper, используя этот большой список слов. Мы назовем этот сеанс long_session.

john --format=raw-md5 --wordlist=~/project/large_wordlist.txt --session=long_session ~/project/passwords.txt

Как только взлом начнется, немедленно нажмите Ctrl+C, чтобы приостановить сеанс. John the Ripper сохранит свое текущее состояние в файле сеанса.

Пример вывода после нажатия Ctrl+C:

...
Press 'q' or Ctrl-C to abort, almost any other key for status
^C
Session aborted.

Чтобы возобновить сеанс, используйте опцию --restore с именем сеанса.

john --restore=long_session

John the Ripper продолжит работу точно с того места, где остановился. Вы можете позволить ему работать до тех пор, пока он не найдет пароль, или снова нажать Ctrl+C, чтобы приостановить его.

Пример вывода после возобновления:

Using default input encoding: UTF-8
Loaded 1 password hash (Raw-MD5 [MD5])
Cost 1 (iterations) is 10000 for Raw-MD5
Will run 4 OpenMP threads
...
password         (user1)
1g 0:00:00:00 DONE (2023-10-27 08:35) 100.0g/s 100.0p/s 100.0c/s 100.0C/s user1:password
Session completed

Изучение файлов сеансов

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

John the Ripper обычно хранит файлы сеансов в каталоге ~/.john. Давайте выведем содержимое этого каталога, чтобы увидеть созданные вами файлы сеансов.

ls -l ~/.john/

Вы должны увидеть такие файлы, как my_first_session.rec и long_session.rec. Расширение .rec указывает на файл восстановления (recovery file).

Пример вывода:

total 16
-rw------- 1 labex labex 8192 Oct 27 08:30 my_first_session.rec
-rw------- 1 labex labex 8192 Oct 27 08:35 long_session.rec

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

strings ~/.john/long_session.rec | head -n 10

Пример вывода (может отличаться):

JtR session file
long_session
raw-md5
/home/labex/project/passwords.txt
/home/labex/project/large_wordlist.txt

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

Восстановление после сбоя сеанса

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

Сначала смоделируем сбой. Запустите новый сеанс, но на этот раз мы принудительно завершим процесс, а не плавно приостановим его.

john --format=raw-md5 --wordlist=~/project/large_wordlist.txt --session=crash_test ~/project/passwords.txt &

Обратите внимание на & в конце, которая запускает команду в фоновом режиме. Это позволит нам ее завершить. Теперь найдите идентификатор процесса (PID) процесса john.

pgrep john

Пример вывода (PID будет отличаться):

12345

Теперь завершите процесс john, используя его PID. Замените YOUR_PID на фактический PID, который вы нашли.

kill YOUR_PID

Вы можете увидеть сообщение вроде Terminated или Killed. Это имитирует неожиданный сбой.

Теперь попробуйте восстановить сеанс crash_test. John the Ripper должен суметь продолжить работу с того места, где остановился, даже после принудительного завершения.

john --restore=crash_test

Пример вывода:

Using default input encoding: UTF-8
Loaded 1 password hash (Raw-MD5 [MD5])
Cost 1 (iterations) is 10000 for Raw-MD5
Will run 4 OpenMP threads
...
password         (user1)
1g 0:00:00:00 DONE (2023-10-27 08:40) 100.0g/s 100.0p/s 100.0c/s 100.0C/s user1:password
Session completed

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

Очистка старых файлов сеансов

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

Чтобы удалить конкретный файл сеанса, вы можете использовать опцию --remove с именем сеанса. Давайте удалим файл my_first_session.

john --remove=my_first_session

Вам будет предложено подтвердить удаление. Введите y и нажмите Enter.

Пример вывода:

Remove session file ~/.john/my_first_session.rec? y

Теперь проверьте, что файл был удален, снова выведя содержимое каталога ~/.john.

ls -l ~/.john/

Вы больше не должны видеть my_first_session.rec.

Пример вывода:

total 16
-rw------- 1 labex labex 8192 Oct 27 08:35 long_session.rec
-rw------- 1 labex labex 8192 Oct 27 08:40 crash_test.rec

Вы также можете вручную удалить файлы .rec, если предпочитаете, но использование john --remove является рекомендуемым способом, поскольку оно обеспечивает надлежащую очистку.

rm ~/.john/long_session.rec
rm ~/.john/crash_test.rec

Наконец, проверьте, что все файлы сеансов удалены.

ls -l ~/.john/

Пример вывода:

total 0

Поддержание порядка в файлах сеансов помогает эффективно управлять задачами взлома.

Итоги

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