Тайны файла подкачки pagefile.sys: полезные артефакты для компьютерного криминалиста



    В одной крупной финансовой организации произошел неприятный инцидент: злоумышленники проникли в сеть и «пылесосили» всю критически важную информацию — копировали, а затем отправляли данные на свой удаленный ресурс. Криминалистов 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. Практика показывает, что там может находиться что-то недостающее и важное.
    Group-IB
    Компания

    Комментарии 21

      +1
      Дело было не в бобине, а в отсутствии антивируса?
        +5
        Тут такое дело: 100% гарантии защиты не даст ни один даже самый популярный антивирус. Наш многолетний опыт расследования компьютерных преступлений показывает, что антивирусы не спасают от целевой атаки. Приезжая на инцидент в банк или компанию, откуда украли деньги, наши криминалисты, обращают внимание, что на многих зараженных машинах сотрудников установлены самые популярные антивирусы.
          0
          А как обстоят дела с настройкой этих самых антивирусов?
          Т.е. воткнули и все или же зловреды прорываются сквозь различные кастомные HIPS.
            0

            много атак было через дырявые драйвера (а-ля от gigabyte), которые позволяют на ring 0 все вытворять сторонним приложениям?

          +6
          Файл подкачки в теневой копии – штука очень опасная.

          Этот файл исключается из теневого копирования на уровне драйвера (вместе с файлом гибернации и некоторыми другими файлами), поэтому в теневой копии не должно быть данных из этого файла. Но иногда они есть, в малом количестве, в частности из-за того, что драйвер теневого копирования отслеживает изменения данных в блоках по 16 KiB, а кластер файловой системы обычно имеет меньший размер (например, 4 KiB), то есть изменение одного файла может повлечь сохранение (в теневую копию) кластеров из другого файла в пределах того же блока 16 KiB. По аналогичным причинам в теневой копии может оказаться и часть свободного пространства файловой системы (количественная оценка есть в этом посте).

          Возьмем образ из 2018 Lone Wolf Scenario и извлечем файл подкачки из самой старой теневой копии. В итоге видим, что размер файла – 3087007744 байта, из них в теневой копии нулевых байтов – 8192 (т. е. блоков из нулевых байтов, скопированных в теневую копию из исходного файла), байтов полезных данных (т. е. отличных от кластеров, содержащих только нулевые байты) – 8192, остальное – «отброшенные» блоки (их драйвер теневого копирования не скопировал в теневую копию, такие блоки могут возвращаться как нулевые байты или данные по исходным смещениям в текущей файловой системе, но для нас это пустое место, так сказать, потому что исходный файл подкачки мы все равно смотрим отдельно; в нашем случае, исходя из флагов в дескрипторе теневой копии, идут не исходные данные, а нулевые байты).

          Как видно, в файле подкачки из теневой копии у нас даже 1% данных не набирается.

          Аналогичный тест с файлом подкачки из единственной теневой копии в образе из NIST Data Leakage Case. Размер файла – 2146951168 байт, нулевых байтов – 4096, полезных данных – 4096, все остальное – данные по исходным смещениям, т. е. из текущего файла подкачки (а вот их уже можно перепутать с полезными данными). И количественно ситуация с полезными данными такая же.

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

          Вот, например, очень старый комментарий по поводу аналогичной ситуации со свободным пространством:
          The Encase Recover Folders feature parses unallocated clusters looking for folder metadata. It seems that it found data in unallocated clusters relating to the current volume. Therefore I believe that any deleted but recoverable data within the shadow copies needs to be treated with caution.

          Но это еще не конец!

          Вот снимок экрана, сделанный для файла подкачки из теневой копии внутри образа NIST Data Leakage Case:

          Снимок экрана
          Снимок экрана

          Теневая копия, как показано на снимке, создана в 2015 году. В файле подкачки внутри этой теневой копии обнаружена строка «Arsenal Image Mounter v3.0.64 Alpha», такая версия не могла существовать в 2015 году и ранее. Вопрос: откуда эта строка в файле подкачки?

          Ответ
          В некоторых случаях при чтении файла подкачки из теневой копии, если она подключена стандартными средствами Windows, возвращаются данные из оперативной памяти компьютера. То есть в качестве данных «с диска» внезапно выступают данные из оперативной памяти стендового компьютера.

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


            Fixed.
            +2
            Я начиная с WIN 7 начал всегда отключать pagefile.sys (естественно при достаточном объёме оперативки).
            Ещё ни разу не столкнулся с проблемами от его отсутствия плюс получил профиты в быстродействии системы.
              0
              подскажите как уменьшить потребление «выделенной памяти» в отношение физической?
              то бывает что 8гб физической свободно, а 15.6 из 16 гб «выделенной памяти» заполнено и при запуске какого нибудь фотошопа пишет что не хватает памяти… хотя свободно физической еще 8 гб…
                0
                  0
                  а можно мануал или описание, то там много параметров не говорящие не о чем
                    0
                    Запускаете с правами админа и параметром stanbylist
                      +1
                      Есть хорошая GUI утилита, которая позвляет увидеть распределение памяти по категориям и почистить standby.

                      docs.microsoft.com/en-us/sysinternals/downloads/rammap
                        0
                        Да, только она задумчивая при запуске и командную строку не понимает.
                          0
                          Задумчивая, потому что собирает карту памяти при старте, а что не принимает ком. строку — большая потеря для админов.

                          Но вот для обычного пользователя, чтобы наглядно посмотреть и почистить после запуска фотошопа, самое то.
                          0
                          спасибо
                          0
                          да работает, после запуска выделенной памяти практически стало сколько и занятой физической. А когда без параметров запускаешь, что по дефолту?
                    +1
                    А зачем скрыли ссылки на атакующие сервера?
                      0
                      Распространение вредоносного ПО запрещено законом. Ссылки под это подходят. А на серверах могут быть размещены файлы для загрузки. А может быть и нет. Лучше перестраховаться, чем даже минимально рисковать.
                      +1
                      На самом деле в файле подкачки можно много интересного найти. В свое время, когда еще был клиент Novell для Windows NT, он сохранял пароль открытым текстом, рядом с определенным словом. Так что загрузившись с дискеты с NTFS драйвером его легко можно было узнать.
                        +1
                        Хорошая статья!
                          0
                          Самое интересное опустили — удалось ли по содержимому pagefile выяснить, как малварь попала на сервера компании?

                          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                          Самое читаемое