Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Сегодня мы поговорим об основных артефактах Windows, которые помогают исследователю обнаружить вектор компрометации, признаки бокового перемещения по сети и закрепления в системе, а также разберем тонкости работы с инструментами для анализа этих артефактов.
Итак, представим, что мы получили от клиента жесткий диск, содержащий следы хакерской атаки. Известно, что система работала на Windows. Наша цель — собрать артефакты для дальнейшего анализа.
Я буду использовать следующие средства:
Получить дамп диска просто: загружаемся с Live-образа Kali Linux в режиме Forensics и используем утилиту dd
. Либо можно вытащить диск из системника, подключить к аппаратному блокиратору и снять образ с помощью инструментов R-Studio, FTK Imager, Encase или им подобных. Иногда достаточно на живой системе запустить портабельные утилиты и получить образ диска либо использовать сборщики Kape или FastIR Collector, которые соберут артефакты в автоматическом режиме.
В R-Studio получение образа будет выглядеть так. Запускаем утилиту, выбираем диск и переходим на вкладку «Создать образ».
Создание образа диска
Сжатый образ сканирует только занятые участки памяти и копирует их, а если выбрать несжатый образ — получится полная копия диска. При восстановлении удаленных файлов лучше использовать несжатый образ.
Первым делом монтируем образ диска. Для этого хороша утилита Mount Image Pro, либо можешь глянуть FTK Imager.
Монтирование в FTK
Нажимаем на значок Image Mounting, указываем путь к файлу образа, в Mount Method выбираем монтирование на запись.
Монтирование образа
Далее нажимаем Mount, и диск появится в файловой системе.
Теперь можно исследовать файлы в ручном режиме. Лучше всего воспользоваться утилитой R-Studio, которая позволяет сканировать диск на предмет удаленных файлов, а также сортировать все файлы по датам создания либо по расширению.
Содержимое R-Studio
Прежде чем анализировать артефакты, полезно проверить, нет ли в файловой системе подозрительных файлов. Сканировать можно утилитой Loki Scanner, которая умеет определять многие индикаторы компрометации. Она ищет по именам файлов, хеш‑суммам, а в случае надобности в ход идут и правила Yara.
.loki.exe -p D: -l log
Баннер Loki Scanner
Еще можно воспользоваться портабельными антивирусными утилитами. Например:
Этот этап помогает исследователю обнаружить подозрительные файлы, от которых можно оттолкнуться при расследовании инцидента и искать пути проникновения в систему.
Перед началом исследования нужно собрать первичную информацию о системе. Для этого восстановим ветки реестра SOFTWARE
и SYSTEM
, чтобы получить из них следующие ключи:
ControlSet001ControlTimeZoneInformation
— информация об установленной временной зоне; ControlSet001ControlComputerNameComputerName
— имена компьютера; ControlSet001ServicesTcpipParametersInterfaces
— информация об идентификаторах сетевых интерфейсов, в которых указываются сетевые настройки, а в ключе ControlSet001ServicesTcpipParameters
можно обнаружить имя домена; MicrosoftWindows NTCurrentVersion
— информация об операционной системе: версия, сборка и другое; MicrosoftWindowsCurrentVersionUninstall
— список установленных программ; SAMDomainsAccountUsers
— информация о локальных пользователях системы. Чтобы автоматизировать процесс, добрые люди уже написали полезный скриптик на Python — python-registry. В каталоге samples
ты найдешь скрипт system_info.py
, который анализирует перечисленные ключи. Нужно будет только немного его подредактировать: добавить код, который перед каждым доступом к ключу будет считывать выгруженные тобой ветки.
Если при сканировании файловой системы не удалось обнаружить вредоносный файл, то имеет смысл начинать исследование с поиска мест закрепления вредоноса в системе.
Для этого предназначена утилита Autoruns. Запускай, открывай вкладку File → Analyze Offline System и выбирай путь к системному диску (который мы примонтировали раньше). Также нужно задать путь до конкретного пользователя.
Утилита показывает множество основных путей закрепления, но при анализе примонтированного образа легко пропустить многие моменты. Давай пройдемся по основным путям закрепления вредоноса в системе и инструментам, которые помогут собрать дополнительные сведения.
Системные кусты реестра хранятся в каталоге C:WindowsSystem32config
, пользовательские NTUSER.DAT
— в каталоге C:Users<User>AppData
.
WMI (Windows Management Instrumentation) — набор инструментов, предназначенных для управления системами Windows. WMI популярен среди злоумышленников, поскольку позволяет выполнять разведку в сети, обнаруживать антивирусы и виртуальные машины, выполнять произвольный код, сохранять свое присутствие в системе, а также перемещаться по корпоративной сети.
В определениях WMI действия называются потребителями (Consumers), а события — фильтрами (Filters). Существует также третий компонент, который связывает их вместе, — привязка (Binding). Злоумышленник создает три класса:
__EventFilter
— некий фильтр действий в системе, к примеру вход пользователя или создание процесса; __EventConsumer
— действие, которое выполняет злоумышленник, к примеру запуск полезной нагрузки; __FilterToConsumerBinding
— объект, который связывает эти два класса. Чтобы закрепиться этим методом, злоумышленники используют утилиту, которая умеет взаимодействовать с WMI (wmic.exe
). Чтобы понять, происходило ли что‑то такое, нам нужно проанализировать следующий файл:
C:WindowsSystem32wbemRepositoryOBJECTS.DATA
Наша цель — найти классы __FilterToConsumerBinding
, а затем по имени __EventConsumer
найти все действия. Сделать это можно в любом двоичном редакторе. Вбивай в поиске класс связывания фильтра и действия — __FilterToConsumerBinding
. Есть и готовый инструмент, который сделает всю работу за тебя, он называется PyWMIPersistenceFinder.py. Я уже показывал, как с его помощью обнаруживать закрепление, когда разбирал лабораторию CyberCorpCase 1.
Чтобы задетектить эту технику закрепления, нам с тобой нужно проанализировать кусты реестра SOFTWARE
и NTUSER.DAT
.
В кусте SOFTWARE
смотрим следующие ключи, отвечающие за присутствие в ОС от имени системы или админа:
MicrosoftWindowsCurrentVersionRun
; MicrosoftWindowsCurrentVersionRunOnce
; MicrosoftWindowsCurrentVersionRunServices
; MicrosoftWindowsCurrentVersionRunServicesOnce
; MicrosoftWindows NTCurrentVersionWinlogonUserinit
; MicrosoftWindows NTCurrentVersionWinlogonShell
; MicrosoftWindowsCurrentVersionExplorerShell Folders
. Не забываем глянуть те же ключи в кусте реестра NTUSER.DAT:SOFTWARE
— чтобы понять, не было ли закрепления с правами пользователя.
Копаться в реестре я рекомендую с помощью RegistryExplorer. Обрати внимание на путь к исполняемому файлу и на временные метки ключа реестра.
А вот сюда стоит заглянуть в поисках вредоносных исполняемых файлов:
C:Users<User>AppDataRoamingMicrosoftWindowsStart MenuProgramsStartup
Вредоносы, лежащие в такой папке, будут стартовать автоматически и приниматься пакостить сразу после загрузки. Также обращай внимание на файлы .lnk, в них иногда прячутся команды PowerShell или CMD.
За автоматическое выполнение скриптов при входе в систему отвечает куст реестра NTUSER.DAT
, точнее, ключ EnvironmentUserInitMprLogonScript
, где перечисляются исполняемые файлы. К примеру, APT-группа XDSpy записывала сюда адрес вредоносного файла, сохраненного в AppDataLocalTemp
.
Закрепление вредоносного исполняемого файла
Злоумышленники могут использовать неправильные разрешения на ключи реестра той или иной службы, чтобы выполнять полезные нагрузки.
Источник: xakep.ru