Имитация Mitre-атак с использованием Atomic Test Harnesses

363193cf7caa9911088edcf2cdfed6e7.png

Введение

Мы хотели бы поделиться опытом имитации атак 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

  1. Установка из галереи PowerShell

Для большинства пользователей установка AtomicTestHarnesses из PowerShell Gallery является наиболее простым методом.

Откройте PowerShell и выполните следующую команду:

Install-Module -Name AtomicTestHarnesses -Scope CurrentUser
  1. Установка как автоматически загружаемого модуля

Для автоматической загрузки AtomicTestHarnesses загрузите репозиторий с GitHub и поместите его в каталог модулей. По умолчанию существует несколько каталогов модулей, каждый со своей областью действия и разрешениями. Например, чтобы сделать AtomicTestHarnesses доступным для всех пользователей, скопируйте AtomicTestHarnessesв %ProgramFiles%\WindowsPowerShell\Modules.

Просмотреть список доступных каталогов можно, выполнив следующую команду:

(Get-Item Env:\PSModulePath).Value.Split(';')
  1. Установка как явный импорт

Чтобы явно импортировать 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

072a9239d8beed48e2b86d2b2eea558d.png

Чтобы узнать больше о конкретной функции, выполните команду:

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

Результат исполнения теста

80d2259e0c9302262ae18a732083f482.png

Результаты детектирования с применением wazuh

e6289fdfb6c80728b048924cb6a4554f.png51a336aea04fe2650479b7d85d810310.png

Выводы

AtomicTestHarnesses очень простой в применении инструмент для проверки имеющихся систем безопасности, который позволяет быстро убедиться в качестве детекта имеющейся системы мониторинга событий кибербезопасности.

© Habrahabr.ru