Как вы получаете хэш пароля zip файла?

Я делал образец CTF, и они дали мне хэш файлов. Я провел его через JtR, и я получил свой пароль для образца. Дело в том, что хэш был дан мне. Есть ли способ найти хэш этого файла, если он не указан?

Есть два пункта, которые необходимо решить, чтобы побить пароль. HASH и алгоритм шифрования.

Я тренируюсь с защищенными паролем zip файлами, поэтому считаю, что он использует zip 2.0 или что-то вроде AES, я могу понять это с помощью google.

Я не могу найти, как получить доступ к метаданным для zip файла для данных хэширования. Так как это стандарт, для чего-то не нужно иметь алгоритм для хранения пароля. ОДНАКО, должен быть какой-то вид хэширования.

Кто-нибудь знает, как с помощью этого примера защищенного паролем zip файла знать, как это делается?

Я использую программу macbook pro прямо сейчас

Ответ 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 догадываться - короткий, общий или оба. Вопросник не предоставил "хэш" или "хэш файл" для проверки в любом случае.

Ответ 2

Зачем нужен хэш? Зашифрованный файл сжимается, а затем зашифровывается. Это не требует хранения хэша в файле, потому что он не аутентифицируется, он расшифровывается. Единственное, что может быть сохранено в файле, это соль, в зависимости от используемого шифрования.

Ответ 3

Несмотря на то, что я не уверен, как это сделано, John the Ripper (JtR) имеет небольшой исполняемый файл (zip2john), который создает хэш из zip файла. С открытием кода вы можете посмотреть, как это извлекается. Конечно, если предположить, что файл был зашифрован с помощью шифрования PKZIP (так, например, WinRar не работал с файлом creator).

Я попробовал это на простых файлах, которые были заархивированы с помощью 7zip и где были использованы простые пароли, и JtR, оснащенный приличным словом, взломал его в ms. (Необязательно) свободно предоставленные словари здесь сделали трюк.

Приветствия