Как в hashcat продолжить перебор с места остановки (сессии hashcat)


Программа hashcat поддерживает работу с сессиями, позволяющими восстанавливать прерванное сканирование. Информация об этих сессиях, в том числе об опциях, с которыми была запущена программа, а также о точке восстановления, записываются в файл с расширением .restore. Формат файла .restore является пользовательским форматом, разработанным специально для hashcat.

hashcat поддерживает возобновления задач по взлому для любого и каждого типа хеша, режима атаки, типа ввода (даже stdin – стандартного ввода) и т.д. Даже не имеет значения, почему работа остановилась пока у вас есть файл .restore. В этом файле содержится вся необходимая информация для hashcat чтобы она могла продолжить взлом. Конечно, также должны иметься директории/словари/маски/правила/хеши/файлы хешей и прочего, используемого в первоначальной задаче по взлому. Неважно, случился ли у вас перебой с электричеством или вы просто решили остановить задачу по взлому поскольку решили вздремнуть рядом со своим железом, с опцией --restore вы должны иметь возможность восстановить работу по взлому.

Важно знать, что файл .restore обновляется автоматически, каждый раз, когда меняется соответствующая строка в окне статуса:

Restore.Point....:

…а не тогда, когда изменяется эта строка (hashcat должен достичь следующей контрольной точки восстановления):

Progress.........:

Вторая самая важная вещь, которую нужно помнить, это то, что остановка hashcat через функцию Checkpoint, путём нажатия 'c', приведёт к тому, что программа будет продолжать перебор до тех пор, пока не будет обновлён файл восстановления. При этом принудительный выход из hashcat, когда нажимается 'q', приведёт к немедленному выходу из программы и файл для восстановления обновлён не будет! Нажимая 'q' вместо 'c' вы теряете проделанную работу между последним обновлением файла восстановления и моментом выхода, поскольку при выходе файл restore не обновляется!

Файл .restore будет автоматически удалён при завершении всей работы по взлому (когда закончились кандидаты в пароли) или когда каждый хеш в списке взломан.


Для отключения поддержки восстановления вы можете использовать опцию --restore-disable.

Если вы хотите указать другой путь для файла восстановления вы можете использовать опцию --restore-file-path.

Безымянная сессия

Если вы не указали имя сессии, то будет использовано дефолтное имя "hashcat", т.е. будет создан файл hashcat.restore.

Для возобновления работы по этой сессии достаточно указать опцию --restore:

./hashcat64.bin --restore

…а имя сессии указывать не нужно, поскольку она была дефолтной.

Также не нужно указывать какие-либо опции – все они сохранились в файле .restore и будут автоматически взяты из него.

Рассмотрим теперь именные сессии. В качестве имени возьмём session_name.

Допустим, вы запустили взлом пароля следующей командой:

hashcat64.exe -m 2500 -a 3 --session session_name -1 ?l?d?u 25739_1504275368.hccapx ?1?1?1?1?1?1?1?1

…и пока она была запущена вы нажали 'c' (или 'q' для выхода) или же она была остановлена/убита по каким-либо другим причинам.

Командой для возобновления этой задачи по взлому будет:

hashcat --session session_name --restore

Команда с --restore не нуждается в каких-либо дополнительных аргументах или опциях кроме --session. Вы не можете добавить или изменить какие-либо аргументы когда вы возобновляете работу.

Могу ли я восстановить работу hashcat по частично выполненному перебору на другом компьютере или возможно ли добавить новый GPU в мою систему?

Да! Вам только нужно убедиться, что у вас есть все необходимые файлы и что они не изменились.

Самым важным файлом в этом случае является .restore (имя зависит от имени сессии, которую вы указали с параметром --session). Вам нужно скопировать на новый компьютер по крайней мере оригинальный список хешей и файл .restore. Если вы использовали другие файлы – с масками, правилами и т.д., то их также нужно скопировать на новый компьютер.


Также, если вы переместились на другой ПК, убедитесь, что все пути являются теми же и все файлы существуют.


Рекомендуется Вам:

5 комментариев to Как в hashcat продолжить перебор с места остановки (сессии hashcat)

  1. Иван:

    Спасибо за статью, выручили.

  2. Макс:

    команда для старта дефолтной сессии в винде не "hashcat64.bin --restore", а

    hashcat64.ехе --restore
    
  3. MaksFender:

    Подскажите, можно ли в hashcat начать перебор "с середины" словаря, просто указав номер строки? К примеру моя сессия не сохранилась, но я приблизительно знаю, откуда продолжить?

    • Alexey:

      В принципе, да, такое возможно. Но всё не так просто, как может показаться.

      Во-первых, кандидаты в пароли из словаря, а также сгенерированные по маске используются не последовательно, а по определённому алгоритму, говоря по-простому, в разнобой. Из этого, кстати, вопрос — с какой стати вы думаете, что знаете, на какой именно строке был остановлен брут-форс?

      Во-вторых, как следует из первого пункта, невозможно просто взять и указать строку в словаре, но можно указать степень прогресса.

      В-третьих, степерь прогресса в файле hashcat.restore хранится в бинарном формате. А это означает, что редактировать их предётся в HEX редакторе.

      В-четвёртых, прежде чем редактировать файл hashcat.restore, нужно знать, что и в каком месте файла писать.

      В этом может помочь описание структуры файла .restore: https://hashcat.net/wiki/doku.php?id=restore

      Field name Offsets (hex) Offsets (dec) Field description
      version 0x00 to 0x03 0 to 3 the version of hashcat that was used to create the file
      cwd 0x04 to 0x103 4 to 259 the current working directory. hashcat will change to this directory
      dicts_pos 0x104 to 0x107 260 to 263 the current position within the dictionary list
      masks_pos 0x108 to 0x10b 264 to 267 the current position within the list of masks
      words_cur 0x110 to 0x117 272 to 279 the position within the dictionary/mask
      argc 0x118 to 0x11b 280 to 283 the number of command line arguments
      argv 0x120 to … 288 to … the command line argument list

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

      Restore.Point....: 12288/308915776 (0.00%)

      Значение E016 соответствовало:

      Restore.Point....: 1499136/308915776 (0.49%)

      Значение 1026 соответствовало:

      Restore.Point....: 2494464/308915776 (0.81%)

      Значение C033 соответствовало:

      Restore.Point....: 3391488/308915776 (1.10%)
      

Добавить комментарий для Макс Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *