Forensic VS шрёдер: получение доступа к удаленным файлам
Основой одного из заданий online-этапа NeoQUEST-2016 стала форензика, а именно — работа со средствами восстановления предыдущего состояния разделов Windows. Профессионалы знают и часто пользуются при пентестах или расследовании инцидентов информационной безопасности возможностями данной технологии.
Многим известная 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 файл, содержимое которого явно было ключом.
Прочитать его можно было лишь с помощью сертификата указанного пользователя, а для этого надо знать его пароль.
Получение пароля
Именно поэтому участникам и выдавался дамп оперативной памяти. Несложно догадаться, что пароль извлекается из неё при помощи широко известной всем утилиты mimikatz. Сделать это можно, например, при помощи WinDBG и соответствующего расширения mimilib.dll. Ниже приведен процесс получения пароля пользователя по шагам.
Как пользоваться расширением, выводится при его загрузке. Остается только выполнить последовательность этих команд. В итоге получаем:
После получения пароля самый простой путь прохождения задания — загрузка с образа жесткого диска в виртуальной машине и вход под соответствующим пользователем. Однако здесь участников ждет самое большое разочарование: сертификат EFS, с помощью которого был зашифрован файл, оказывается удаленным.
После всех проделанных действий необходимо восстановить удаленный сертификат. Дамп был сделан таким образом, что восстановить сертификат при помощи различных recovery-средств для удаленных файлов было невозможно. И здесь на помощь приходит служба теневых копий тома.
Выйти из тени
Просмотреть существующие теневые копии можно при помощи утилиты vssadmin, которая включена по умолчанию в ОС Windows 7 и выше.
Видно, что каждая теневая копия характеризуется уникальным идентификатором в виде GUID. Сами теневые копии представлены в виде объектов устройств типа «Generic Volume Shadow Copy»
Смонтировать её можно как том в новую букву диска или создать ссылку как на папку. Также возможен доступ к содержимому теневой копии с помощи имени устройства, которое оказывается в свойствах самой копии.
Теперь участникам необходимо было восстановить значения закрытого ключа сертификата для хранилища пользователя (в этом случае доступ к файлу оказывается открытым).
Это можно сделать, восстановив соответствующие ключи реестра и файл закрытого ключа в папке %AppData%\Microsoft\Crypto\RSA, в которой хранятся закрытые ключи пользователя. Нужную информацию при этом можно получить из теневой копии (монтируя её или делая на неё ссылку).
Или же можно было пойти более простым путем — откатить состояние раздела до теневой копии. После этого достаточно было залогиниться в системе и экспортировать сертификат с закрытым ключом в файл.
В текущем состоянии системы нужно было импортировать сертификат с закрытым ключом в хранилище личных сертификатов пользователя и открыть файл.
Выполнить откат можно при помощи средства diskshadow из набора утилит Windows Sever подключив диск к виртуальной машине с этой ОС или же воспользоваться соответствующими объектами WMI для томов и их копии. Использование diskshadow — более простой и быстрый путь. Для отката раздела к снепшоту нужно запросить идентификатор копии, а по нему уже выполнить восстановление.
Получаем идентификатор теневой копии:
Восстанавливаем теневую копию:
Загружаемся с полученного «прошлого» состояния системы. Сертификат присутствует. Это можно понять по тому, что сразу же появляется предложение от Windows сделать бэкап ключа. Экспортируем его в файл.
Загружаемся в «текущем» состоянии диска. Импортируем сертификат на «текущем» состоянии системы в хранилище личных сертификатов пользователя. Теперь файл можно открыть и прочитать. Содержимое файла и есть ключ прохождения задания!
Делаем выводы
Из всего описанного выше для себя можно сделать следующие выводы:
1. Не стоит сохранять важные данные, которые потом необходимо будет удалить, на системном томе (диск «C:\»). Они могут оказаться в теневой копии, а вы об этом можете не знать или не помнить.
2. В случае если вы случайно удалили какой-то важный файл с системного раздела, можно попытать удачу и попробовать его найти в сохраненной теневой копии.