Категория > Новости > Уроки форензики. Ищем неизвестный вредонос и восстанавливаем данные из памяти - «Новости»

Уроки форензики. Ищем неизвестный вредонос и восстанавливаем данные из памяти - «Новости»


14-04-2023, 00:00. Автор: Сократ
BlackEnergy с ресур­са CyberDefenders. Мы научим­ся извле­кать основные арте­фак­ты из обра­за опе­ратив­ной памяти Windows и вос­ста­новим про­цесс ата­ки.

Сог­ласно сце­нарию, круп­ная кор­порация под­вер­глась кибера­таке, которая при­вела к кра­же кон­фиден­циаль­ных дан­ных. Ата­ка была про­веде­на с исполь­зовани­ем ранее не встре­чав­шей­ся раз­новид­ности вре­доно­са BlackEnergy v2. Груп­па реаги­рова­ния на инци­ден­ты сде­лала дамп памяти ском­про­мети­рован­ного компь­юте­ра для даль­нейше­го изу­чения. Наша задача про­вес­ти рас­сле­дова­ние и разоб­рать­ся, что все‑таки про­изош­ло.


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


Для начала заг­рузим файл ар­хива с арте­фак­тами и прис­тупим к его иссле­дова­нию.


Для ана­лиза памяти вос­поль­зуем­ся ути­литой Volatility Framework 2.6.1 — этот инс­тру­мент написан на Python вер­сии 2 и пред­назна­чен для извле­чения арте­фак­тов из образцов энер­гозави­симой памяти.


 

Используемые плагины Volatility2 для извлечения данных




  1. imageinfo — пла­гин для опре­деле­ния опе­раци­онной сис­темы, пакета обновле­ний и аппа­рат­ной архи­тек­туры иссле­дуемо­го обра­за.


  2. pstree — пла­гин для прос­мотра спис­ка про­цес­сов в виде дерева.


  3. handles — пла­гин для прос­мотра откры­тых дес­крип­торов к фай­лам, раз­делам реес­тра, мьютек­сам, име­нован­ным каналам, событи­ям в про­цес­сах. Так­же мож­но отоб­разить дек­срип­торы для кон­крет­ного про­цес­са или отфиль­тро­вав их по кон­крет­ному типу объ­екта.


  4. consoles — пла­гин для поис­ка команд, которые зло­умыш­ленни­ки вве­ли в cmd.exe. Основным пре­иму­щес­твом это­го пла­гина явля­ется то, что он не толь­ко выводит коман­ды, вве­ден­ные зло­умыш­ленни­ками, но и собира­ет весь экранный буфер (ввод и вывод).


  5. memdump — пла­гин для извле­чения всех резиден­тных стра­ниц памяти в про­цес­се.


  6. filescan — пла­гин для поис­ка объ­ектов FILE_OBJECT в памяти с помощью ска­ниро­вания тегов пула. Дан­ный пла­гин най­дет все откры­тые фай­лы.


  7. dumpfiles — пла­гин для извле­чения кеширо­ван­ных фай­лов из обра­за памяти.


  8. printkey — пла­гин для поис­ка зна­чений в ука­зан­ном раз­деле реес­тра Windows.


  9. userassist — пла­гин для получе­ния информа­ции из клю­ча реес­тра UserAssist.


  10. mftparser — этот пла­гин ска­ниру­ет записи глав­ной таб­лицы фай­лов (MFT) в памяти и выводит информа­цию о вре­мен­ных мет­ках фай­лов.


  11. malfind — пла­гин для поис­ка скры­того или внед­ренно­го кода в память про­цес­сов.


  12. timeliner — пла­гин для соз­дания вре­мен­ной шка­лы событий опе­раци­онной сис­темы из раз­личных арте­фак­тов памяти.


  13. ldrmodules — пла­гин для поис­ка нес­вязан­ных биб­лиотек.


 

Исследование образа памяти


Преж­де чем ана­лизи­ровать арте­фак­ты в опе­ратив­ной памяти, получим про­филь опе­раци­онной сис­темы, а так­же пер­вичную информа­цию о компь­юте­ре. Для это­го исполь­зует­ся сле­дующая коман­да:


python2.7 vol.py -fCYBERDEF-567078-20230213-171333.raw imageinfo

Про­филь для Volatility2 иссле­дуемой машины — WinXPSP2x86. Получим пер­вичную информа­цию о сис­теме, имя компь­юте­ра и сетевой адрес. Для это­го вос­поль­зуем­ся пла­гином Printkey, с помощью которо­го выведем дан­ные из клю­чей реес­тра.


Уроки форензики. Ищем неизвестный вредонос и восстанавливаем данные из памяти - «Новости»
Имя компь­юте­ра

Имя компь­юте­ра иссле­дуемой сис­темы — CYBERDEF-567078. Получим сетевой адрес, для это­го необ­ходимо опре­делить иден­тифика­торы сетевых интерфей­сов.


Иден­тифика­торы сетевых интерфей­сов

Те­перь про­верим каж­дый сетевой интерфейс и получим сетевые нас­трой­ки машины.


IP-адрес сетево­го интерфей­са

Се­тевой адрес иссле­дуемой машины 192.168.8.195 выдан динами­чес­ки DHCP-сер­вером 192.168.8.1.


Прис­тупим к поис­ку вре­донос­ной активнос­ти. Нач­нем с ана­лиза про­цес­сов, для это­го вос­поль­зуем­ся пла­гина­ми pstree и pslist. Вывод работы пла­гинов сох­раним в фай­лы для удобс­тва даль­нейше­го иссле­дова­ния.


python2.7 vol.py -fc79-BE/CYBERDEF-567078-20230213-171333.raw --profile=WinXPSP2x86 pslist >pslist.txt
Спи­сок запущен­ных про­цес­сов

Ана­лизи­руя вывод пла­гина pslist, мож­но заметить, что на момент сня­тия обра­за памяти в сис­теме работа­ло 19 про­цес­сов. В стол­бце Exit ука­зано вре­мя завер­шения про­цес­сов, 6 про­цес­сов завер­шили свою работу.


Про­ана­лизи­руем про­цес­сы с помощью пла­гина pstree.


python2.7 vol.py -fc79-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 -fc79-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. Далее отсорти­руем дан­ные по дате и прис­тупим к ана­лизу.


Вре­мен­ная шка­ла событий

Перейти обратно к новости