В одной крупной финансовой организации произошел неприятный инцидент: злоумышленники проникли в сеть и «пылесосили» всю критически важную информацию — копировали, а затем отправляли данные на свой удаленный ресурс. Криминалистов Group-IB призвали на помощь лишь спустя полгода после описываемых событий…. К тому времени часть рабочих станций и серверов была уже выведена из работы, а следы действий злоумышленников уничтожены из-за использования ими специализированного ПО и из-за неправильного логирования. Однако на одном из серверов, участвовавших в инциденте, был обнаружен файл подкачки Windows, из которого эксперты получили критически важную информация об инциденте.

В этой статье Павел Зевахин, специалист Лаборатории компьютерной криминалистики Group-IB, рассказывает о том, какие данные можно обнаружить в ходе криминалистического исследования в файлах подкачки Windows.

Часть 1. Что скрывают pagefile.sys


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

Выгрузка в файл подкачки происходит постранично, блоками по 4 Кб, поэтому данные могут занимать как непрерывную область в файле подкачки, так и находиться в разных его частях. Это означает, что в большинстве случаев информация, обнаруженная в этом файле, будет извлекаться с потерей целостности.

Размер pagefile.sys в файловой системе по умолчанию задается операционной системой, но пользователь всегда может отключить файл подкачки или изменить его максимальный размер. Стандартное расположение файла — в корне системного раздела, но он может находиться и на любом другом логическом диске — в зависимости от того, куда пользователь его поместил. Нужно помнить этот факт.

Прежде чем мы займемся извлечением pagefile.sys, надо понять, что это за файл с точки зрения файловой системы. Для этого воспользуемся ПО AccessData FTK Imager:

Hidden True Owner SID S-1-5-32-544
System True Owner Name Администраторы
Read Only False Group SID S-1-5-18
Archive True Group Name SYSTEM

Видно, что это скрытый системный файл, который так просто не скопировать.

Как тогда получить этот файл? Сделать это можно несколькими способами:

  • если вы работаете с активной операционной системой, то для извлечения используем ПО FTK Imager или KAPE Эрика Циммермана

  • если есть цифровая копия накопителя или же сам файл — просто копируем файл или работаем с ним напрямую.

Не забываем, что файлы pagefile.sys могут находиться в теневых копиях (Volume Shadow Copy) и на других логических дисках. Правда, бывают случаи, когда правила теневого копирования задает сам пользователь и исключает копирование файла подкачки (в системном реестре есть ветвь HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\BackupRestore\FilesNotToSnapshot, где указываются файлы, которые будут исключены из теневого копирования).

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


Важный момент, о котором стоит помнить: начиная со сборки 10525 Windows 10 используется компрессия файла подкачки. При нехватке памяти система сжимает неиспользуемые ресурсы памяти в каждом процессе, позволяя большему количеству приложений оставаться активными одновременно. Для декомпрессии такого файла необходимо использовать специализированное ПО.
Например, можно использовать для декомпрессии утилиту winmem_decompress Максима Суханова:


Это будет полезным, когда поиск в изначальном файле подкачки результатов не дал или же необходимые данные находились в сжатом виде.

Итак, когда файл pagefile.sys у нас в руках, можно приступать к его исследованию. И тут надо выделить две ситуации: первая — когда мы знаем, что искать, и вторая — когда не знаем. В первом случае это могут быть фрагменты файлов, следы работы того или иного ПО, какая-то пользовательская активность. Для такого поиска обычно используется шестнадцатеричный редактор X-Ways WinHEX (или любой другой). Во втором случае придется полагаться на специализированное ПО, например, MAGNET AXIOM, Belkasoft Evidence Center, утилиту strings (ее можно считать основной и наиболее часто используемой), ПО Photorec (ПО для восстановления, использующее сигнатурный метод), в некоторых случаях применять yara-правила (при условии настройки сканирования файлов большого размера) — или же просто просматривать файл вручную.

А что можно найти в файле pagefile.sys, и почему мы делаем акцент на файле подкачки? Все просто: это данные, частично выгруженные из оперативной памяти, то есть процессы, файлы и прочие артефакты — то, что было активно и функционировало в ОС. Это может быть часть интернет-истории и IP-адреса, информация о запуске каких-то файлов или же сами файлы, фрагменты изображений и текстов, сведения о сетевых запросах функционировавшего ранее ПО, следы работы вредоносного ПО в виде журналов нажатых клавиш, системные файлы и журналы ОС и много всего другого.



Идем в поля


Пора переходить непосредственно к реальным делам и исследованиям. Итак, что полезного можно найти в файле подкачки Windows с точки зрения цифровой криминалистики?

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

Чтобы дать полный ответ, что произошло и как, криминалисту необходимо установить начальную точку заражения, используемый злоумышленниками инструментарий и последовательность действий. В ходе исследования удалось найти не все следы функционирования вредоносного ПО. И вот тут был проанализирован pagefile.sys. Как мы уже знаем, там можно найти страницы из памяти процессов, выгруженные из оперативной памяти в файл подкачки, которые иногда можно восстановить, например, при помощи ПО Photorec сигнатурным методом, как и было сделано в данном кейсе.
При этом нужно отметить следующее: так как в файле подкачки лежат уже выгруженные из оперативной памяти процессы (файлы), то их адресация будет отличаться от адресации оригинальных файлов. К тому же они могут быть сильно фрагментированы, поэтому запустить такой исполняемый файл зачастую нельзя, да и все другие файлы, как правило, будут иметь повреждения внутренней структуры из-за фрагментации, ведь сигнатурное восстановление не может само найти все фрагменты файла и расставить их в правильном порядке.

Выше представлен пример файлов (Photorec присвоил файлам имена, исходя из смещения относительно начала файла подкачки), выгруженных в ходе проведения этого исследования. Мы видим, что это исполняемые, графические, текстовые и иные файлы. Дальше все просто: анализируем их, исходя из необходимых критериев и задач.

В конкретном случае из файла подкачки были восстановлены dll-файлы, в которых есть вредоносный код. Ниже приведен пример их детектов на VirusTotal (поиск осуществлялся по контрольной сумме файлов):


В ходе анализа был установлен адрес удаленного сервера, с которым могли взаимодействовать эти файлы. При помощи шестнадцатеричного редактора X-Ways WinHEX в исследуемом pagefile.sys обнаружены строки, содержащие адреса удаленного сервера. Это говорит о том, что обнаруженные файлы функционировали в ОС и активно взаимодействовали со своим удаленным сервером. А вот и детекты сервиса VirusTotal за декабрь 2018 года:



Таким образом, в данном кейсе благодаря обнаруженным в pagefile.sys сведениям мы установили всю цепочку заражения.

А что еще?


Существуют порой уникальные случаи, когда в файле подкачки помимо иных следов можно найти закодированные в base64 снимки экрана. Например, такие при отправке создает банковский троян Buhtrap.

В конкретном случае начало файла было следующим: /9j/4AAQSkZJRgABAQEAYABgAAD/. Это заголовок jpeg-файла, закодированный в base64 (представлена часть изображения):


Вышеуказанный фрагмент скопировали, декодировали и добавили к нему расширение jpg. Нам повезло, и обнаруженный скриншот содержал полный снимок активного рабочего стола бухгалтерского компьютера с открытым ПО «1С: Бухгалтерия», на котором отображался финансовый баланс предприятия и прочие важные данные. Другие обнаруженные закодированные изображения из-за особенности хранения информации в файле подкачки были неполными (битыми).

Другой пример. В ходе одного из инцидентов обнаружены следы фреймворка Cobalt Strike (характерные строки в файле подкачки — SMB mode, status_448, ReflectiveLoader):



И впоследствии можно попытаться выгрузить модули. На изображении выше это keylogger.dll и screenshot.dll, но могут быть и другие.

Идем дальше. Входящий в Cobalt Strike и часто используемый злоумышленниками модуль mimikatz — это инструмент, реализующий функционал Windows Credentials Editor и позволяющий извлекать аутентификационные данные залогинившегося в системе пользователя в открытом виде. Именно в файле подкачки были обнаружены следы его функционирования, а именно следующие символьные строки:

  • sekurlsa::logonPasswords — извлечение логинов и паролей учетной записи
  • token::elevate — повышение прав доступа до SYSTEM или поиск токена администратора домена
  • lsadump::sam — получение SysKey для расшифровки записей из файла реестра SAM
  • log Result.txt — файл, куда записываются результаты работы ПО (не забываем поискать этот файл в файловой системе):


Следующий пример — следы функционирования банковского трояна Ranbyus, который состоит из множества модулей. В ходе одного исследования в файле подкачки, который находился в теневой копии (VSS), обнаружили строки, сформированные дополнительным модулем, расширяющим функциональные возможности ПО Ranbyus. Строки содержали, помимо всего прочего, и введенные аутентификационные данные пользователя (логин и пароль) в системе «клиент-банк». А в качестве примера — часть сетевого запроса, включая сведения об управляющем сервере, который был обнаружен в файле pagefile.sys:


На самом деле довольно часто можно встретить примеры POST-запросов вредоносного ПО к своим управляющим серверам, а также ответы этих серверов на запросы. Ниже приведены такие случаи на примере взаимодействия ПО Buhtrap со своим управляющим сервером:


Теперь вспомним про кейс, с которого мы начинали этот пост. В крупной организации с множеством серверов и рабочих станций произошел инцидент, в ходе которого злоумышленники проникли в сеть, завладели учетными данными одного из администраторов контроллера домена и далее перемещались по сети, используя легитимное ПО. Они копировали критически важную информацию, а затем отправляли эти данные на удаленный ресурс. На момент реагирования прошло более полугода, часть рабочих станций и серверов уже были выведены из работы, а следы действий злоумышленников уничтожены «благодаря» использования ими специализированного ПО и из-за неправильного логирования.

В процессе реагирования мы вышли на сервер с ОС Windows Server 2012, участвовавший в инциденте. Файлы системных журналов уже не один раз перезаписаны, а свободное дисковое пространство затерто. Но там был файл подкачки! Благодаря долгой работе сервера без перезагрузки и большому объему файла подкачки в нем сохранились следы запуска ПО злоумышленников и скриптов, которые на момент исследования уже отсутствовали в файловой системе без возможности восстановления. Сохранились и сведения о каталогах и файлах (пути и имена), которые создавались, копировались и впоследствии удалялись злоумышленниками, IP-адреса рабочих станций организации, откуда копировались данные, и прочая важная информация.

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

Ниже несколько примеров того, что обнаружили специалисты:




Сведения об использовании утилит pcsp.exe и ADExplorer.exe (присутствуют и даты, и пути).

Дальше — сведения об использовании vbs-скрипта (на изображении — начало и конец).
Примечательно, что указаны учетные данные (логин и пароль) одного из администраторов контроллера домена, которые ранее были скомпрометированы:



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

Ну и в завершение, конечно же, стоит упомянуть про остальные артефакты, такие как данные о посещении интернет-сайтов (иногда можно обнаружить сведения об использовании электронных почтовых ящиков), сведения о файлах и каталогах:



Можно обнаружить и такую информацию, как имя компьютера и серийный номер тома, где располагался файл подкачки:


А также информацию из файлов Prefetch и, конечно же, системные журналы Windows.

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