Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Нередко злоумышленники атакуют компьютеры с использованием неустановленных вредоносных программ, и все, что остается после такого инцидента у специалистов по кибербезопасности — дамп памяти скомпрометированной машины. Нужно извлечь оттуда файл вредоноса, идентифицировать его и восстановить хронологию атаки.
В этой статье мы проведем расследование подобного инцидента на примере лабораторной работы BlackEnergy с ресурса CyberDefenders. Мы научимся извлекать основные артефакты из образа оперативной памяти Windows и восстановим процесс атаки.
Согласно сценарию, крупная корпорация подверглась кибератаке, которая привела к краже конфиденциальных данных. Атака была проведена с использованием ранее не встречавшейся разновидности вредоноса BlackEnergy v2. Группа реагирования на инциденты сделала дамп памяти скомпрометированного компьютера для дальнейшего изучения. Наша задача провести расследование и разобраться, что все‑таки произошло.
По результатам решения кейса необходимо ответить на ряд вопросов, но я покажу только сам процесс решения. Ты сможешь повторить весь процесс самостоятельно с целью обучения и закрепления материала.
Для начала загрузим файл архива с артефактами и приступим к его исследованию.
Для анализа памяти воспользуемся утилитой Volatility Framework 2.6.1 — этот инструмент написан на Python версии 2 и предназначен для извлечения артефактов из образцов энергозависимой памяти.
cmd.exe
. Основным преимуществом этого плагина является то, что он не только выводит команды, введенные злоумышленниками, но и собирает весь экранный буфер (ввод и вывод).
FILE_OBJECT
в памяти с помощью сканирования тегов пула. Данный плагин найдет все открытые файлы.
Прежде чем анализировать артефакты в оперативной памяти, получим профиль операционной системы, а также первичную информацию о компьютере. Для этого используется следующая команда:
python2.7 vol.py -f CYBERDEF-567078-20230213-171333.raw imageinfo
Профиль для Volatility2
исследуемой машины — WinXPSP2x86
. Получим первичную информацию о системе, имя компьютера и сетевой адрес. Для этого воспользуемся плагином Printkey, с помощью которого выведем данные из ключей реестра.
python2.7 vol.py -f c79-BE/CYBERDEF-567078-20230213-171333.raw --profile=WinXPSP2x86 printkey -K 'ControlSet001ControlComputerNameActiveComputerName'
Имя компьютера
Имя компьютера исследуемой системы — CYBERDEF-567078
. Получим сетевой адрес, для этого необходимо определить идентификаторы сетевых интерфейсов.
python2.7 vol.py -f /mnt/c/Users/DonNod/Downloads/c79-BE/CYBERDEF-567078-20230213-171333.raw --profile=WinXPSP2x86 printkey -K 'ControlSet001ServicesTcpipParametersInterfaces'
Идентификаторы сетевых интерфейсов
Теперь проверим каждый сетевой интерфейс и получим сетевые настройки машины.
python2.7 vol.py -f c79-BE/CYBERDEF-567078-20230213-171333.raw --profile=WinXPSP2x86 printkey -K 'ControlSet001ServicesTcpipParametersInterfaces{B35F0A5F-EBC3-4B5D-800D-7C1B64B30F14}'
IP-адрес сетевого интерфейса
Сетевой адрес исследуемой машины 192.168.8.195
выдан динамически DHCP-сервером 192.168.8.1
.
Приступим к поиску вредоносной активности. Начнем с анализа процессов, для этого воспользуемся плагинами pstree и pslist. Вывод работы плагинов сохраним в файлы для удобства дальнейшего исследования.
python2.7 vol.py -f c79-BE/CYBERDEF-567078-20230213-171333.raw --profile=WinXPSP2x86 pslist > pslist.txt
Список запущенных процессов
Анализируя вывод плагина pslist, можно заметить, что на момент снятия образа памяти в системе работало 19 процессов. В столбце Exit
указано время завершения процессов, 6 процессов завершили свою работу.
Проанализируем процессы с помощью плагина pstree.
python2.7 vol.py -f c79-BE/CYBERDEF-567078-20230213-171333.raw --profile=WinXPSP2x86 pstree > pstree.txt
Вывод плагина pstree
Анализируя дерево процессов, можно заметить процесс с интересным именем rootkit.exe
(идентификатор 964
), а также процесс cmd.exe
(идентификатор 1960
), который является дочерним.
Теперь следует получить дамп данных процессов и поискать в них интересные строки, для этого можно воспользоваться плагином memdump. В нашем случае поиск не дает результатов. Попробуем выгрузить исполняемый файл вредоносной программы из кеша.
Получим список файлов в памяти, для этого воспользуемся плагином filescan, сохраним вывод файл filescan.txt
для дальнейшего поиска файлов.
python2.7 vol.py -f c79-BE/CYBERDEF-567078-20230213-171333.raw --profile=WinXPSP2x86 filescan > c79-BE/filescan.txt
Поиск исполняемого файла rootkit.exe
в списке файлов не дал результатов. Попробуем построить временную шкалу событий операционной системы и восстановим действия пользователя. Для этого воспользуемся плагином timeliner, вывод работы плагина сохраним в файл timeline.txt
.
python2.7 vol.py -fc79-BE/CYBERDEF-567078-20230213-171333.raw --profile=WinXPSP2x86 timeliner > c79-BE/timeline.txt
Для удобства анализа загрузим файл событий в Excel. Откроем программу MS Office Excel, перейдем во вкладку «Данные → Из текстового файла» и выберем файл timeline.txt
. Далее отсортируем данные по дате и приступим к анализу.
Временная шкала событий
Источник: xakep.ru