Имитация Mitre-атак с использованием Atomic Test Harnesses
Введение
Мы хотели бы поделиться опытом имитации атак MITRE в системе Windows с использованием инструмента Atomic Test Harnesses.
Ключевые термины и определения:
Atomic Test Harnesses (далее по тексту — ATH) — это open-source библиотеке, которая состоит из модуля Powershell для запуска имитации атак на Windows, а также пакета Python для запуска на macOS и Linux.
Mitre Att&ck (Adversarial Tactics, Techniques & Common Knowledge — «тактики, техники и общеизвестные факты о злоумышленниках») — основанная на реальных наблюдениях база знаний компании Mitre, содержащая описание тактик, приемов и методов, используемых киберпреступниками.
Цель данного тестирования — имитировать реальные техники атак и проверить, что ожидаемая телеметрия появляется в процессе тестирования. В дополнение к публикации, на тестируемой машине мы установим агент мониторинга wazuh, чтобы проверить возможности системы wazuh детектирования этих угроз.
Подготовка среды
В качестве тестового стенда мы будем использовать виртуальную машину Windows Server 2022.
Установка AtomicTestHarnesses
Перед установкой AtomicTestHarnesses убедитесь:
PowerShell версии 5 или более поздней. Подробнее см. в разделе Установка PowerShell .
Разрешение на тестирование. Всегда спрашивайте разрешения владельца вашей среды перед выполнением теста.
Существует три способа установки AtomicTestHarnesses: из галереи PowerShell , из GitHub как автоматически загружаемый модуль или из GitHub как явный импорт.
Ссылка на AtomicTestHarnesses
Установка из галереи PowerShell
Для большинства пользователей установка AtomicTestHarnesses из PowerShell Gallery является наиболее простым методом.
Откройте PowerShell и выполните следующую команду:
Install-Module -Name AtomicTestHarnesses -Scope CurrentUser
Установка как автоматически загружаемого модуля
Для автоматической загрузки AtomicTestHarnesses загрузите репозиторий с GitHub и поместите его в каталог модулей. По умолчанию существует несколько каталогов модулей, каждый со своей областью действия и разрешениями. Например, чтобы сделать AtomicTestHarnesses доступным для всех пользователей, скопируйте AtomicTestHarnesses
в %ProgramFiles%\WindowsPowerShell\Modules
.
Просмотреть список доступных каталогов можно, выполнив следующую команду:
(Get-Item Env:\PSModulePath).Value.Split(';')
Установка как явный импорт
Чтобы явно импортировать AtomicTestHarnesses, загрузите репозиторий с GitHub и вызовите Import-Module
файл AtomicTestHarnesses.psd1
. Например:
Import-Module C:\Users\Test\Desktop\AtomicTestHarnesses\AtomicTestHarnesses.psd1
Распространенные проблемы при установе
Если вы загружаете AtomicTestHarnesses с GitHub, ваш компьютер может пометить модуль как ненадежный. Вы можете снять пометку с модуля, выполнив следующую команду:
Get-ChildItem -Path Path\To\AtomicTestHarnesses -Recurse | Unblock-File
Если вы явно импортируете AtomicTestHarnesses и на вашем компьютере установлена версия Pester 3.4.0, вам нужно будет вызвать ее Import-Module
с включенными флагами -SkipPublisherCheck
и -Force
. Например:
Import-Module C:\Users\Test\Desktop\AtomicTestHarnesses\AtomicTestHarnesses.psd1 -SkipPublisherCheck -Force
Список доступных функций
После установки модуля вы можете просмотреть список доступных функций, выполнив следующую команду:
Get-Command -Module AtomicTestHarnesses
Чтобы узнать больше о конкретной функции, выполните команду:
Get-Help -Name -Full
Методы атак
На момент публикации статьи было доступно 17 методов атак Mitre для Windows
Тестирование
Рассмотрим на примере последней техники T1574.012.
Злоумышленники могут использовать переменную среды COR_PROFILER для перехвата потока выполнения программ, загружающих .NET CLR.
COR_PROFILER — это функция .NET Framework, которая позволяет разработчикам указывать неуправляемую (или внешнюю по отношению к .NET) профилирующую DLL для загрузки в каждый процесс .NET, загружающий Common Language Runtime (CLR). Эти профилировщики предназначены для мониторинга, устранения неполадок и отладки управляемого кода, выполняемого .NET CLR.
Переменная среды COR_PROFILER может быть установлена в различных областях (система, пользователь или процесс), что приводит к разным уровням влияния. Системные и пользовательские области переменных среды указаны в реестре, где объект Component Object Model (COM) может быть зарегистрирован как DLL профилировщика. Область процесса COR_PROFILER также может быть создана в памяти без изменения реестра. Начиная с .NET Framework 4, профилирующая DLL не требует регистрации, если местоположение DLL указано в переменной среды COR_PROFILER_PATH.
Злоумышленники могут злоупотреблять COR_PROFILER для установления персистентности, которая выполняет вредоносную DLL в контексте всех процессов .NET каждый раз, когда вызывается CLR. COR_PROFILER также может использоваться для повышения привилегий (например, обхода контроля учетных записей пользователей ), если процесс жертвы .NET выполняется с более высоким уровнем разрешений, а также для перехвата и ослабления защиты , предоставляемой процессами .NET.
Примеры процедур
ID | Название | Описание |
G0108 | Blue Mockingbird | Blue Mockingbird использует wmic.exe и модификацию реестра Windows, чтобы задать переменную среды COR_PROFILER для выполнения вредоносной DLL каждый раз, когда процесс загружает .NET CLR. |
S1066 | DarkTortilla | DarkTortilla может обнаружить профилировщики, проверив наличие и активность переменной среды COR_ENABLE_PROFILING . |
Запуск
Для запуска выполним команду
Invoke-ATHCORProfiler
Результат исполнения теста
Результаты детектирования с применением wazuh
Выводы
AtomicTestHarnesses очень простой в применении инструмент для проверки имеющихся систем безопасности, который позволяет быстро убедиться в качестве детекта имеющейся системы мониторинга событий кибербезопасности.