Се­год­ня я рас­ска­жу, как извле­кать дан­ные из таб­лицы MFT, получать информа­цию из фай­лов Prefetch и монито­ра исполь­зования сис­темных ресур­сов (srum), а еще — ана­лизи­ровать фай­лы логов опе­раци­онной сис­темы. При иссле­дова­нии обра­за опе­ратив­ной памяти мы поз­накомим­ся с внут­ренним устрой­ством памяти Windows и най­дем арте­фак­ты, сви­детель­ству­ющие о ком­про­мета­ции сис­темы.

Рас­сле­дова­ние киберин­циден­тов — это очень увле­катель­ное занятие, тре­бующее опре­делен­ных зна­ний и навыков. Отто­чить их помога­ют спе­циаль­ные лабора­тор­ные работы, ими­тиру­ющие реаль­ные слу­чаи успешных атак зло­умыш­ленни­ков и взло­ма, с которы­ми встре­чают­ся на прак­тике спе­циалис­ты по информа­цион­ной безопас­ности. Сегод­ня мы раз­берем лабора­тор­ную работу Pwned-DC с ресур­са CyberDefenders.

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

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

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

 

Инструменты

  1. Ути­литы Eric Zimmerman: Registry Explorer, MFTECmd.
  2. Ути­литы Nirsoft: fulleventlogview, winprefetchview, browsinghistoryview, TurnOnTimesView.
  3. R-Studio — ути­лита для вос­ста­нов­ления дан­ных с дис­ка.
  4. Volatility Framework 2.6.1 — инс­тру­мент, реали­зован­ный на Python вер­сии 2 и пред­назна­чен­ный для извле­чения арте­фак­тов из образцов энер­гозави­симой памяти.
  5. PST-Extractor — инс­тру­мент для вос­ста­нов­ления PST-кон­тей­неров в EML.
  6. Scdbg — прог­рамма для ана­лиза shell-кода.
  7. Srum-dump — ути­лита для извле­чения информа­ции из базы дан­ных управле­ния исполь­зовани­ем сис­темных ресур­сов.
  8. FTK Imager — инс­тру­мент для ана­лиза и получе­ния обра­зов дис­ка.
  9. WinDBGx64 — ути­литы для ана­лиза ава­рий­ных дам­пов.
  10. 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:\Windows\System32\config), заг­рузим их в ути­литу Registry Explorer. Затем перехо­дим в раз­дел File -> Load hive и выбира­ем иссле­дуемый файл.

Что­бы получить информа­цию об опе­раци­онной сис­теме, перей­дем в ключ реес­тра SOFTWARE\Microsoft\Windows NT\CurrentVersion.

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

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

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

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

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

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

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

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

GUID диска С
GUID дис­ка С

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

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

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

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

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

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

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

От­филь­тру­ем логи по событию 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
История Firefox
Ис­тория Firefox

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

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

Работа Srum-dump утилиты
Ра­бота 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:\Users\labib\Desktop\20211119103954_BloodHound.zip., содер­жащий информа­цию об объ­ектах домена. Эта информа­ция собира­лась для ана­лиза в BloodHound.

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

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

MFTECmd.exe -f "C:\Users\DonNod\Downloads\AD-101\AD-E01\MFT" --csv "AD-101\AD-E01"

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

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

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

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

$DCC2$10240#0xMohammed#e7b8d19008520207ca8ef94680db0f28

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

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

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

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

Продолжение доступно только участникам

Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».

Присоединяйся к сообществу «Xakep.ru»!

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Подписаться
Уведомить о
2 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии