![](https://habrastorage.org/files/091/2ee/3ef/0912ee3effc540bf9c1992f05ab1f062.png)
Многим известная Volume Shadow Copy – служба теневого копирования томов, впервые появившаяся в ОС Windows Sever 2003. Она позволяет делать и восстанавливать моментальные снимки файловой системы (снепшоты), в том числе и системного раздела. Также прошлые снепшоты раздела могут быть подмонтированы в букву диска или в папку, как и обычный раздел. Таким образом, удается получить доступ к предыдущему состоянию системы вместе со ВСЕМИ файлами, в том числе и к файлам, в настоящий момент удаленным с этого раздела. Все эти свойства Volume Shadow Copy могут быть использованы специалистами по информационной безопасности следующими способами:
- Доступ и копирование занятых системой или пользовательскими приложениями файлов (БД паролей приложений, почтовые ящики Outlook, Thunderbird, БД Active Directory).
- Доступ и копирование удаленных файлов (в том числе и надежно затертых шредером).
- Сокрытие исполняемых файлов и модулей вредоносного бэкдора (делается снимок файловой системы, в котором они присутствуют, после чего они удаляются с текущего раздела, оставаясь в теневой копии).
На использовании возможности из второго пункта и было основано решение задания на форензику NeoQUEST. Подробнее — под катом!
Исходные данные
В задании с названием «Пропавший файл» участнику давалась ссылка на торрент, при скачивании участники получали 2 файла – дамп жесткого диска (*.vhdx файл) и дамп оперативной памяти (*.dmp файл). При монтировании основного файла с дампом жесткого диска участник находил текстовый файл, зашифрованный при помощи Encrypted File System (EFS). Содержимое такого файла просто так не прочитаешь! Закрытые ключи пользовательских сертификатов в ОС Windows, в том числе EFS, защищаются при помощи пароля к учетной записи. Именно поэтому при его сбросе появляется предупреждение о доступе к файлам EFS.
Знания одного NTLM-хеша пароля, а также ключей SYSKEY, LSAKEY и NL$KM для расшифрования закрытого ключа пользователя мало. Таким образом, наличия одного дампа жесткого диска оказывается недостаточно. Необходимо еще и знание пароля пользователя. На этом этапе участники пока могут и не знать, зачем он им, но восстановить его они могут.
Бегло просмотрев содержимое жесткого диска, участники находили зашифрованный EFS файл, содержимое которого явно было ключом.
![](https://habrastorage.org/files/cc8/2b3/3a2/cc82b33a2925406086fa07aba32fa6bc.png)
Прочитать его можно было лишь с помощью сертификата указанного пользователя, а для этого надо знать его пароль.
Получение пароля
Именно поэтому участникам и выдавался дамп оперативной памяти. Несложно догадаться, что пароль извлекается из неё при помощи широко известной всем утилиты mimikatz. Сделать это можно, например, при помощи WinDBG и соответствующего расширения mimilib.dll. Ниже приведен процесс получения пароля пользователя по шагам.
![](https://habrastorage.org/files/16d/491/16a/16d49116ad7c4d32884b73b09c4d89e7.png)
Как пользоваться расширением, выводится при его загрузке. Остается только выполнить последовательность этих команд. В итоге получаем:
![](https://habrastorage.org/files/67b/e58/605/67be586050dd4b8ab6d7c0585193571d.png)
После получения пароля самый простой путь прохождения задания – загрузка с образа жесткого диска в виртуальной машине и вход под соответствующим пользователем. Однако здесь участников ждет самое большое разочарование: сертификат EFS, с помощью которого был зашифрован файл, оказывается удаленным.
После всех проделанных действий необходимо восстановить удаленный сертификат. Дамп был сделан таким образом, что восстановить сертификат при помощи различных recovery-средств для удаленных файлов было невозможно. И здесь на помощь приходит служба теневых копий тома.
Выйти из тени
Просмотреть существующие теневые копии можно при помощи утилиты vssadmin, которая включена по умолчанию в ОС Windows 7 и выше.
![](https://habrastorage.org/files/c27/d28/11f/c27d2811f8804833965dcd20072083be.png)
Видно, что каждая теневая копия характеризуется уникальным идентификатором в виде GUID. Сами теневые копии представлены в виде объектов устройств типа «Generic Volume Shadow Copy»
![](https://habrastorage.org/files/5bf/60d/42b/5bf60d42b5c5413ebc3d0d6a76fdd884.png)
Смонтировать её можно как том в новую букву диска или создать ссылку как на папку. Также возможен доступ к содержимому теневой копии с помощи имени устройства, которое оказывается в свойствах самой копии.
Теперь участникам необходимо было восстановить значения закрытого ключа сертификата для хранилища пользователя (в этом случае доступ к файлу оказывается открытым).
Это можно сделать, восстановив соответствующие ключи реестра и файл закрытого ключа в папке %AppData%\Microsoft\Crypto\RSA, в которой хранятся закрытые ключи пользователя. Нужную информацию при этом можно получить из теневой копии (монтируя её или делая на неё ссылку).
Или же можно было пойти более простым путем – откатить состояние раздела до теневой копии. После этого достаточно было залогиниться в системе и экспортировать сертификат с закрытым ключом в файл.
В текущем состоянии системы нужно было импортировать сертификат с закрытым ключом в хранилище личных сертификатов пользователя и открыть файл.
Выполнить откат можно при помощи средства diskshadow из набора утилит Windows Sever подключив диск к виртуальной машине с этой ОС или же воспользоваться соответствующими объектами WMI для томов и их копии. Использование diskshadow — более простой и быстрый путь. Для отката раздела к снепшоту нужно запросить идентификатор копии, а по нему уже выполнить восстановление.
Получаем идентификатор теневой копии:
![](https://habrastorage.org/files/807/fad/774/807fad774cf14803ad1cb97ecb3d7489.png)
Восстанавливаем теневую копию:
![](https://habrastorage.org/files/2d0/e56/8d5/2d0e568d5ded4275942a8fb4d230e777.png)
Загружаемся с полученного «прошлого» состояния системы. Сертификат присутствует. Это можно понять по тому, что сразу же появляется предложение от Windows сделать бэкап ключа. Экспортируем его в файл.
![](https://habrastorage.org/files/aca/5a2/ec3/aca5a2ec3576429da48bf71d104d9dfc.png)
Загружаемся в «текущем» состоянии диска. Импортируем сертификат на «текущем» состоянии системы в хранилище личных сертификатов пользователя. Теперь файл можно открыть и прочитать. Содержимое файла и есть ключ прохождения задания!
Делаем выводы
Из всего описанного выше для себя можно сделать следующие выводы:
1. Не стоит сохранять важные данные, которые потом необходимо будет удалить, на системном томе (диск «C:\»). Они могут оказаться в теневой копии, а вы об этом можете не знать или не помнить.
2. В случае если вы случайно удалили какой-то важный файл с системного раздела, можно попытать удачу и попробовать его найти в сохраненной теневой копии.