Восстановление пароля к TrueCrypt диску

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

Постановка задачи

Имеется диск, зашифрованный с помощью TrueCrypt.  Пароль для расшифровки TrueCrypt-диска утрачен.

Требуется:

  • извлечь данные, необходимые для восстановления пароля
  • восстановить TrueCrypt пароль в максимально короткие сроки

Расположение диска не имеет значения - он может находиться на внутреннем или внешнем носителе (HDD, SSD, USB-накопителе). Различия - в вариантах шифрования дисков:

  • шифрованный логический диск. Здесь, в этом примере, это USB-накопитель на 2Gb
  • шифрованный физический диск (режим WDE - Whole Disk Encryption). Здесь это внешний HDD на 40 Gb с системным разделом, установленной на нём ОС Windows, подключенный к рабочей системе через интерфейс USB

 Далее рассмотрим оба варианта.

Извлечение данных для атаки на TrueCrypt пароль 

Для валидации проверяемых паролей нужны 512 байт данных с TrueCrypt диска. В зависимости от типа зашифрованного диска эти данные располагаются с разным смещением:

  • шифрованный логический диск. Данные находятся в нулевом секторе логического диска (смещение 0x00)
  • шифрованный физический диск. Данные находятся в 63-ем секторе физического диска (смещение 0x7c00 (62*512)). Начальные сектора занимает загрузчик (bootloader) TrueCrypt

Для извлечения дампа данных с TrueCrypt диска используем программу для побайтового копирования диска. Здесь это аналог команды dd в Unix системах - dd for Windows

Приступим.

Шаг 1 - Подключаем внешний диск, зашифрованный в TrueCrypt.
Windows сообщит о поврежденном диске и предложит его отформатировать. Отказываемся от форматирования:

Восстанавливаем TrueCrypt пароль. Подключите зашифрованный диск

В результате в системе появится новый диск с какой-то буквой. Здесь это диск G: для логического диска и F: для физического.

Восстанавливаем TrueCrypt пароль. Узнаем букву диска

Шаг 2 - Скачиваем и распаковываем dd for Windows.
Программа поставляется в виде zip-архива. Распаковываем её в отдельную папку. Здесь это папка "C:\dd\"

Шаг 3 - Запускаем интерфейс командной строки и переходим в папку с программой dd for Windows.
Открываем меню "Пуск", вводим в поиске "cmd", щелкаем правой кнопкой на найденном ярлыке и выбираем пункт "Запуск от имени Администратора":

Восстанавливаем TrueCrypt пароль. Запуск командной строки

В появившемся окне интерфейса командной строки вводим команду cd <путь к программе>. Здесь это cd c:\dd\

Восстанавливаем TrueCrypt пароль. Перейдите в папку с dd для Windows

Шаг 4 - Выясняем системное имя подключённого диска.
Вводим команду dd --list и в появившемся списке по размеру подключенного носителя находим информацию о нём, известную системе (здесь размер физического диска 40Gb):

Восстанавливаем TrueCrypt пароль. Выясняем системное имя диска

Тут же указан, системный путь привязки диска к системе - link to. Именно он нужен для обращения к физическому диску. Здесь это \\?\Device\Harddisk1\DR1

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

Шаг 5 - Извлекаем данные для восстановления TrueCrypt пароля.
Вводим и выполняем команду dd if=<[системный] путь к диску> of=<имя файла> <число секторов>.

Здесь это:  

  • для логического диска - dd if= \\.\g: of=1.bin count=1 - мы скопируем с начала логического диска G: в файл 1.bin 1 сектор данных
  • для физического диска - dd if= \\?\Device\Harddisk1\DR1 of=64.bin count=64 - мы скопируем с начала диска с определенным системным именем в файл 64.bin 64 сектора данных

Восстанавливаем TrueCrypt пароль. Извлекаем дамп данных с диска

В результате в папке с программой dd for Windows появилось два файла: 1.bin и 64.bin, извлечённые с зашифрованных TrueCrypt дисков.

Чтобы убедиться в том, что мы извлекли с физического диска нужные данные, откроем полученный файл (здесь это 64.bin) в HEX-редакторе. Если всё сделано верно, то мы увидим маркер "TrueCrypt Boot Loader":

Восстановление TrueCrypt пароля для зашифрованного диска. Маркер физического диска

В случае логического диска просмотр ничего не даст - мы увидим хаотичный набор данных.

Итак, получив данные, необходимые для атаки на TrueCrypt пароль можно переходить ко второму этапу.

Восстановление TrueCrypt пароля

ЭТО ВАЖНО: TrueCrypt использует стойкие алгоритмы шифрования и трюки, замедляющие проверку пароля. Поэтому большие индексы скорости перебора паролей вы не увидите ни в одной программе. Всегда используйте видеокарты AMD/NVIDIA - это значительно увеличит скорость перебора паролей.

Для восстановления TrueCrypt паролей используем программу с гибкой настройкой диапазона проверяемых значений и высокой скоростью их проверки.

Здесь это Passcovery Suite - программа, в которой есть:

  • сценарии выполнения поиска паролей
  • позиционная маска для создания паролей по правилам
  • мутация паролей из подключаемых UNICODE-словарей
  • поддержка видеокарт AMD/NVIDIA

Приступим.

Шаг 1 - Запускаем Passcovery Suite и выбираем файл дампа данных с TrueCrypt диска.
Тут всё привычно: выбираем дистрибутив (версии для Windows x86/x64), устанавливаем и запускаем программу.

Выбираем нужный том TrueCrypt или файл с данными шифрованного диска (можно через меню/панель инструментов или горячими клавишами "Ctrl+O"):

Восстановление TrueCrypt пароля для зашифрованного диска. Устанавливаем Passcovery Suite

Здесь это 1.bin для файла с дампом данных с логического диска и 64.bin для файла с физического диска.

Шаг 2 - Подтверждаем, что выбрали файл для восстановления пароля TrueCrypt.
Поскольку дамп данных не содержит чёткой структуры, Passcovery Suite сделает предположение, что это данные TrueCrypt. Соглашаемся и продолжаем:

Восстанавливаем TrueCrypt пароль. Выбираем файл данных

Шаг 3 - Задаем хэшфункцию и алгоритм шифрования для проверки паролей. 
Защита данных в TrueCrypt реализуется на алгоритмической паре хэширования и шифрования. На этапе создания тома или диска задается один из трёх алгоритмов хэширования:

  • RIPEMD-160
  • SHA-512
  • Whirlpool

и один из алгоритмов шифрования (алгоритмы шифрования могут смешиваться):

  • AES
  • Serpent
  • Twofish

Сейчас же нам нужно выбрать какую пару хэширования-шифрования проверять.

Passcovery Suite поддерживает все варианты, но узнать какая пара использовалась для защиты данных невозможно, а проверка каждого сочетания требует дополнительного времени.

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

Настройки для разных вариантов шифрованных дисков:

  • шифрованный логический диск (также подходит для томов TrueCrypt). Возможны любые сочетания хэширования-шифрования:

    Восстановливаем TrueCrypt пароль. Выбираем пару хэширования-шифрования
  • шифрованный физический диск. Такой диск содержит загрузчик (bootloader) TrueCrypt и это вносит свои коррективы:

    Восстановление пароля TrueCrypt. Настройки для полностью шифрованного диска
    • необходимо указать адрес смещения (7С00) для доступа к последним 512 байтам данных, считанных на первом этапе в файл 64.bin
    • возможен только один вариант хэширования - RIPEMD-160 (boot volume)

Шаг 4 - Выбираем атаку на пароль и задаем её опции.
Passcovery Suite предложит три вида атак с большим набором опций:

  • атака перебором. Атака, при которой перебираются все возможные варианты. Можно задать наборы символов, длину пароля и установить простую маску. Самый растянутый во времени вариант
  • атака перебором с позиционной маской. Атака, при которой перебираются только варианты, подходящие под правила маски. Можно задать значения индивидуально для каждой позиции пароля (например первый символ только цифра, остальные только буква, а три последние - спецсимволы), установить длину пароля. Лучший вариант, когда известна структура пароля
  • атака с использованием словаря. Атака, при которой проверяются все слова из словаря. Можно объединять слова из разных Unicode-словарей, менять, удалять, переставлять и подменять символы. Отличный вариант для паролей, полученных путем мутации обычных слов

Подробнее о возможностях атак - здесь. Видеопримеры их использования - на канале YouTube.

Шаг 5 - Запускаем восстановление TrueCrypt пароля.
Когда настройки сделаны, запускаем поиск пароля и ждем результат. Во время работы, Passcovery Suite сохраняет настройки атаки и статус её выполнения в файл с расширением .prs (Password Recovery Status) - мы всегда можем прервать атаку и вернуться к ней позже.

После обнаружения пароля программа отображает его в виде гиперссылки. Щёлкнем по нему, скопируем в буфер обмена и можно открывать зашифрованный TrueCrypt диск:

Восстановление TrueCrypt пароля. Копируем пароль в буфер обмена

Итоги

Восстановление TrueCrypt паролей - это тернистый путь, пропитанный горечью разочарований от бездонности времени поиска.

Но если вы решили ступить на него, если у вас есть представления о структуре пароля, то вам понадобятся:

  • 512 байт данных
  • несколько хороших видеокарт (лучше NVIDIA Maxwell)
  • программа, которая выжмет из ваших GPU максимум

Как получить данные и что с ними делать вы узнали из этой инструкции.