Экспертиза памяти: использование структуры волатильности
Киберпреступники и злоумышленники стали настолько изобретательными в своем типе преступления, что начали искать методы сокрытия данных в энергозависимой памяти систем. Сегодня в этой статье мы собираемся лучше понять получение живой памяти и ее криминалистический анализ. Сбор данных в живую память – это метод, который используется для сбора данных, когда система находится в активном состоянии на месте преступления.
Оглавление
- Приобретение памяти
- Важность приобретения памяти
- Поддерживаемый формат дампа
- Плагины анализа памяти
- Imageinfo
- Kdbgscan
- Процессы
- DLL
- Ручки
- Netscan
- Hivelist
- Таймлайнер
- Хэшдамп
- Lsadump
- Modscan
- Сканирование файлов
- Svcscan
- История
- Регистр дампа
- Moddump
- Procdump
- Memdump
- блокнот
Приобретение памяти
Это метод захвата и сброса содержимого изменчивого содержимого в энергонезависимое запоминающее устройство для сохранения его для дальнейшего исследования. Анализ плунжера может быть успешно проведен только в том случае, если сбор данных был выполнен точно без искажения изображения энергозависимой памяти. На этом этапе исследователь должен быть осторожен в своих решениях о сборе изменчивых данных, поскольку они не будут существовать после перезагрузки системы. Энергозависимая память также может быть подвержена любым изменениям из-за непрерывных процессов, выполняемых в фоновом режиме. Любое внешнее движение, сделанное в подозрительной системе, может отрицательно повлиять на плунжер устройства.
Важность приобретения памяти
Когда энергозависимая память является захватом, могут быть обнаружены следующие артефакты, которые могут быть полезны для расследования:
- Текущие процессы и недавно завершенные процессы
- Файлы, отображаемые в памяти (.exe, .txt, общие файлы и т. Д.)
- Любые открытые порты TCP / UDP или любые активные соединения
- Кеши (данные буфера обмена, базы данных SAM, редактируемые файлы, пароли, веб-адреса, команды)
- Наличие скрытых данных, вредоносных программ и т. Д.
Здесь мы сделали дамп памяти системы Windows7 с помощью Belkasoft RAM Capturer, который можно скачать отсюда .
Анализ памяти
Как только дамп станет доступен, мы начнем с криминалистического анализа памяти, используя структуру Volatility Memory Forensics Framework, которую можно скачать отсюда . Инфраструктура волатильности поддерживает анализ дампа памяти из всех версий и служб Windows от XP до Windows 10. Он также поддерживает Server 2003 – Server 2016. В этой статье мы проанализируем дамп памяти в Kali Linux, где Volatility поставляется заранее. установлены.
Поддерживаемый формат дампа
- Необработанный формат
- Файл гибернации
- Снимок виртуальной машины
- Дамп сбоя Microsoft
Включите свои машины Kali Linux и, чтобы получить базовый список всех доступных опций, плагинов и флагов для использования в анализе, вы можете ввести
volatility -h
Imageinfo
Когда делается дамп памяти, чрезвычайно важно знать информацию об используемой операционной системе. Volatility попытается прочитать изображение и предложит соответствующие профили для данного дампа памяти. Подключаемый модуль информации об изображении отображает дату и время выборки, которая была собрана, количество имеющихся процессоров и т. Д. Чтобы получить подробную информацию о оперативной памяти, вы можете ввести;
volatility -f ram.mem imageinfo
Профиль – это категоризация конкретных операционных систем, версий и их аппаратной архитектуры. Профиль обычно включает в себя информацию метаданных, информацию о системных вызовах и т. Д. Вы можете заметить, что вам будет предложено несколько профилей.

Kdbgscan
Этот плагин находит и анализирует профили на основе блока данных отладчика ядра. Таким образом, Kdbgscan обеспечивает правильный профиль, связанный с необработанным изображением. Чтобы предоставить правильный профиль для анализа памяти, введите
volatility -f ram.mem kdbgscan

Процессы
Когда система находится в активном состоянии, это нормально, когда несколько процессов работают в фоновом режиме и могут быть найдены в энергозависимой памяти. Наличие любого скрытого процесса также можно проанализировать из дампа памяти. Процессы, недавно завершенные перед перезагрузкой, также могут быть записаны и проанализированы в дампе памяти. Есть несколько плагинов, которые можно использовать для вывода списка процессов.
Пслист
Чтобы определить наличие любых мошеннических процессов и просмотреть все запущенные процессы высокого уровня, можно использовать
volatility -f ram.mem --profile = Win7SP1x64 pslist -P
При выполнении этой команды отображается список запущенных процессов, их соответствующий идентификатор процесса, назначенный им, а также идентификатор родительского процесса. Также упоминаются подробности о потоках, сеансах, дескрипторах. Также отображается метка времени начала процесса. Это помогает определить, запущен ли неизвестный процесс или выполнялся в необычное время.

Psscan
Этот плагин можно использовать для предоставления подробного списка процессов, найденных в дампе памяти. Он не может обнаруживать скрытые или несвязанные процессы.
volatility -f ram.mem --profile = Win7SP1x64 psscan

Pstree
В этом плагине pslist представлен отношениями дочерний и родительский и показывает все неизвестные или аномальные процессы. Дочерний процесс представлен отступом и точками.
volatility -f ram.mem --profile = Win7SP1x64 pstree

DLL
DLLлист
volatility -f ram.mem --profile = Win7SP1x64 dlllist -p 1116,788
DLL – это автоматически динамически подключаемая библиотека, которая добавляется в этот список, когда процесс в соответствии с вызовом Load Library, и они не удаляются до тех пор, пока. Чтобы отображать библиотеки DLL для любого конкретного процесса, а не для всех процессов.

DLLDump
Этот плагин используется для выгрузки DLL из области памяти процессов в другое место для анализа. Чтобы получить дамп DLL, введите:
volatility -f ram.mem --profile = Win7SP1x64 dlldump --dump-dir / root / ramdump /

Ручки
Этот плагин используется для отображения открытых дескрипторов, присутствующих в процессе. Этот плагин применяется к файлам, разделам реестра, событиям, рабочим столам, потокам и всем другим типам объектов. Чтобы увидеть дескрипторы, присутствующие в дампе, вы можете ввести,
volatility -f ram.mem --profile = Win7SP1x64 обрабатывает

Getsids
Этот плагин используется для просмотра SID (идентификаторов безопасности), связанных с процессом. Этот плагин может помочь в идентификации процессов, для которых злонамеренно повышены привилегии и какие процессы принадлежат определенным пользователям. Чтобы получить подробную информацию о конкретном идентификаторе процесса, вы можете ввести
volatility -f ram.mem --profile = Win7SP1x64 получает свой -p 464

Netscan
Этот плагин помогает находить связанные с сетью артефакты, присутствующие в дампе памяти. Он использует сканирование тегов пула. Этот плагин находит все конечные точки TCP, прослушиватели TCP, конечные точки UDP и прослушиватели UDP. Он предоставляет подробную информацию о локальном и удаленном IP-адресе, а также о локальном и удаленном портах. Чтобы получить подробную информацию о сетевых артефактах, вы можете ввести:
volatility -f ram.mem --profile = Win7SP1x64 netscan

Hivelist
Этот плагин можно использовать для поиска виртуальных адресов, имеющихся в кустах реестра в памяти, и их полных путей к кустам на диске. Чтобы получить подробную информацию о списке кустов из дампа памяти, введите:
volatility -f ram.mem --profile = Win7SP1x64 список кустов

Таймлайнер
Этот плагин обычно создает временную шкалу из различных артефактов, обнаруженных в дампе памяти. Чтобы найти артефакты в соответствии с временной шкалой, вы можете использовать следующую команду:
volatility -f ram.mem --profile = Win7SP1x64 таймлайнер

Хэшдамп
Этот плагин можно использовать для извлечения и расшифровки учетных данных кэшированного домена, хранящихся в реестре, которые можно получить из дампа памяти. Хэши, полученные из дампа памяти, могут быть взломаны с помощью John the Ripper, Hashcat и т. Д. Чтобы собрать хэш-дамп, вы можете использовать команду:
volatility -f ram.mem --profile = хэш-дамп Win7SP1x64

Lsadump
Этот плагин используется для выгрузки секретов LSA из реестра в дамп памяти. Этот плагин выдает такую информацию, как пароль по умолчанию, открытый ключ RDP и т. Д. Чтобы выполнить lsadump, вы можете ввести следующую команду:
volatility -f ram.mem --profile = Win7SP1x64 lsadump

Modscan
Этот плагин используется для поиска памяти ядра и связанных с ней объектов. Он может подобрать все ранее выгруженные драйверы, а также те драйверы, которые были скрыты или были отключены руткитами в системе. К
volatility -f ram.mem --profile = Win7SP1x64 modscan

Сканирование файлов
Этот плагин используется для поиска FILE_OBJECT, присутствующих в физической памяти, с помощью сканирования тегов пула. Он может находить открытые файлы, даже если в них присутствует скрытый руткит. Чтобы использовать этот плагин, вы можете ввести следующую команду:
volatility -f ram.mem --profile = Win7SP1x64 сканирование файлов

Svcscan
Этот плагин используется для просмотра сервисов, зарегистрированных в вашем образе памяти, используйте команду svcscan. Выходные данные показывают идентификатор процесса каждой службы, имя службы, имя службы, отображаемое имя, тип службы, состояние службы, а также показывает двоичный путь для зарегистрированной службы, которая будет .exe для служб пользовательского режима и драйвера. имя для служб, которые запускаются из режима ядра. Узнать подробности об услугах
volatility -f ram.mem --profile = Win7SP1x64 svcscan


Cmdscan
Этот плагин ищет в дампе памяти XP / 2003 / Vista / 2008 и Windows 7 команды, которые злоумышленник мог ввести через командную строку (cmd.exe). Это одна из самых мощных команд, которые можно использовать для отслеживания действий злоумышленника в системе жертвы. Чтобы провести cmdscan, вы можете использовать следующую команду:
volatility -f ram.mem --profile = Win7SP1x64 cmdscan

История
Этот плагин восстанавливает фрагменты истории Internet Explorer, находя кеш-файл index.dat. Чтобы найти файлы iehistory, вы можете ввести следующую команду:
volatility -f ram.mem --profile = Win7SP1x64 iehistory

Регистр дампа
Этот плагин позволяет выгружать куст реестра в место на диске. Чтобы создать дамп куста реестра, используйте следующую команду.
volatility -f ram.mem --profile = Win7SP1x64 dumpregistry --dump-dir / root / ramdump /

Moddump
Этот плагин используется для извлечения драйвера ядра в файл, вы можете сделать это с помощью следующей команды:
volatility -f ram.mem --profile = Win7SP1x64 moddump --dump-dir / root / ramdump /

Procdump
Этот плагин используется для дампа исполняемых процессов в одном месте. Если есть вредоносное ПО, оно намеренно подделывает поля размера в PE-заголовке для сбоя инструмента дампа памяти. Чтобы собрать дамп по процессам, наберите:
volatility -f ram.mem --profile = Win7SP1x64 procdump --dump-dir / root / ramdump /

Memdump
Плагин memdump используется для выгрузки резидентных в памяти страниц процесса в отдельный файл. Вы также можете найти конкретный процесс с помощью -p и указать ему путь к каталогу -D для генерации вывода. Чтобы сделать дамп на резидентных страницах памяти, вы можете использовать следующую команду:
volatility -f ram.mem --profile = Win7SP1x64 memdump --dump-dir / root / ramdump /

Блокнот
Файлы блокнота обычно часто ищут файлы в дампе оперативной памяти. Чтобы найти содержимое файла блокнота, вы можете использовать следующую команду:
volatility -f ram.mem --profile = Блокнот WinXPSP2x86
