Forensic VS шрёдер: получение доступа к удаленным файлам

0912ee3effc540bf9c1992f05ab1f062.png Основой одного из заданий online-этапа NeoQUEST-2016 стала форензика, а именно — работа со средствами восстановления предыдущего состояния разделов Windows. Профессионалы знают и часто пользуются при пентестах или расследовании инцидентов информационной безопасности возможностями данной технологии.

Многим известная Volume Shadow Copy — служба теневого копирования томов, впервые появившаяся в ОС Windows Sever 2003. Она позволяет делать и восстанавливать моментальные снимки файловой системы (снепшоты), в том числе и системного раздела. Также прошлые снепшоты раздела могут быть подмонтированы в букву диска или в папку, как и обычный раздел. Таким образом, удается получить доступ к предыдущему состоянию системы вместе со ВСЕМИ файлами, в том числе и к файлам, в настоящий момент удаленным с этого раздела. Все эти свойства Volume Shadow Copy могут быть использованы специалистами по информационной безопасности следующими способами:

  1. Доступ и копирование занятых системой или пользовательскими приложениями файлов (БД паролей приложений, почтовые ящики Outlook, Thunderbird, БД Active Directory).
  2. Доступ и копирование удаленных файлов (в том числе и надежно затертых шредером).
  3. Сокрытие исполняемых файлов и модулей вредоносного бэкдора (делается снимок файловой системы, в котором они присутствуют, после чего они удаляются с текущего раздела, оставаясь в теневой копии).


На использовании возможности из второго пункта и было основано решение задания на форензику NeoQUEST. Подробнее — под катом!

Исходные данные


В задании с названием «Пропавший файл» участнику давалась ссылка на торрент, при скачивании участники получали 2 файла — дамп жесткого диска (*.vhdx файл) и дамп оперативной памяти (*.dmp файл). При монтировании основного файла с дампом жесткого диска участник находил текстовый файл, зашифрованный при помощи Encrypted File System (EFS). Содержимое такого файла просто так не прочитаешь! Закрытые ключи пользовательских сертификатов в ОС Windows, в том числе EFS, защищаются при помощи пароля к учетной записи. Именно поэтому при его сбросе появляется предупреждение о доступе к файлам EFS.

Знания одного NTLM-хеша пароля, а также ключей SYSKEY, LSAKEY и NL$KM для расшифрования закрытого ключа пользователя мало. Таким образом, наличия одного дампа жесткого диска оказывается недостаточно. Необходимо еще и знание пароля пользователя. На этом этапе участники пока могут и не знать, зачем он им, но восстановить его они могут.

Бегло просмотрев содержимое жесткого диска, участники находили зашифрованный EFS файл, содержимое которого явно было ключом.

cc82b33a2925406086fa07aba32fa6bc.png

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

Получение пароля


Именно поэтому участникам и выдавался дамп оперативной памяти. Несложно догадаться, что пароль извлекается из неё при помощи широко известной всем утилиты mimikatz. Сделать это можно, например, при помощи WinDBG и соответствующего расширения mimilib.dll. Ниже приведен процесс получения пароля пользователя по шагам.

16d49116ad7c4d32884b73b09c4d89e7.png

Как пользоваться расширением, выводится при его загрузке. Остается только выполнить последовательность этих команд. В итоге получаем:

67be586050dd4b8ab6d7c0585193571d.png

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

После всех проделанных действий необходимо восстановить удаленный сертификат. Дамп был сделан таким образом, что восстановить сертификат при помощи различных recovery-средств для удаленных файлов было невозможно. И здесь на помощь приходит служба теневых копий тома.

Выйти из тени


Просмотреть существующие теневые копии можно при помощи утилиты vssadmin, которая включена по умолчанию в ОС Windows 7 и выше.

c27d2811f8804833965dcd20072083be.png

Видно, что каждая теневая копия характеризуется уникальным идентификатором в виде GUID. Сами теневые копии представлены в виде объектов устройств типа «Generic Volume Shadow Copy»

5bf60d42b5c5413ebc3d0d6a76fdd884.png

Смонтировать её можно как том в новую букву диска или создать ссылку как на папку. Также возможен доступ к содержимому теневой копии с помощи имени устройства, которое оказывается в свойствах самой копии.

Теперь участникам необходимо было восстановить значения закрытого ключа сертификата для хранилища пользователя (в этом случае доступ к файлу оказывается открытым).

Это можно сделать, восстановив соответствующие ключи реестра и файл закрытого ключа в папке %AppData%\Microsoft\Crypto\RSA, в которой хранятся закрытые ключи пользователя. Нужную информацию при этом можно получить из теневой копии (монтируя её или делая на неё ссылку).

Или же можно было пойти более простым путем — откатить состояние раздела до теневой копии. После этого достаточно было залогиниться в системе и экспортировать сертификат с закрытым ключом в файл.

В текущем состоянии системы нужно было импортировать сертификат с закрытым ключом в хранилище личных сертификатов пользователя и открыть файл.

Выполнить откат можно при помощи средства diskshadow из набора утилит Windows Sever подключив диск к виртуальной машине с этой ОС или же воспользоваться соответствующими объектами WMI для томов и их копии. Использование diskshadow — более простой и быстрый путь. Для отката раздела к снепшоту нужно запросить идентификатор копии, а по нему уже выполнить восстановление.

Получаем идентификатор теневой копии:

807fad774cf14803ad1cb97ecb3d7489.png

Восстанавливаем теневую копию:

2d0e568d5ded4275942a8fb4d230e777.png

Загружаемся с полученного «прошлого» состояния системы. Сертификат присутствует. Это можно понять по тому, что сразу же появляется предложение от Windows сделать бэкап ключа. Экспортируем его в файл.

aca5a2ec3576429da48bf71d104d9dfc.png

Загружаемся в «текущем» состоянии диска. Импортируем сертификат на «текущем» состоянии системы в хранилище личных сертификатов пользователя. Теперь файл можно открыть и прочитать. Содержимое файла и есть ключ прохождения задания!

Делаем выводы


Из всего описанного выше для себя можно сделать следующие выводы:
1. Не стоит сохранять важные данные, которые потом необходимо будет удалить, на системном томе (диск «C:\»). Они могут оказаться в теневой копии, а вы об этом можете не знать или не помнить.
2. В случае если вы случайно удалили какой-то важный файл с системного раздела, можно попытать удачу и попробовать его найти в сохраненной теневой копии.

© Habrahabr.ru