Узнаем, что делал пользователь через дамп реестра

от автора

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

Также большое значение имеет информация о том, какие приложения запускал пользователь, какие документы открывал в офисных программах, какие сетевые соединения он устанавливал со сторонним ресурсами по таким протоколам, как RDP и SSH. И помочь в решении этих и аналогичных задач нам может реестр Windows.

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

Виртуальный реестр

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

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

Далее мы поговорим об использовании Volatility для работы с виртуальным реестром и получения полезных сведений об активности пользователя.

Старый добрый Volatility

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

Для работы с реестром в Volatility имеются различные плагины. Начнем с Hivelist. Этот плагин позволяет найти виртуальные адреса узлов реестра в памяти и полные пути к соответствующему узлу на диске. Если вы хотите распечатать значения веток реестра, начиная с определенного узла, сначала выполните эту команду, чтобы увидеть адреса узлов.

$ vol.py -f  win7_trial_64bit.raw --profile=Win7SP0x64 hivelist

Чтобы отобразить подразделы, значения, данные и типы данных, содержащиеся в указанном разделе реестра, воспользуйтесь плагином printkey. По умолчанию функция printkey выполняет поиск по всем разделам реестра и печатает информацию о значении ключа (если она найдена) для запрашиваемого ключа. Таким образом, если ключ находится в нескольких ячейках, информация о ключе будет напечатана для каждой ячейки, в которой он содержится.

Допустим, вы хотите перейти к ключу HKEY_LOCAL_MACHINE\Microsoft\Security Center\Svc. Вы можете сделать это следующим образом.

$ vol.py –f win7_trial_64bit.raw --profile=Win7SP0x64 printkey -K "Microsoft\Security Center\Svc"

Чтобы рекурсивно перечислить все подразделы в hive, используйте команду hive dump и передайте ей виртуальный адрес нужной ветки. Получить этот адрес можно к примеру с помощью плагина hivelist.

Работаем с учеткам

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

Здесь для того, чтобы использовать hashdump, передайте виртуальный адрес системного хранилища как -y и виртуальный адрес SAM-хранилища -s (берем также из вывода hivelist). Например, так:

$ vol.py hashdump -f win.raw -y 0xe1035b60 -s 0xe165cb60

Далее, полученные хэши можно попытаться подобрать с помощью John The Ripper, Hashcat или использовать в атаках Pass The Hash. Но вернемся к изучению действий пользователей.

Возвращаемся в прошлое с помощью ShellBag

Shell Bags — это широко используемый термин для описания набора разделов реестра, которые позволяют ОС Windows отслеживать предпочтения пользователя при просмотре окон, специфичные для проводника Windows. Эти ключи могут содержать интересную информацию, и могут помочь составить более четкую картину действий пользователя на компьютере. Например, в пакетах Shell можно найти следующую информацию: файлы, которые использовались в последнее время, и тип файла (zip, каталог, установщик), также файлы, папки, zip-файлы, установщики, которые существовали в какой-то момент в системе (даже если они были удалены), общие сетевые ресурсы и папки в этих общих ресурсах и связанные с этими типами метаданные.

Shellbags располагаются в различных ветках в зависимости от версии ОС Windows. Так в соответствии со статьей Базы знаний Майкрсофт (KB 813711), для Windows 7, дамп которой мы используем в примерах, это будет:

HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell

HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Bags

HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\BagMRU

HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam

HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\BagMRU

HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\Bags

Давайте попробуем извлечь Shellbag из нашего дампа:

$ vol.py -f win7.vmem --profile=Win7SP1x86 shellbags

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

При необходимости можно включить идентификатор компьютера в заголовок основного файла с флагом —machine (это полезно при объединении временных шкал с нескольких компьютеров).

Дамп, просто дамп

В завершении рассмотрим плагин dump registry, который позволяет записывать данные реестра на диск. По умолчанию плагин сбрасывает все найденные файлы реестра (включая виртуальные реестры, такие как аппаратное обеспечение) на диск, однако вы можете указать виртуальное смещение для конкретного куста, чтобы сбрасывать только один блок реестра за раз. Одно из предостережений при использовании этого плагина заключается в том, что в удаленном файле реестра могут быть пробелы, поэтому автономные инструменты реестра могут выйти из строя, если они не будут надежно настроены для обработки «поврежденных» файлов. Эти пробелы обозначаются в текстовом выводе строками типа Physical layer, возвращающими значение None для индекса 2000, с заполнением NULL.

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

vol.py -f voltest.dmp --profile=Win7SP1x86 dumpregistry -o 0x8cec09d0 -D output/

Заключение

Представленные в статье плагины для работы с реестром в Volatility являются далеко не полным списком всех доступных инструментов в данном приложении. Также могут полезными такие плагины, как userassist, slimcache и другие. А кроме того, помимо Volatility существует также множество других инструментов для анализа виртуального реестра.

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


ссылка на оригинал статьи https://habr.com/ru/articles/850554/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *