как получить хэш пароля zip-файла?

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

есть 2 пункта, которые должны быть решены, чтобы бить пароль. Хэш и алгоритм шифрования.

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

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

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

Im с помощью macbook pro справа теперь

3 ответов


хэши паролей не извлечь из файла. Джон Потрошитель (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 вопроса вводит в заблуждение. Данный "хэш" может быть простым хэшем пароля, подготовленным для упражнения, чтобы упростить процесс взлома для студента любым взломщиком, или он может были конкретные zip2john "non-hash", что привело к довольно простому паролю для JTR угадать-короткий, общий или оба. Спрашивающий не предоставил "хэш" или "хэш-файл" для проверки в любом случае.


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


хотя я не уверен, как его сделать Джон Потрошитель (JtR) имеет небольшой исполняемый файл (zip2john), который создает хэш из zip-файла. Поскольку код открыт, вы можете посмотреть, как это извлекается. Конечно, это предполагает, что файл был зашифрован с помощью шифрования PKZIP (так что он не работал с файлами createt от WinRar, например).

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

Ура