Ответ 1
Хэши паролей не извлекаются из файла. John the Ripper (JtR) на самом деле не выполняет. Вы можете загрузить код для JtR, чтобы выяснить, как это делается. Вот небольшая статья о том, как получить так называемую "не-хэш-информацию" для файлов .zip и .rar с помощью zip2john и rar2john: http://www.cybercrimetech.com/2014/07/how-to-cracking-zip-and-rar-protected.html
Чтобы исправить неправильное имя, JtR фактически не "извлекает хэш" из файла. Он извлекает определенную информацию из файла, например, как описано в коде rar2john:
Output Line Format: * * For type = 0 for files encrypted with "rar -hp ..." option * archive_name:$RAR3$\*type\*hex(salt)\*hex(partial-file-contents):type:: ::archive_name * * For type = 1 for files encrypted with "rar -p ..." option * archive_name:$RAR3$\*type\*hex(salt)\*hex(crc)\*PACK_SIZE\*UNP_SIZE\*0\* archive_name\*offset-for-ciphertext\*method:type::file_name * * or * * archive_name:$RAR3$\*type\*hex(salt)\*hex(crc)\*PACK_SIZE\*UNP_SIZE\*1\* hex(full encrypted file)\*method:type::file_name
Итак, как показано выше, "хеш пароля" не извлекается. Кроме того, это полное неверие в то, что файл "полностью" зашифрован (как предложили другие, отвечающие на подобные вопросы). Вместо этого критические незашифрованные и зашифрованные элементы файла, такие как соль, извлекаются для генерации "не-хэш". Эти элементы используются JtR с различными угадываниями пароля для проверки расшифровки. Он использует функции генерации хэш-кода zip или rar для создания хеша из угадывания, который, в свою очередь, используется для генерации значений ключа шифрования. Сгенерированные значения ключа шифрования затем используются для проверки на небольшую, извлеченную и четко определенную часть зашифрованного файла.
Итак, в то время как JtR не "извлекает хеш-пароль", который может быть отправлен на любой ol-password-hash-checker-rainbow-table-lookup-thingy, он делает следующее самое лучшее - извлечение критической информации о взломе, Шаги к взлому по существу: 1) хэш генерируется из угадывания пароля, 2) добавляется несколько дополнительных шагов, чтобы проверить, что дешифрование завершено успешно или неудачно (много неудачных попыток), и 3) повторить. То, что делает rar cracking настолько трудным, является другой солью для каждого файла rar и, что более важно, большое и переменное количество итераций хэша, которые необходимы, прежде чем тест дешифрования может быть выполнен. Новый процесс zip похож, но итерации не являются переменными - последний раз я проверил - сделать его несколько проще.
Это гайка "как это делается", как было задано, и ответ "вы не" получаете реальный хэш пароля zip файла до момента, когда файл будет взломан.
Пример из задания CTF вопроса вводит в заблуждение. Данный "хеш" мог быть простым хэшем пароля, подготовленным для упражнения, чтобы упростить процесс взлома для студента любым взломщиком ol или OR, это могло быть специфическим "не-хэш" zip2john, что привело к довольно легкому паролю для JtR догадываться - короткий, общий или оба. Вопросник не предоставил "хэш" или "хэш файл" для проверки в любом случае.