Содержание статьи
- Получаем побитовую копию диска
- Монтируем образ
- Сканируем файловую систему
- Получаем основную информацию о системе
- Ищем закрепление в системе
- WMI Persistence (Т1546.003)
- Ключи запуска в реестре и папка автозагрузки (T1547.001)
- Сценарий входа в систему Windows (T1037.001)
- Службы Windows (T1574.011)
- Планировщик задач (T1053.005)
- Задания BITS (T1197)
- Собираем информацию об исполняемых программах
- Prefetch
- Amcache
- Shimcache
- UserAssist
- Извлекаем временные метки и делаем таймлайн событий
- Анализируем события Windows
- Действия пользователей
- Выводы
Итак, представим, что мы получили от клиента жесткий диск, содержащий следы хакерской атаки. Известно, что система работала на Windows. Наша цель — собрать артефакты для дальнейшего анализа.
Я буду использовать следующие средства:
- R-Studio — утилита для восстановления данных.
- FTK Imager — инструмент для анализа и получения образов диска.
- Утилиты NirSoft для Windows.
- Утилиты Eric Zimmerman для анализа артефактов Windows.
Получаем побитовую копию диска
Получить дамп диска просто: загружаемся с Live-образа Kali Linux в режиме Forensics и используем утилиту dd
. Либо можно вытащить диск из системника, подключить к аппаратному блокиратору и снять образ с помощью инструментов R-Studio, FTK Imager, Encase или им подобных. Иногда достаточно на живой системе запустить портабельные утилиты и получить образ диска либо использовать сборщики Kape или FastIR Collector, которые соберут артефакты в автоматическом режиме.
В R-Studio получение образа будет выглядеть так. Запускаем утилиту, выбираем диск и переходим на вкладку «Создать образ».
Сжатый образ сканирует только занятые участки памяти и копирует их, а если выбрать несжатый образ — получится полная копия диска. При восстановлении удаленных файлов лучше использовать несжатый образ.
Монтируем образ
Первым делом монтируем образ диска. Для этого хороша утилита Mount Image Pro, либо можешь глянуть FTK Imager.
Нажимаем на значок Image Mounting, указываем путь к файлу образа, в Mount Method выбираем монтирование на запись.
Далее нажимаем Mount, и диск появится в файловой системе.
Теперь можно исследовать файлы в ручном режиме. Лучше всего воспользоваться утилитой R-Studio, которая позволяет сканировать диск на предмет удаленных файлов, а также сортировать все файлы по датам создания либо по расширению.
Сканируем файловую систему
Прежде чем анализировать артефакты, полезно проверить, нет ли в файловой системе подозрительных файлов. Сканировать можно утилитой Loki Scanner, которая умеет определять многие индикаторы компрометации. Она ищет по именам файлов, хеш‑суммам, а в случае надобности в ход идут и правила Yara.
.\
Еще можно воспользоваться портабельными антивирусными утилитами. Например:
- KVRT — средство Kaspersky для поиска вредоносных файлов;
- CureIt — аналог, созданный в Dr.Web;
- Spyre — сканер индикаторов компрометации по правилам Yara.
Этот этап помогает исследователю обнаружить подозрительные файлы, от которых можно оттолкнуться при расследовании инцидента и искать пути проникновения в систему.
Получаем основную информацию о системе
Перед началом исследования нужно собрать первичную информацию о системе. Для этого восстановим ветки реестра SOFTWARE
и SYSTEM
, чтобы получить из них следующие ключи:
- SYSTEM:
ControlSet001\
— информация об установленной временной зоне;Control\ TimeZoneInformation - SYSTEM:
ControlSet001\
— имена компьютера;Control\ ComputerName\ ComputerName - SYSTEM:
ControlSet001\
— информация об идентификаторах сетевых интерфейсов, в которых указываются сетевые настройки, а в ключеServices\ Tcpip\ Parameters\ Interfaces ControlSet001\
можно обнаружить имя домена;Services\ Tcpip\ Parameters - SOFTWARE:
Microsoft\
— информация об операционной системе: версия, сборка и другое;Windows NT\ CurrentVersion - SOFTWARE:
Microsoft\
— список установленных программ;Windows\ CurrentVersion\ Uninstall - SAM:
SAM\
— информация о локальных пользователях системы.Domains\ Account\ Users
Чтобы автоматизировать процесс, добрые люди уже написали полезный скриптик на Python — python-registry. В каталоге samples
ты найдешь скрипт system_info.
, который анализирует перечисленные ключи. Нужно будет только немного его подредактировать: добавить код, который перед каждым доступом к ключу будет считывать выгруженные тобой ветки.
Ищем закрепление в системе
Если при сканировании файловой системы не удалось обнаружить вредоносный файл, то имеет смысл начинать исследование с поиска мест закрепления вредоноса в системе.
Для этого предназначена утилита Autoruns. Запускай, открывай вкладку File → Analyze Offline System и выбирай путь к системному диску (который мы примонтировали раньше). Также нужно задать путь до конкретного пользователя.
Утилита показывает множество основных путей закрепления, но при анализе примонтированного образа легко пропустить многие моменты. Давай пройдемся по основным путям закрепления вредоноса в системе и инструментам, которые помогут собрать дополнительные сведения.
Системные кусты реестра хранятся в каталоге C:\
, пользовательские NTUSER.
— в каталоге C:\
.
WMI Persistence (Т1546.003)
WMI (Windows Management Instrumentation) — набор инструментов, предназначенных для управления системами Windows. WMI популярен среди злоумышленников, поскольку позволяет выполнять разведку в сети, обнаруживать антивирусы и виртуальные машины, выполнять произвольный код, сохранять свое присутствие в системе, а также перемещаться по корпоративной сети.
В определениях WMI действия называются потребителями (Consumers), а события — фильтрами (Filters). Существует также третий компонент, который связывает их вместе, — привязка (Binding). Злоумышленник создает три класса:
-
__EventFilter
— некий фильтр действий в системе, к примеру вход пользователя или создание процесса; -
__EventConsumer
— действие, которое выполняет злоумышленник, к примеру запуск полезной нагрузки; -
__FilterToConsumerBinding
— объект, который связывает эти два класса.
Чтобы закрепиться этим методом, злоумышленники используют утилиту, которая умеет взаимодействовать с WMI (wmic.
). Чтобы понять, происходило ли что‑то такое, нам нужно проанализировать следующий файл:
C:\Windows\System32\wbem\Repository\OBJECTS.DATA
Наша цель — найти классы __FilterToConsumerBinding
, а затем по имени __EventConsumer
найти все действия. Сделать это можно в любом двоичном редакторе. Вбивай в поиске класс связывания фильтра и действия — __FilterToConsumerBinding
. Есть и готовый инструмент, который сделает всю работу за тебя, он называется PyWMIPersistenceFinder.py. Я уже показывал, как с его помощью обнаруживать закрепление, когда разбирал лабораторию CyberCorpCase 1.
Ключи запуска в реестре и папка автозагрузки (T1547.001)
Чтобы задетектить эту технику закрепления, нам с тобой нужно проанализировать кусты реестра SOFTWARE
и NTUSER.
.
В кусте SOFTWARE
смотрим следующие ключи, отвечающие за присутствие в ОС от имени системы или админа:
-
Microsoft\
;Windows\ CurrentVersion\ Run -
Microsoft\
;Windows\ CurrentVersion\ RunOnce -
Microsoft\
;Windows\ CurrentVersion\ RunServices -
Microsoft\
;Windows\ CurrentVersion\ RunServicesOnce -
Microsoft\
;Windows NT\ CurrentVersion\ Winlogon\ Userinit -
Microsoft\
;Windows NT\ CurrentVersion\ Winlogon\ Shell -
Microsoft\
.Windows\ CurrentVersion\ Explorer\ Shell Folders
Не забываем глянуть те же ключи в кусте реестра NTUSER.
— чтобы понять, не было ли закрепления с правами пользователя.
Копаться в реестре я рекомендую с помощью RegistryExplorer. Обрати внимание на путь к исполняемому файлу и на временные метки ключа реестра.
А вот сюда стоит заглянуть в поисках вредоносных исполняемых файлов:
C:\Users\<User>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
Вредоносы, лежащие в такой папке, будут стартовать автоматически и приниматься пакостить сразу после загрузки. Также обращай внимание на файлы .lnk, в них иногда прячутся команды PowerShell или CMD.
Сценарий входа в систему Windows (T1037.001)
За автоматическое выполнение скриптов при входе в систему отвечает куст реестра NTUSER.
, точнее, ключ Environment\
, где перечисляются исполняемые файлы. К примеру, APT-группа XDSpy записывала сюда адрес вредоносного файла, сохраненного в AppData\
.
Службы Windows (T1574.011)
Злоумышленники могут использовать неправильные разрешения на ключи реестра той или иной службы, чтобы выполнять полезные нагрузки.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»