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

BOOX

Стаж на ФС с 2012 года
Команда форума
Служба безопасности
Private Club
Регистрация
23/1/18
Сообщения
28.877
Репутация
11.595
Реакции
61.773
RUB
50
Сегодня мы расскажем, как извлекать данные из таблицы MFT, получать информацию из файлов Prefetch и монитора использования системных ресурсов (srum), а еще — анализировать файлы логов операционной системы.


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

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

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

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

ИНСТРУМЕНТЫ

  1. Утилиты : Registry Explorer, MFTECmd.
  2. Утилиты : fulleventlogview, winprefetchview, browsinghistoryview, TurnOnTimesView.
  3. — утилита для восстановления данных с диска.
  4. — инструмент, реализованный на Python версии 2 и предназначенный для извлечения артефактов из образов энергозависимой памяти.
  5. — инструмент для восстановления PST-контейнеров в EML.
  6. — программа для анализа shell-кода.
  7. — утилита для извлечения информации из базы данных управления использованием системных ресурсов.
  8. — инструмент для анализа и получения образов диска.
  9. — утилиты для анализа аварийных дампов.
  10. — инструмент для извлечения и анализа исходного кода макросов 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. — подключаемый плагин для поиска точек сохранения исполняемых файлов в системе. Для его подключения необходимо добавить плагин в каталог 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 диска 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 и укажем путь к папке с логами 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

Пользователь 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_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. После этого можно проанализировать все сообщения антивирусными средствами, чтобы поискать вредоносные вложения.


Содержимое письма


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


Продолжение далее...

 
  • Теги
    системный диск следы взлома уроки форензики
  • Сверху Снизу