Как прочитать файл Windows Hibernation (hiberfil.sys) для извлечения данных?

8

Мне нужно найти, что все данные хранятся в файле гибернации, анализируя его. Однако до сих пор мне удавалось сделать это только вручную, открыв его в шестнадцатеричном редакторе и затем выполнив поиск в нем текстов. Я нашел о библиотеке SandMan, но нет никаких ресурсов. Есть идеи, как читать файл? Или есть какой-либо инструмент / библиотека или другой метод для этого?

кодировщик
источник
3
файл hiberfil - это образ системного плеера в то время, когда он находился в спящем режиме. как таковой, да, Hex Editor, вероятно, лучшее, что вы получите. Эта задача, по сути, ничем не отличается от попытки чтения содержимого вашей оперативной памяти.
Фрэнк Томас,
6
Соответствующий: security.stackexchange.com/questions/23787/…
Der Hochstapler
1
@FrankThomas вы знаете, каков формат файла гибернации?
кодер
@OliverSalzburg Я хочу знать структуру данных для чтения файла?
кодер
1
@WernerHenze для моего задания
кодер

Ответы:

7

Вы можете найти много информации о Hiberfil.sysна странице ForensicWiki .

Хотя большинство структур данных, необходимых для анализа формата файла, доступны в символах отладки Microsoft Windows, используемое сжатие (Xpress) не было документировано до тех пор, пока Matthieu Suiche не разработало его обратно. Он создал вместе с Николасом Руффом проект под названием Sandman - единственный инструмент с открытым исходным кодом, который может читать и записывать файл гибернации Windows.

PDF-файл проекта Sandman находится здесь .

Создатели проекта Sandman также создали инструмент для сброса памяти и Hiberfil.sys-file (и извлечения его из формата сжатия XPress). MoonSols Windows Memory Toolkit

Некоторые другие ссылки на ForensicWiki-странице больше не работают, но я нашел одну: (Если вы хотите погрузиться прямо в структуру формата, вы можете использовать этот ресурс. Для заголовка, первые 8192 байта файл, распаковывать их не нужно)

Формат файла гибернации.pdf

Этот последний PDF и последняя ссылка на ForensicWiki-странице должны дать вам достаточно информации о структуре Hiberfil.sys.

Файлы гибернации состоят из стандартного заголовка (PO_MEMORY_IMAGE), набора контекстов и регистров ядра, таких как CR3 (_KPROCESSOR_STATE) и нескольких массивов сжатых / кодированных блоков данных Xpress (_IMAGE_XPRESS_HEADER и _PO_MEMORY_RANGE_ARRAY).

Стандартный заголовок существует по смещению 0 файла и показан ниже. Как правило, элемент Signature должен быть либо «hibr», либо «wake», чтобы считаться действительным, однако в редких случаях весь заголовок PO_MEMORY_IMAGE обнуляется, что может помешать анализу файла гибернации в большинстве инструментов. В этих случаях волатильность будет использовать алгоритм грубой силы, чтобы найти необходимые данные.

Ссылки в этих документах должны дать вам много других источников для изучения тоже.

Rik
источник
3

Я очень рекомендую вам взглянуть на этот ответ от security.stackexchange.com . Он показывает отличный способ извлечения данных, а также информацию о самом алгоритме.

Я выделил важные части.

Да, он хранит его в незашифрованном виде на диске. Это скрытый файл C:\hiberfil.sys, который всегда будет создаваться в любой системе, в которой включен спящий режим. Содержимое сжимается с использованием алгоритма Xpress, документация которого доступна в виде документа Word от Microsoft . Мэтью Суиш провел всесторонний анализ в виде презентации BlackHat в 2008 году, которую вы можете получить в формате PDF . Есть также инструмент под названием MoonSols Windows Memory Toolkit, который позволяет выгрузить содержимое файла. Я не знаю, позволяет ли это вам вернуться, хотя. Возможно, вам придется поработать над тем, чтобы сделать это самостоятельно.

После того, как вы получили данные, можно извлечь или изменить данные, включая инструкции. С точки зрения смягчения, ваше лучшее решение - использовать полное шифрование диска, например BitLocker или TrueCrypt.

Источник

Кристиан
источник
3

Преобразуйте файл hiberfil.sys в необработанное изображение, используя http://code.google.com/p/volatility/downloads/list . Последняя версия на данный момент 2.3.1. В частности, вы можете использовать следующую командную строку, чтобы сначала создать необработанный образ: -f imagecopy -O hiberfil_sys.raw. Это создаст необработанный образ для последующего запуска волатильности, которая поможет вам извлечь информацию, такую ​​как процессы, соединения, сокеты и кусты реестра (и это лишь некоторые из них). Полный список плагинов можно найти здесь: https://code.google.com/p/volatility/wiki/Plugins . Конечно, Mandiant Redline является еще одним инструментом, который обеспечивает эту функциональность. Надеюсь, это помогло.

labgeek
источник