Как восстановить утерянный пароль к архиву с помощью видеокарты

foesr5jdopo8nh-k_xbhv3zdbtw.jpeg

Добрый день, Хабрасообщество!

Случилось так, что мне потребовалось подобрать утерянный пароль к архиву 7zip, который содержал резервную копию нескольких файлов со старого диска. Пароль я давно потерял, а процесс его восстановления потребовал определенных усилий и оказался довольно занятным делом. Подробнее об этом и расскажу в статье.

Что представляет собой пароль

С тех пор как разработчики поняли, что хранить пароль в тексте небезопасно, мы видим только хеш — набор значений, которые генерируются на основе пароля. Такое преобразование выполняется хеш-функцией по заданному алгоритму и является односторонним. Существуют разные алгоритмы хеширования: MD5, SHA-1, SHA-2 и прочие. Чтобы восстановить пароль из хеша, можно использовать метод перебора. Нам достаточно создавать хеш для каждого возможного пароля и сравнивать его с тем хешем, который нужно расшифровать. Фактически нам нужно взять файл, вытащить из него хеш и расшифровать его программой-взломщиком. Методика извлечения хеша для каждого алгоритма разная, и сложность перебора каждого из них варьируется. Как рассчитать сложность перебора? Не вдаваясь глубоко в заковыристый матан, можно сказать, что это зависит как от длины пароля, так и от набора используемых в нем символов: например, числовой пароль 0-9 содержит 10 символов. Пятизначный пароль содержит m=5 знаков. Число комбинаций будет P=m^n или 5 в степени 10 — 9765625. Если же учитывать латинские символы — большие и маленькие, то это 26*2+10=62 и наше P равно уже 5 в степени 62! Я видел, как в течение недели с помощью двух 22-ядерных Xeon восстанавливают пароль к zip. Ни такими ресурсами, ни стольким временем для подбора пароля я не располагал и задумался об использовании в своих целях графического чипа. Вычислительная мощь этих устройств сейчас у всех на слуху. Производители графических ускорителей — AMD и Nvidia. Nvidia обладает CUDA — собственным закрытым API для вычислений на GPU, который по синтетическим тестам на 20% быстрее открытого аналога OpenCL, но не каждая программа обладает SDK к нему. Кроме того, карты Nvidia уступают картам AMD в вычислениях, реализованных на OpenCL. Эта проблема частично лечится свежими драйверами, но разрыв все равно остается. В конечном итоге мы также упремся в количество вычислительных блоков видеокарты. Ниже я рассмотрю решение Hashchat, которое работает на OpenCL и позволяет подключить до 128 видеокарт одновременно. Хотя такой возможности для этого теста нет, предположительно имеет смысл отдать предпочтение среднему ценовому сегменту, поскольку карт можно поставить больше, а разница в производительности непропорциональна цене.

Инструменты для восстановления пароля

Hashcat — преемник ранее используемых утилит oclHashcat/cudaHashcat. Заявлен как самый быстрый инструмент для подбора утерянного пароля. Начиная с версии 3.0, поддерживает использование как CPU, так и GPU, но не для всех алгоритмов. Например, с помощью GPU нельзя подобрать пароль к Bcrypt. Зато к MD5 и SHA-1 пароли подбираются довольно быстро. Работает с более чем 200 хешами. По сути, является универсальным кроссплатформенным решением. Для получения некоторых из них понадобится утилита ниже:John The Ripper — инструмент администратора по восстановлению утерянных паролей — легендарная утилита хак-софта. Популярна из-за поддержки большого количества хешей и их автораспознавания. Поддерживает множество модулей, включая сторонние. John The Ripper даже включен в Kali Linux, но в урезанном виде. Только у этой программы я нашел совершенно необходимые расширения для извлечения хешей из других форматов: zip2john, rar2john, pdf2john.py, pfx2john.exe и много еще чего интересного. Cain & Abel — тоже в представлении не нуждается. Программа имеет даже собственный сниффер. Существуют и другие инструменты, однако они либо плохо документированы и не имеют GUI, либо уступают в скорости. Поддержка разных типов хешей также важна. Таким образом, останавливаемся на Hashcat. В качестве примера мы используем произвольный архив 7zip. Генерируем архив самостоятельно. 7zip использует алгоритм AES256 Для восстановления хеша пользуемся утилитой 7z2hashcat. Фактически это скрипт на Perl. Качаем его по ссылке и распаковываем.

7z2hashcat64-1.2  7z.7z > hash.txt

В результате в текстовом файлике увидим искомый хеш. Далее настроим наш Hashcat:

  • Ставим сам продукт
  • Ставим GUI по желанию и для знакомства с программой.
  • Идем на хешкиллер — и забираем оттуда HashcatGUI.
  • Заходим в папку с HashcatGUI, запускаем App.HashcatGUI.exe.
  • При запуске указываем исполняемый файл программы hashcat64.exe или hashcat32.exe в зависимости от разрядности системы

lkjftowzsio0dgalmfr3tm2kxba.png GUI иногда выдает ошибки и вылетает при завершении поиска. Тем не менее, чекпоинт предусмотрен, мы можем вернуться к последней запущенной сессии и продолжить начатый поиск на вкладке Custom commands & Services. Hashcat сам определит все устройства GPU / CPU в компьютере и начнет расшифровку.kaetpea9efqzs5ooekomdjtpf6u.png

Тестируем возможности программы

Запускаем Hashchat. Указываем тип хеша как m 11600 (7zip), обновление статуса поиска каждые 60 секунд, выходной файл и маску для поиска. Поиск по маске позиционируется улучшенным вариантом брутфорса. Зная что-то о паттерне пароля, мы можем значительно ускорить перебор. Предположим, это дата, имя или год или любые предполагаемые символы, например, ?R ?R ?R — любые три символа русского алфавита. В данном случае это любые семь цифр. Стоит учитывать, что если длина пароля составляет шесть цифр, то мы его не найдем и нужно повторить попытку. Для автоматизации процесса предусмотрена галочка «инкремент».

hashcat64.exe -a 3 --session=2018-01-24 -m 11600 -w 3 --status --status-timer=60 --potfile-disable -p : --gpu-temp-disable -o "E:asusresult.txt" --outfile-format=3 "E:asushash.txt" ?d?d?d?d?d?d?d

Итог: в файле E:asusresult.txt. Пароль 3332221 подобран примерно за 10 секунд. Пробуем увеличить длину пароля. Скорость перебора заметно упала — до 635 паролей в секунду. Результат: пароль 3334566611 — 10 знаков. Для его восстановления потребовалось около трех минут.y9jz3rfxpqv3r2fogefhrmxydpo.png Усложним задачу. Пароль теперь состоит из букв латинского алфавита и цифр. Длина пароля выросла до 11 знаков. В программе есть ряд опций еще более ускоряющих подбор. Очевидный вариант — подобрать с помощью базы стандартных паролей. Ставим словарь HashKiller Passwords. В папке программы уже есть пример — слов так на 1000. Добавляем наш словарик во вкладке «Wordlists & Markov». Скачиваем словарик HashKiller Passwords, а затем извлекаем его, к примеру, в папку Dict.Пример запуска:

hashcat64.exe -a 0 --session=2018-01-24 -m 11600 -w 3 --status --status-timer=60 --potfile-disable -p : --gpu-temp-disable -o "E:asusresult.txt" --outfile-format=3 "E:asushash.txt" "E:asushashkiller-dict.txt"

vxoxvpazhmcmdmgi8-g-zb9t4os.png Markov является еще одним вариантом комбинированного подбора и имеет отдельный исполняемый файл. https://ru.wikipedia.org/wiki/Цепь_Маркова Опция плохо документирована. В справке к GUI для набора символом ?d?l?u (Латинские буквы и цифры) рекомендуется значение 40. Также мы используем гибридную атаку. Это поиск слова из словаря с добавлением окончания маски, к примеру, Password113, Qwe1235. Также в программе существуют готовые маски в формате .hcmask, которые позволяют перебрать известные паттерны строчка за строчкой. Лишние строки можно комментировать, открыв этот файл Блокнотом. Их также можно использовать как с опцией «инкремент», так и комбинировать со списком слов. Помимо гибридных атак программа поддерживает правила подбора по определенным алгоритмам, выявленным опытным путем, которые дают хорошие результаты.05sxedo6dewuqozsjomhayjvfy4.png Так называемый перебор по правилам является самой технически сложной атакой и представляет собой язык программирования. По словам разработчиков, такой подход работает быстрее, чем регулярные выражения. Готовые правила уже можно использовать, загрузив их в GUI из каталога rules в Hashchat. С учетом указанных опций за 2,5 часа программа выдала результат. Пароль Property123

Радужные таблицы

В примере у нас довольно сложный алгоритм шифрования. Если вы подбираете, например, хеш к MD5 за разумное время, и ваш пароль так и не подобран, имеет смысл обратить внимание на последний аргумент — радужные таблицы. Это расчетные значения хешей для всех распространённых паролей, которые были посчитаны и сохранены в условной таблице. Зная алгоритм хеширования, можно загрузить таблицу в память и провести поиск нужного хеша. Обычно они используются для подбора большого количества паролей в кратчайшие сроки, например, всех утекших паролей к веб-приложению, но это другая история. На сегодняшний день есть два проекта, поддерживающие различные типы хешей:

  • Rainbowcrack — поддерживает четыре алгоритма хеширования: LN/NTLM, MD5 и SHA-1
  • rcracki_mt или rcracki для Linux -MD4, MD5, DoubleMD5, SHA1, RIPEMD160, MSCACHE, MySQL323, MySQLSHA1, PIX, LMCHALL, HALFLMCHALL, NTLMCHALL, ORACLE

Заключение

Не обладая большими вычислительными ресурсами, сегодня все же можно расшифровать даже очень стойкие типы хешей. Учитывая их широкое распространение в качестве стандарта, на данный момент, многие приложения являются уязвимыми априори. Возможно, в ближайшем будущем нас ожидает переход на такие стандарты, как SHA-2 или ГОСТ_Р_34.11-2012. Пока же остается лишь пользоваться общими рекомендациями по генерации паролей:

  • Не использовать общие слова из ежедневного употребления. Их всего-то несколько тысяч.
  • Не использовать слова, после которых стоят цифры или буквенные ряды на клавиатуре. Добавив 1231231 к Qwerty, вы не сделаете пароль более защищенным. Весь словарь и маски можно перебрать за полдня.
  • Стандартные комбинации удваивания слов и т.д. легко разбираются правилами подбора, которые ориентированы на такие приемы.
  • Не использовать личную информацию. В нашем мире слишком много информации в общем публичном доступе.

set-password-archive.pngСоздание архива с паролем, при условии, что этот пароль достаточно сложен — очень надежный способ защитить свои файлы от просмотра посторонними. Несмотря на обилие разнообразных программ «Password Recovery» для подбора паролей архивов, если он будет достаточно сложным, взломать его не получится (см. материал Про безопасность паролей на эту тему).

В этой статье наглядно покажу, как поставить пароль на архив RAR, ZIP или 7z при использовании архиваторов WinRAR, 7-Zip и WinZip. Кроме этого, ниже имеется видео инструкция, где все необходимые операции показаны наглядно. См. также: Лучший архиватор для Windows.

Установка пароля на архивы ZIP и RAR в программе WinRAR

WinRAR, насколько я могу судить — самый распространенный архиватор в нашей стране. С него и начнем. В WinRAR вы можете создавать архивы RAR и ZIP, и устанавливать пароли на оба типа архива. Однако, шифрование имен файлов доступно только для RAR (соответственно, в ZIP, чтобы извлечь файлы понадобится ввести пароль, однако имена файлов будут видны и без него).

Первый способ сделать архив с паролем в WinRAR — выделить все файлы и папки для помещения в архив в папке в проводнике или на рабочем столе, кликнуть по ним правой кнопкой мыши и выбрать пункт контекстного меню (если таковой имеется) «Добавить в архив…» с иконкой WinRAR.

create-protected-rar-zip-archive.png

Откроется окно создания архива, в котором, помимо выбора типа архива и места его сохранения, вы можете нажать кнопку «Установить пароль», после чего дважды ввести его, при необходимости включить шифрование имен файлов (только для RAR). После этого нажмите Ок, и еще раз Ок в окне создания архива — архив будет создан с паролем.

set-archive-password-winrar.png

Если в контекстном меню по правому клику нет пункта для добавления в архив WinRAR, то вы можете просто запустить архиватор, выбрать файлы и папки для архивации в нем, нажать кнопку «Добавить» в панели сверху, после чего проделать те же действия по установке пароля на архив.

И еще один способ поставить пароль на архив или все архивы, в дальнейшем создаваемые в WinRAR — нажать по изображению ключа слева внизу в строке состояния и задать необходимые параметры шифрования. При необходимости установите отметку «Использовать для всех архивов».

set-pass-for-all-rar-archives.png

Создание архива с паролем в 7-Zip

С помощью бесплатного архиватора 7-Zip можно создавать архивы 7z и ZIP, устанавливать на них пароль и выбирать тип шифрования (а распаковывать можно и RAR). Точнее, можно создавать и другие архивы, но установить пароль возможно лишь на два указанных выше типа.

create-archive-7-zip.png

Так же, как и в WinRAR, в 7-Zip создание архива возможно с помощью пункта контекстного меню «Добавить к архиву» в разделе Z-Zip или из главного окна программы с помощью кнопки «Добавить».

7z-archive-password.png

В обоих случаях вы увидите одинаковое окно добавления файлов в архив, в котором, при выборе форматов 7z (по умолчанию) или ZIP будет доступно включение шифрования, при этом для 7z доступно также и шифрование файлов. Просто задайте желаемый пароль, при желании включите скрытие имен файлов и нажмите Ок. В качестве метода шифрования рекомендую AES-256 (для ZIP имеется также ZipCrypto).

В WinZip

Не знаю, использует ли кто-то сейчас архиватор WinZip, но раньше использовали, а потому, думаю, имеет смысл упомянуть и его.

С помощью WinZIP можно создать архивы ZIP (или Zipx) с шифрованием AES-256 (по умолчанию), AES-128 и Legacy (тот самый ZipCrypto). Сделать это можно в главном окне программы, включив соответствующий параметр в правой панели, а затем задав параметры шифрования ниже (если вы их не зададите, то при добавлении файлов в архив вас просто попросят указать пароль).

winzip-archive-password-main.png

При добавлении файлов в архив с помощью контекстного меню проводника, в окне создания архива просто отметьте пункт «Шифрование файлов», нажмите кнопку «Добавить» внизу и установите пароль на архив после этого.

winzip-archive-password-context.png

Видео инструкция

А теперь обещанное видео про то как поставить пароль на разные типы архивов в разных архиваторах.

В заключение скажу, что в наибольшей степени лично я доверяю шифрованным архивам 7z, далее — WinRAR (в обоих случаях с шифрованием имен файлов) и в последнюю очередь — ZIP.

Первым указан 7-zip по причине того, что в нем используется надежное шифрование AES-256, имеется возможность шифрования файлов и, в отличие от WinRAR, он является Open Source — следовательно независимые разработчики имеют доступ к исходному коду, а это в свою очередь, минимизирует вероятность наличия предумышленных уязвимостей.

kak-postavit-parol-na-archive.jpgСодержание:

Установка пароля гарантирует надёжную защиту информации. Рекомендуется использовать 8 и более символов, большие и маленькие буквы, а так же специальные символы по типу знака вопроса или звёздочки.

Метод его взлома — это перебор символов и чем сложнее пароль, тем меньше вероятность взлома. Если вы по каким-то причинам его забудете, то можете не надеяться на получение доступа к информации. Для его установки вам потребуется архиватор, скорее всего он уже у вас есть.

Ссылки на программы будут сразу в статье. Не забудьте удалить оригинал после создания архива. Я приведу пример с использованием двух самых популярных архиваторов WinRar и 7-zip.

Для большей безопасности рекомендую использовать формат rar. Он дополнительно позволяет скрывать такие данные как: имена, размеры, описание и другую информацию.

Аналогичную конфиденциальность может обеспечить 7z. Так же можно воспользоваться менее безопасным способом в zip. В нём скрыть имена и других данные невозможно.

Установка пароля в Winrar

Скачайте и установите программу если у вас её ещё нет. Она условно бесплатная на 40 дней. После этого периода вам будет просто показываться уведомление о покупке лицензии.

kak-raspakovat-arhiv-6.jpg

Выделите файлы и нажмите правой кнопкой мыши по ним. В контекстном меню выберите «Добавить в архив…» как на изображении ниже.

kak-postavit-parol-na-arhiv-2.jpg

В появившемся окне кликните на «Установить пароль…» и появиться новое окно.

kak-postavit-parol-na-arhiv-3.jpg

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

kak-postavit-parol-na-arhiv-4.jpg

Интересный факт! Длинна пароля rar архивов максимум 127 символов.

Теперь при открытии или распаковке потребуется ввести пароль.

kak-postavit-parol-na-arhiv-5.jpg

Почти тоже самое вы можете посмотреть в этом видео.

Установка пароля в 7-zip

В этой программе всё аналогично. Скачайте её если у вас ещё нет и установите. Она абсолютно бесплатна.

kak-postavit-parol-na-arhiv-1.jpg

Посмотреть работу программы можно как в видео, так и в статье.

Кликните правой кнопкой мыши по файлам, которые необходимо защитить. И выберите строку «Добавить к архиву…» в контекстном меню.

kak-postavit-parol-na-arhiv-6.jpg

Выберите формат, и введите пароль справа как на изображении ниже. Метод шифрования лучше всего использовать AES-256. Он наиболее безопасен.

kak-postavit-parol-na-arhiv-7.jpg

Теперь чтобы извлечь данные или воспользоваться ими — требуется разблокировать защиту.

kak-postavit-parol-na-arhiv-8.jpg

Установка пароля на существующий архив

Для этого надо добавить 1 любой файл в архив. Затем появятся соответствующие окна как при его создании где вы сможете выставить пароль, проделав аналогичные действия (смотрите выше). А ниже вы можете посмотреть где добавляется файл.

Добавление в Winrar.

kak-postavit-parol-na-arhiv-9.jpg

Добавление в 7-zip.

kak-postavit-parol-na-arhiv-10.jpg

 
Формат Поддержка
7z +
ACE +
ARJ +
Bzip2
Cab
CPIO
Deb
gzip
ZOO
ISO
JAR
LHA
LZO
LZX
RAR +
RPM
tar
XZ
ZIP +

Вы когда-нибудь забывали пароль от архива?

  • Да. Так и не открыл… 63%, 5 голосов5 голосов63%5 голосов — 63% из всех голосов
  • Нет. 38%, 3 голоса3 голоса38%3 голоса — 38% из всех голосов
  • Ещё не пользовался паролями. 0%, 0 голосовголосов0 голосов — 0% из всех голосов

Всего голосов: 8Июль 19, 2016× Вы или с вашего IP уже голосовали.

Комментарии: 0

Может стоит подписаться?

В рассылку входят новые и (возможно) полезные статьи сайта. Никакой рекламы и спама.

Используемые источники:

  • https://habr.com/post/352396/
  • https://remontka.pro/password-archive/
  • http://sitemozg.ru/windows/kak-postavit-parol-na-arxiv

Ссылка на основную публикацию