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

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


9-11-2022, 00:00. Автор: Сильва
Pwned-DC с ресур­са CyberDefenders.

По сце­нарию лабора­тор­ной работы про­изо­шел взлом Active Directory, зло­умыш­ленни­ки смог­ли зах­ватить кор­поратив­ный кон­трол­лер домена. Наша задача — про­вес­ти рас­сле­дова­ние инци­ден­та и узнать, как хакерам уда­лось про­ник­нуть в сеть. Для иссле­дова­ния у нас име­ется побито­вая копия сис­темно­го дис­ка ском­про­мети­рован­ной машины, опе­ратив­ной памяти, а так­же информа­ция об объ­ектах домена.


Читайте также - Готовое к применению гиперкалорическое гипернитрогенное энтеральное зондовое питание. В двух вариантах: с или без пищевых волокон, фрезубин вп 2 ккал по доступным ценам.

Заг­рузим файл об­разов и нач­нем их иссле­довать.


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


 

Инструменты



  1. Ути­литы Eric Zimmerman: Registry Explorer, MFTECmd.
  2. Ути­литы Nirsoft: fulleventlogview, winprefetchview, browsinghistoryview, TurnOnTimesView.
    R-Studio — ути­лита для вос­ста­нов­ления дан­ных с дис­ка.
    Volatility Framework 2.6.1 — инс­тру­мент, реали­зован­ный на Python вер­сии 2 и пред­назна­чен­ный для извле­чения арте­фак­тов из образцов энер­гозави­симой памяти.
    PST-Extractor — инс­тру­мент для вос­ста­нов­ления PST-кон­тей­неров в EML.
    Scdbg — прог­рамма для ана­лиза shell-кода.

  3. Srum-dump — ути­лита для извле­чения информа­ции из базы дан­ных управле­ния исполь­зовани­ем сис­темных ресур­сов.

  4. FTK Imager — инс­тру­мент для ана­лиза и получе­ния обра­зов дис­ка.

  5. WinDBGx64 — ути­литы для ана­лиза ава­рий­ных дам­пов.

  6. Olevba — инс­тру­мент для извле­чения и ана­лиза исходно­го кода мак­росов VBA из докумен­тов MS Office (OLE и OpenXML).

 

Плагины Volatility2 для извлечения данных




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


  2. Pstree поз­воля­ет прос­матри­вать спи­сок про­цес­сов в виде дерева.


  3. Memdump извле­кает все резиден­тные стра­ницы памяти в про­цес­се.


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


  5. Dumpfiles извле­кает кеширо­ван­ные фай­лы из обра­за памяти.


  6. Netscan ищет сетевые арте­фак­ты в 32- и 64-раз­рядных дам­пах памяти. Этот пла­гин находит конеч­ные точ­ки TCP, UDP, а так­же локаль­ные и уда­лен­ные IP-адре­са.


  7. Printkey ищет зна­чения в ука­зан­ном раз­деле реес­тра Windows.


  8. Userassist поз­воля­ет получить информа­цию из клю­ча реес­тра UserAssist.


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


  10. Autoruns — под­клю­чаемый пла­гин для поис­ка точек сох­ранения исполня­емых фай­лов в сис­теме. Для его под­клю­чения необ­ходимо добавить пла­гин в каталог plugins инс­тру­мен­та Volatility.


  11. Volshell — пла­гин для инте­рак­тивно­го изу­чения обра­за памяти, исполь­зует IPython.


  12. Procdump — пла­гин для получе­ния дам­па исполня­емо­го фай­ла.


  13. Hivelist — пла­гин для поис­ка вир­туаль­ных адре­сов кус­тов реес­тра.


 

Объекты домена


В архи­ве задания содер­жится файл 20211122102526.zip, который хра­нит информа­цию об объ­ектах домена. Заг­рузим его в BloodHound вер­сии 4.0.1.


Пе­рей­дем на вклад­ку Analysyis → Find Shotest Paths to Domain Admins и про­ана­лизи­руем корот­кий путь до ком­про­мета­ции кон­трол­лера домена.


Ко­рот­кий путь до адми­нис­тра­тора домена

За­дача зло­умыш­ленни­ка в сети орга­низа­ции — получить дос­туп к учет­ной записи поль­зовате­ля 0xMohammed, который вхо­дит в груп­пу Domain Admins.


 

Образ диска AD.E01


При­мон­тиру­ем файл побито­вой копии дис­ка AD.E01 и извле­чем из него необ­ходимые арте­фак­ты. Для это­го откро­ем ути­литу FTK Imager, перей­дем на вклад­ку File → Image Mounting. В поле Image File выберем образ AD.E01, а затем вве­дем ука­зан­ные ниже нас­трой­ки.


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

На­жима­ем Mount — иссле­дуемый образ дол­жен при­мон­тировать­ся к фай­ловой сис­теме.


По­лучим информа­цию из кус­тов реес­тра SYSTEM и SOFTWARE (C:WindowsSystem32config), заг­рузим их в ути­литу Registry Explorer. Затем перехо­дим в раз­дел File -> Load hive и выбира­ем иссле­дуемый файл.


Что­бы получить информа­цию об опе­раци­онной сис­теме, перей­дем в ключ реес­тра SOFTWAREMicrosoftWindows NTCurrentVersion.


Ин­форма­ция об опе­раци­онной сис­теме

Вер­сия опе­раци­онной сис­темы — Windows 10 Enterprise 2016 LTSB. Теперь прос­мотрим ключ реес­тра SYSTEMControlSet01ControlComputerNameComputerName и получим информа­цию об име­ни компь­юте­ра.


Имя компь­юте­ра

Имя компь­юте­ра: PC01.


Те­перь откро­ем ключ реес­тра SYSTEMControlSet001ServicesTcpipParametersInterfaces{ea202436-8a31-4cb6-9b59-5be0c2bc1692} и получим информа­цию о сетевых нас­трой­ках.


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

IP-адрес иссле­дуемо­го хос­та — 192.168.112.142.


По­лучим информа­цию о при­мон­тирован­ных дис­ках. Для это­го перей­дем в вет­ку реес­тра SYSTEMMountedDevices: нас инте­ресу­ет GUID дис­ка C.


GUID дис­ка С

Как вид­но из рисун­ка выше, GUID дис­ка C — fad905b3-fb35-4dbd-ab31-a44f022809d2, такую же информа­цию мож­но получить из логов сис­темы, прос­мотрев событие eventid 142 жур­нала Microsoft-Windows-Ntfs/Operational.


Те­перь най­дем пор­ты служб на PC01, для это­го перей­дем к фай­лу Windows/System32/drivers/etc/services.


Со­дер­жимое фай­ла services

Здесь мы можем уви­деть, что служ­ба Remote Man Server работа­ет на пор­те 9535. Про­ана­лизи­руем файл System.evtx и най­дем отметку вре­мени, ког­да про­изош­ло незап­ланиро­ван­ное отклю­чение, а так­же узна­ем, сколь­ко вре­мени про­рабо­тал компь­ютер. Для это­го мож­но вос­поль­зовать­ся ути­литой TurnOnTimesView, либо при­дет­ся ана­лизи­ровать лог вруч­ную.


Ре­зуль­тат работы ути­литы TurnOnTimesView

21.11.2021 питание машины незап­ланиро­ван­но отклю­чилось, до это­го компь­ютер про­рабо­тал 11 часов и 31 минуту (об этом говорит зна­чение 11:31).


Нач­нем ана­лизи­ровать логи. Для это­го откро­ем ути­литу fulleventlogview, наж­мем Choose Data Store → Load events from external folder with log files и ука­жем путь к пап­ке с логами WindowsSystem32winevtLogs.


От­филь­тру­ем логи по событию 4624 и пос­мотрим, кто авто­ризо­вывал­ся в сис­теме пос­ледний раз перед инци­ден­том. Для это­го перехо­дим на вклад­ку Options → Advanced Options, выбира­ем Show only the specified events IDs и вво­дим наше событие.


23.11.2021 в 23:36:05 UTC поль­зователь 0xMohammed авто­ризо­вал­ся в сис­теме — это был пос­ледний зарегис­три­рован­ный логин перед взло­мом.


Пос­ледний авто­ризо­ван­ный поль­зователь в сис­теме

Про­ана­лизи­руем исто­рию бра­узе­ра Firefox поль­зовате­ля labib. Для это­го вос­поль­зуем­ся ути­литой BrowsingHistoryView: перей­дем на вклад­ку Options → Advanced Options и ука­жем путь до поль­зователь­ско­го катало­га.


По­луче­ние исто­рии из бра­узе­ра Firefox
Ис­тория Firefox

Поль­зователь labib 22.11.2021 в 19:45:52 UTC посетил сайт bluedemy.cyberdefenders.org.


Про­ана­лизи­руем базу дан­ных управле­ния исполь­зовани­ем сис­темных ресур­сов (srum), которая при­сутс­тву­ет в сов­ремен­ных сис­темах Windows и собира­ет ста­тис­тику выпол­нения дво­ичных фай­лов. Эта база хра­нит­ся в фай­ле C:WindowsSystem32sruRUDB.dat. С исполь­зовани­ем ути­литы srum-dump про­ана­лизи­руем srum и най­дем, сколь­ко бай­тов было при­нято бра­узе­ром Firefox.


Ра­бота Srum-dump ути­литы

Не забыва­ем так­же ука­зать файл SRUM_TEMPLATE.xlsx, который заг­ружа­ем из репози­тория ути­литы.


От­кры­ваем выход­ной файл SRUM_DUMP_OUTPUT.xlsx, перехо­дим на лист Network Data Usage, находим firefox.exe и ана­лизи­руем таб­лицу. Количес­тво получен­ных дан­ных — 20418287.


Те­перь пос­мотрим, какие пос­ледние фай­лы запус­кал поль­зователь labib. Перехо­дим по пути С/Users/labib/AppData/Roaming/Microsoft/Windows/Recent/ и в этом катало­ге находим файл 20211119103954_BloodHound.lnk, соз­данный 19.11.2021.


В ссыл­ке на файл ука­зан путь к архи­ву C:UserslabibDesktop20211119103954_BloodHound.zip., содер­жащий информа­цию об объ­ектах домена. Эта информа­ция собира­лась для ана­лиза в BloodHound.


Про­ана­лизи­руем MFT с помощью ути­литы MFTECmd. Из кор­ня фай­ловой сис­темы извле­чем файл $MFT, это мож­но сде­лать с помощью R-Studio или FTKImager.


В катало­ге Users/labib/Desktop соз­дан файл Business.xlsx с мет­кой вре­мени 22.11.2021 22:40:06, этот файл содер­жит информа­цию о поль­зовате­лях домена и их деятель­нос­ти в ком­пании. Най­дем ука­зан­ный файл в таб­лице MFT:


В фай­ле вывода ути­литы MFTECmd обна­ружи­ваем Business.xlsx и его поле LogfileSequenceNumber, которое име­ет зна­чение 1422361276.


Поп­робу­ем получить пароль поль­зовате­ля 0xMohammed, который вхо­дит в груп­пу адми­нис­тра­торов домена. Выг­рузим вет­ки реес­тра SAMSYSTEMSECURITY и вытащим из них хеши поль­зовате­лей. Для это­го вос­поль­зуем­ся скрип­том secretdum.py из пакета Impacket.


Выг­ружен­ные аутен­тифика­цион­ные дан­ные из веток реес­тра

На хос­те PC01 авто­ризо­вывал­ся домен­ный поль­зователь 0xMohammed, его дан­ные сох­ранены в кеше. С помощью ути­литы hashcat сбру­тим mccache2 хеша поль­зовате­ля 0xMohammed:


В резуль­тате этой опе­рации выяс­няет­ся, что его пароль — 0xmohammed!.


Те­перь попыта­емся узнать, как зло­умыш­ленник ском­про­мети­ровал хост PC01. Ана­лизи­руя фай­лы, в катало­ге C:UserslabibDocumentsOutlook FilesOutlook.pst поль­зовате­ля labib мы обна­ружи­ваем поч­товый кон­тей­нер Outlook. Пре­обра­зуем кон­тей­нер в eml-сооб­щения, для это­го откро­ем ути­литу PST-Xtracrot, заг­рузим в нее кон­тей­нер и наж­мем Convert. Пос­ле это­го мож­но про­ана­лизи­ровать все сооб­щения анти­вирус­ными средс­тва­ми, что­бы поис­кать вре­донос­ные вло­жения.


Со­дер­жимое пись­ма
За­голо­вок вре­донос­ного пись­ма

Сре­ди сооб­щений поль­зовате­ля мы обна­ружи­ваем вре­донос­ное вло­жение. Сооб­щение отправ­лено 12/08/2021 04:47:49 AM UTC с поч­тового сер­вера 159.65.58.195. В качес­тве вло­жения исполь­зует­ся файл Unpaid Invoice.xls. Выяс­ним, ког­да поль­зователь открыл этот файл.



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