версия 1.10 release
версия 1.00 опубликована 3:20 29.12.2003 MSK
[cut=читать полностью]Введение
Эта статья является продолжением заметок, которые велись во временной папке домена beginningtoseethelight.org. В этих заметках рассматривался
вопрос, как сымпортировать пользовательские ключи Шифрующей файловой системы (EFS) из старого локального профиля пользователя в новую систему
с целью получения санкционированного доступа к ранее недоступным зашифрованным данным. (Здесь и далее понятия «старый», «оригинальный»,
«исходный», а также «удалённый» обозначают ту установку Windows 2000/XP, в которой были зашифрованы данные и учётную запись пользователя,
под которой это было сделано. Понятия «новый» и «текущий» относятся к той системе, которой вы пользуетесь для расшифровки данных и к
тому пользователю, которому в итоге требуется получить к ним доступ. - от редакции winbase).
Примечание
Данный метод годится только для опытных
пользователей. Существует ряд программ и служб, которые, быть может,
больше вам подойдут:
01. Elcomsoft предлагает программу Advanced EFS Data Recovery
(AEFSDR), работающую в Windows 2k/xp. Цена - 99$, доступна демо-версия.
02. У Microsoft есть программа восстановления (reccerts.exe), доступная только в платной службе поддержки. Цена неизвестна,
но общие цены на подобные услуги приведены: для Великобритании
здесь, для США
здесь.
03. PassWare предлагает программу EFS Key, работающую по тому же принципу,
что и AEFSDR, однако дешифрование происходит гораздо медленнее. Цена - 95$, доступна демо-версия.
Интересное совпадение
Windows 2000, в которой впервые появилась EFS, вышла 31.03.2000.
Windows XP с некоторыми обновлениями EFS вышла 25.10.2001.
Мое первое сообщение о восстановлении EFS датировано
09.02.2003.
Elcomsoft выпустила AEFSDR 25.02.2003.
Microsoft объявила о существовании reccerts.exe 28.02.2003.
Passware выпутила бета-версию EFS Key 06.2003.
Мой метод является абсолютно
бесплатным, и это - последний шанс восстановить данные, не прибегая к
дорогостоящей помощи специалистов,
заключающейся, например, в подборе кода шифрования - FEK (File Encryption Key) или восстановлении старых слоев магнитных дисков.
Недавно
добавлено
Первая и
Вторая необработанные картинки 1024*768, дающие сжатый
обзор проблемы.
Ошибки и ключи
Имена файлов EFS по умолчанию в Windows XP выделены зелёным цветом - если это не так, проверьте экспертные свойства.
При попытке открыть такой файл создаётся пустой документ и отображается типовое сообщение об ошибке
Notepad: Cannot open the D:\documents and settings\foo\my documents\report.txt file. Make sure a disk is in the drive you
specified.
Блокнот: Невозможно открыть файл C:\documents and settings\foo\my
documents\report.txt. Убедитесь, что диск находится в дисководе.
или
Wordpad: Access to
C:\docume~1\foo\mydocu~1\report.txt was denied.
Wordpad: Доступ к C:\docume~1\foo\mydocu~1\report.txt
запрещён.
или
Windows Picture and Fax Viewer: No preview available.
Программа
просмотра изображений и факсов: Просмотр недоступен
Это - невозможность дешифрования. Если данная ошибка появляется у всех пользователей, перечисленных в диалоге Properties »
Advanced » Details (Свойства » Дополнительно » Подробно) и у Агентов восстановления (Recovery Agents), значит был затребован неверный или отсутствующий ключ шифрования. Это может быть вызвано рядом причин. Наиболее
часто встречающаяся - утеря ключа в ходе переустановки ОС.
При первом использовании EFS настоятельно рекомендуется экспортировать ваши секретный и публичный ключи на другой носитель информации. Эти
ключи генерируются случайным образом при создании, и при повторных установках
создадутся другие ключи. Странно, что при первом использовании EFS не появляется подсказка, и многие пользователи не подозревают (или
забывают)
о риске. Также разумно создать Агента восстановления (Recovery Agent), хотя некоторые не делают
этого по соображениям безопасности. Справку по шифрованию NTFS вызывает команда cipher /?.
Если у вас есть
нижеперечисленные папки и их содержимое от предыдущей установки Windows
2000 или XP, вы можете восстановить данные EFS
Также
для этого потребуется знание вашего старого пароля.
C:\documents and settings\имя_пользователя\application data\microsoft\crypto\ - секретные ключи
C:\documents and settings\имя_пользователя\application data\microsoft\protect\ - Защищает ваш текущий пароль вашими
секретными ключами
C:\documents and settings\имя_пользователя\application data\microsoft\systemcertificates\ - публичные ключи
(несущественно, будут ли это исходные ключи, так как можно создать другой подходящий ключ).
Эти данные могут находиться в незагружаемой
системе, в резервной копии, Перемещаемом профиле (Roaming Profile) или
в текущей системе - либо в структуре файловой системы (то есть как
обычные файлы), либо в любом свободном месте на диске. Если у вас есть
эти файлы, пропустите оставшуюся
часть этой главы.
Существует несколько вариантов повторной установки, вот некоторые из них
01. | Низкоуровневое форматирование диска, загрузка с установочного CD, форматирование и установка | Требуется восстановление
специалистами |
02. | Загрузка c установочноно CD, форматирование и установка. | Если ключи не были перезаписаны - хорошо, иначе см.п.1 |
03. | Загрузка с установочного CD, установка без форматирования - поверх исходной папки Windows (нажмите
l) или в другую
папку | Хорошо |
04. | Диск аварийного восстановления с красочный интерфейсом | Если ключи не были перезаписаны - хорошо, иначе
см.п.1 |
Если ваш случай - 03, то, скорее всего, старый профиль всё ещё находится в папке C:\Documents and settings\
Папки старой установки | Папки новой установки |
All users | All users.Windows |
Default user | Default user.Windows |
Имя_пользователя | Имя_пользователя.Имя_компьютера (для локальных пользователей)
или
Имя_пользователя.Имя_домена (для доменных пользователей) |
Localservice | Localservice.NT Authority |
Networkservice | Networkservice.NT Authority |
Если ваш случай - 02 или 04, то есть шанс, что при переустановке не были затёрты исходные ключи EFS.
Большинство форматирований только
стирают файловую структуру. Так как все файлы копируются на диск и файл
подкачки создается перед созданием профиля, а ключи шифрования - даже
позже, то возможно, что исходные ключи шифрования не были переписаны
при переустановке и до сих пор находятся на свободном пространстве
диска. Можно осуществить поиск этих ключевых данных по тому
(логическому разделу), и, если таковые найдутся, восстановить их.
Если вы всерьёз хотите попытаться это сделать, выключите компьютер
как можно скорее! Чем больше операций записи производится на диск в
ходе работы компьютера после переустановки, тем больше шансы, что эти
данные будут перезаписаны.
Данную процедуру можно произвести в текущей установленной системе,
однако более предусмотрительно использовать другую, временную
установку. Делайте резервные копии перед всеми изменениями, если вы
работаете в своей основной системе.
Вам потребуется создать учетную запись пользователя с такими же именем и идентификатором машины (Machine Number), как и в исходной системе.
Посмотрите на имя исходной папки: С:\documents and settings\%username%\application
data\microsoft\crypto\rsa\s-1-5-21-1078081533-1606980848-854245398-1003. Здесь
машина: 1078081533-1606980848-854245398
учетная запись пользователя: 1003
Если преобразовать номер машины в шестнадцатиричный формат, то идентификационный номер машины (SID) таков: fd374240
f094c85f 16c0ea32. Преобразуйте каждый блок в шестнадцатиричный формат и обратите байты для каждой секции.
Учетная запись пользователя: 3eb.
Перейдите к HKLM\sam\sam\domains\account\users\%usernumbers% и проверьте, существует ли учетная запись пользователя с
искомым номером записи. Если да, то проверьте имя пользователя (в ключе с именем \v),
зайдите в систему, создайте профиль и измените пароль на тот, что был в
старой установке. Если нет - создайте такую учетную запись. Перед
созданием придётся изменить значение в смещении 048 по адресу HKLM\sam\sam\domains\account\f на номер требуемого SID-а. Добавьте
пользователя в группу Администраторы (Administrators).
Перейдите к HKLM\sam\sam\domains\builtin\aliases\00000220\c и измените машинный SID на соответствующий исходному
имени пользователя.
Перейдите к HKLM\sam\sam\domains\account\v и измените машинный SID в конце номера вашей учётной записи.
перейдите к HKLM\software\microsoft\windows nt\currentversion\profilelist\, выберите ключ с назанием, представляющим собой
ваш текущий машинный номер, за которым следует Номер пользователя. Экспортируйте его, измените на исходные номера
машины/пользователя и импортируйте. Cкопируйте три исходные папки в C:\documents and settings\Имя_пользователя\application
data\microsoft\.
Перезагрузитесь и войдите в систему, используя исходные имя
пользователя и пароль. Теперь доступ к зашифрованным файлам должен
стать возможным. Дешифруйте.
Если вы восстанавливете доступ к EFS в Windows 2000 и по-прежнему
получаете ошибки, то возможно, что блокирующий файл не был обновлён при смене пароля. Это происходит, так как EFS в Windows 2000 основывается
главным образом на системном ключе (Syskey) - значительная уязвимость, если этот ключ хранится локально. В этом случае
может потребоваться импортировать исходный системный ключ -
детали приведены на странице Ntsecurity. Также вы можете написать
автору E-Mail для
для получения пошаговых инструкций.
(Внимание, автор обещает в скором времени обновить предыдущий фрагмент, так что занесите наш перевод в закладки и проверяйте время от
времени).
Восстановление при наличии исходного профиля НЕ в файловой системе (в свободном месте на диске)
Очень настоятельно рекомендуется подключать диск,
содержащий раздел с исходной установкой, как slave
на второй машине, так как любая ваша деятельность, происходящая в
системе, котрая установлена на том же раздел, где находятся
восстанавливаемые данные, может перезаписать их. Если вы используете
ноутбук, найдите IDE кабель 2.5" на 3.5". Избегайте любой возможнй
записи данных на исходный том!
Вам потребуется приличный hex-редактор (рекомендую WinHex) и
FileMon от Sysinternals или что-то подобное.
Прежде всего, требуется получить некоторую ключевую информацию из зашифрованных файлов. Вы можете перейти на NTFS к заголовку EFS или (что
предпочтительнее) использовать Ntbackup (встроенную утилиту архивации Windows), чтобы создать резервную копию одного из
зашифрованных файлов, доступ к которому вы не можете получить нормальным способом.
Откройте резервную копию в hex-редакторе, листайте, пока не увидите чего-то в этом роде:
;
Зеленый - машинный SID и имя пользователя в hex-виде:
fd374240 f094c85f 16c0ea32 eb030000. Обратите:
404237fd 5fc894f0 32eac016
000003eb. Преобразуйте в десятичный вид:
1078081533-1606980848-854245398-1003 и добавьте в начале s-1-5-21 для получения SID/Userno в полном формате.
Красный - это имя файла, в котором хранится публичный ключ: 79B73C0C5A501E06B9EC0A6EF4A3B8CB23BF84E9.
Синий - глобально уникальный идентификатор секретного ключа (the Private Key GUID) -
эта секция может отсутствовать, если были добавлены другие пользователи.
Теперь следует произвести поиск по исходному тому с целью нахождения
данных двух критических файлов - секретного ключа и блокирующего файла.
В секретном ключе хранится GUID; в отличие от заголовка EFS, там GUID хранится в ASCII, а не в Unicode. Если
GUID секретного ключа отсутствует в заголовке EFS, вы можете поискать «CryptoApi Private Key»
в Unicode. Некоторые результаты могут быть неверными, но это будет
видно по ходу дела. Секретный ключ должен выглядеть следующим образом.
Восстановите его и назовите пока «Privatekey».
Обратите внимание, что если вы не найдёте этого секретного ключа,
данный метод не сработает, и вам придется обратиться к специалистам.
;
Cиний - GUID секретного ключа, упоминался ранее.
Бирюзовый - имя блокирующего файла, также упоминалось в тексте.
9f7479dc ea80 924a b41f 6392c4e3b72d. Обратите:
dc79749f-80ea-4a92-b41f-6392c4e3b72d. Осуществите поиск этой строки в Unicode.
Блокирующий файл должен выглядеть подобным образом. Восстановите его и назовите, как выделено зелёным, в ASCII.
Заметим опять, что если вы не найдете этот блокирующий файл, данный
метод не сработает, и вам придется обратиться к специалистам.
Бирюзовый - имя блокирующего файла, см. ранее
Жёлтый - hex-строка, требуемая для Credhist-файла как есть: dc42a7eeac5b104481336024113992ff.
Если вам удалось успешно восстановить эти данные, все отлично, больше из старой установки ничего не потребуется.
Создайте файл с именем «Credhist», чтобы он выглядел следующим образом:
Желтый - как есть, взято из блокирующего файла, упоминалось ранее.
Создайте во второй системе, с которой вы работаете в данный момент, файл с именем «Preferred», чтобы он выглядел
следующим
образом:
Зашифруйте какой-нибудь файл, чтобы создать набор ключей EFS. Скопируйте публичный ключ из C:\documents and
settings\foo\application data\microsoft\systemcertificates\my\certificates\ и переименуйте в имя файла публичного
ключа, приведенный в заголовке EFS (упоминалось ранее).
Откройте в hex-редакторе и обновите следующие секции.
Синий - GUID секретного ключа.
Красный - имя файла публичного ключа.
Дальше следуйте методу «Восстановление при наличии исходного
профиля в файловой системе», описанному в предыдущей главе и поместите файлы в
соответствующие места:
c:\documents and settings\foo\application data\microsoft\ »
» \crypto\rsa\s-1-5-21-1078081533-1606980848-854245398-1003\privatekey
» \protect\credhist
» \protect\s-1-5-21-1078081533-1606980848-854245398-1003\ два файла: dc42a7eeac5b104481336024113992ff и preferred
» \systemcertificates\my\certificates\79b73c0c5a501e06b9ec0a6ef4a3b8cb23bf84e9.
Перезагрузитесь.
Секретному ключу нужно правильное имя, это определяется из GUID секретного ключа некоторым незвестным процессом
хэширования. Однако Filemon может зафиксировать обращение системы к файлу, и таким образом можно восстановить правильное имя. Запустите
Filemon и просто выберите один из зашифрованных файлов, остановите Filemon и примените фильтр-подсветку по выражению «File not found» («Файл не найден»). Листайте вверх, пока не увидите подсвеченное значение, относящееся
к процессу Lsass. Вы увидите запрос с полным именем папки и правильным именем файла - что-то в этом роде:
bb1c31a261eed4c09b0a92ad011aae21_904f931f-4993-4059-ab65-e3961044d535.
Вы можете проигнорировать вторую половину, это просто машинный GUID из реестра - HKLM\software\microsoft\cryptography\machineguid - вы можете просто использовать полученный хэш, за которым следует подчёркивание
- bb1c31a261eed4c09b0a92ad011aae21_.
Теперь попробуйте получить доступ к зашифрованному файлу. Всё должно совпасть. Дешифруйте.
Восстановление при полном отсутствии информации - методы специалистов
Даже если ключевые данные были перезаписаны, всё ещё возможно их восстановить. Не уверен насчёт компаний и цен, но на данной странице описана методика - интересно почитать
отвлечённо от EFS.
Другой путь - это подбор FEK. Если вы посмотрите на картинку заголовка EFS, приведенную ранее в тексте, вы заметите, что есть секция
размером в 128 байт после username@machinename. Внутри данного блока хранятся ключи для дешифрования информации, плюс,
возможно, некоторые значения, идентифицирующие пользователя. Без правильного ключа EFS
она не может быть дешифрован. Хотя похоже, что процесс шифрования
работает на основе в 512 байт, шифрование/дешифрование производится на
самом деле блоками по 8 байт. Достаточно многие популярные файловые
форматы имеют стандартные 8-ми байтовые (и более) заголовки,
следовательно, для этих файлов известен открытый (незашифрованный)
текст. И следовательно, можно найти корректный FEK среди всех записей FEK,
а если ключ определен, то он может быть применен ко всему оставшемуся
файлу. Первый шаг в данной процедуре - определить формат ключа из
рабочей системы, а затем применить правильный алгоритм шифрования к
зашифрованным данным. Время, затраченное на поиск совпадения, будет
очень сильно зависеть от железа и использованного алгоритма. Так как FEK различен для
каждого файла, дешифрование всех файлов может занять много времени - тем не менее, это не невозможно...
В заключение - создавайте резервные копии EFS ключей должным образом!
Исключительные права на публикацию данного материала на русском языке принадлежат команде winbase/winextreme
перед воспроизведением в любой форме вы должны получить разрешение у автора