Введение
Hashcat — это мощный и популярный инструмент для восстановления паролей. Взлом паролей может быть очень трудоемким процессом, иногда занимающим часы, дни или даже недели. Поэтому крайне важно знать, как управлять этими длительными задачами. Вам может потребоваться приостановить задачу, чтобы освободить системные ресурсы, или вы можете столкнуться с неожиданным завершением работы системы. Без надлежащего управления сессиями вам придется начинать весь процесс заново, теряя драгоценное время.
В этой лаборатории вы изучите основы управления сессиями в Hashcat. Вы научитесь запускать именованную сессию, приостанавливать и возобновлять ее интерактивно, а также останавливать и восстанавливать ее, используя встроенные функции управления сессиями Hashcat. Эти навыки необходимы для любого практического использования Hashcat.
Запуск длительной сессии взлома
На этом шаге вы запустите задачу по взлому паролей и присвоите ей конкретное имя сессии. Именование сессии является первым и наиболее важным шагом для управления, поскольку оно указывает Hashcat отслеживать и сохранять прогресс этой конкретной задачи.
Мы будем использовать базовую атаку по словарю. Структура команды включает несколько флагов:
-m 0: Указывает тип хеша.0соответствует MD5.-a 0: Указывает режим атаки.0соответствует прямой атаке (по словарю).--session <name>: Присваивает имя текущей сессии. Это критически важно для приостановки и восстановления.
Сначала убедитесь, что вы находитесь в каталоге ~/project, где установочный скрипт создал необходимые файлы (hashes.txt и wordlist.txt).
Теперь выполните следующую команду, чтобы запустить сессию взлома с именем my_session:
hashcat -m 0 -a 0 hashes.txt wordlist.txt --session my_session
После выполнения команды Hashcat инициализируется и отобразит экран состояния в вашем терминале. Этот экран предоставляет информацию о прогрессе взлома в реальном времени.
hashcat (v6.2.x) starting...
...
Session..........: my_session
Status...........: Running
Hash.Name........: MD5
Hash.Target......: 5f4dcc3b5aa765d61d8327deb882cf99
Time.Started.....: ...
Time.Estimated...: ...
Guess.Base.......: File (wordlist.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#*.........: ...
...
Progress.........: 123456/1000001 (12.34%)
...
[s]tatus [p]ause [r]esume [b]ypass [q]uit =>
Обратите внимание на строку Session..........: my_session, которая подтверждает имя нашей сессии. Status установлен на Running, а индикатор Progress (Прогресс) увеличивается. Дайте процессу поработать несколько минут перед переходом к следующему шагу.
Приостановка сессии нажатием 'p'
На этом шаге вы научитесь приостанавливать активную сессию Hashcat. Это полезно, если вам нужно временно выделить ресурсы вашего компьютера для другой задачи, не теряя при этом прогресс взлома.
Hashcat предоставляет интерактивное меню в нижней части экрана состояния. Вы можете увидеть доступные опции: [s]tatus [p]ause [r]esume [b]ypass [q]uit.
Чтобы приостановить сессию, просто нажмите клавишу p на клавиатуре, пока окно терминала Hashcat активно. Вам не нужно нажимать Enter.
Нажмите p сейчас.
Вы увидите, как поле Status (Статус) на экране немедленно изменится с Running (Выполняется) на Paused (Приостановлено).
...
Session..........: my_session
Status...........: Paused
...
[s]tatus [p]ause [r]esume [b]ypass [q]uit =>
Пока сессия приостановлена, Hashcat прекращает всю обработку, и использование GPU/CPU для задачи падает до нуля. Однако приложение остается активным в вашем терминале, ожидая дальнейших инструкций.
Возобновление сессии нажатием 'r'
На этом шаге вы возобновите только что приостановленную сессию.
Так же, как вы использовали клавишу p для приостановки, вы можете использовать клавишу r для возобновления. Это даст Hashcat команду продолжить процесс взлома с того самого места, где он был приостановлен.
Пока окно терминала Hashcat активно, нажмите клавишу r.
Поле Status (Статус) снова изменится с Paused (Приостановлено) на Running (Выполняется), и вы увидите, что индикаторы Progress (Прогресс) и Speed (Скорость) снова станут активными.
...
Session..........: my_session
Status...........: Running
...
[s]tatus [p]ause [r]esume [b]ypass [q]uit =>
Сессия теперь снова выполняется, и никакой прогресс не был потерян. Этот цикл приостановки/возобновления можно повторять столько раз, сколько потребуется.
Остановка сессии и изучение файла .restore
На этом шаге вы научитесь полностью останавливать сессию и проверять файл, который Hashcat использует для сохранения своего состояния. Это отличается от приостановки; остановка полностью завершает работу приложения. Это то, что вы бы сделали, если бы вам нужно было выключить компьютер.
Чтобы корректно остановить сессию, нажмите клавишу q (quit - выход).
Нажмите q сейчас.
Hashcat остановит процесс взлома и завершит работу, вернув вас в командную строку.
Когда вы используете именованную сессию, Hashcat автоматически сохраняет свой прогресс в файл восстановления. Этот файл имеет то же имя, что и ваша сессия, с расширением .restore.
Давайте проверим, был ли создан этот файл. Выведите список файлов в текущем каталоге:
ls -l
В списке файлов вы должны увидеть my_session.restore.
-rw-r--r-- 1 labex labex 28 Jul 10 10:30 hashes.txt
-rw-r--r-- 1 labex labex 48 Jul 10 10:32 my_session.restore
-rw-r--r-- 1 labex labex 8888898 Jul 10 10:30 wordlist.txt
Этот файл содержит всю информацию, необходимую Hashcat для последующего возобновления сессии, включая исходные аргументы командной строки и последний протестированный кандидат в пароли. Вы можете просмотреть его содержимое с помощью команды cat:
cat my_session.restore
Вывод будет представлять собой серию строк, содержащих конфигурацию сессии и ее прогресс. Этот файл является ключом к мощным возможностям управления сессиями Hashcat.
Восстановление предыдущей сессии с помощью флагов --session и --restore
На этом заключительном шаге вы научитесь восстанавливать полностью остановленную сессию. Это чрезвычайно полезно для продолжения работы после перезагрузки или после намеренной остановки длительной задачи.
Для восстановления сессии вы используете флаг --restore вместе с флагом --session, чтобы указать, какую сессию возобновить. Главное удобство этого метода заключается в том, что вам не нужно снова указывать исходный тип хеша, режим атаки или пути к файлам. Hashcat считывает всю эту информацию из файла .restore.
Выполните следующую команду для восстановления my_session:
hashcat --session my_session --restore
Hashcat снова запустится и автоматически загрузит состояние из файла my_session.restore. Вы увидите экран состояния, и, что важно, Progress (Прогресс) начнет с того места, где он остановился, а не с самого начала.
...
Session..........: my_session
Status...........: Running
...
Progress.........: 123456/1000001 (12.34%) -> (Resuming from where it was stopped)
...
[s]tatus [p]ause [r]esume [b]ypass [q]uit =>
Вы успешно восстановили остановленную сессию. Теперь вы можете дать ей завершиться или снова нажать q для выхода.
Резюме
В этой лабораторной работе вы освоили основные навыки управления сессиями взлома в Hashcat. Теперь вы знаете, как справляться с длительными задачами, не опасаясь потери прогресса из-за прерываний.
Вы научились:
- Запускать именованную сессию с помощью флага
--session, что является основой управления сессиями. - Интерактивно управлять запущенной сессией, нажимая
pдля паузы иrдля возобновления. - Корректно останавливать сессию с помощью
qи понимать, что Hashcat автоматически создает файл.restoreдля сохранения состояния. - Восстанавливать полностью остановленную сессию с помощью флагов
--sessionи--restore, что позволяет эффективно продолжать работу.
Овладение этими функциями имеет решающее значение для эффективного использования Hashcat при выполнении любых нетривиальных задач по взлому паролей.


