Введение

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

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

Get-Help -Name <function name> -Full

Методы атак

На момент публикации статьи было доступно 17 методов атак Mitre для Windows

T1003.001_DumpLSASS

Дампинг учетных данных ОС: память LSASS

T1055.002_PortableExecutableInjection

Внедрение процесса: внедрение переносимого исполняемого файла

T1055_ProcessInjection

Внедрение процесса

T1059.001_PowerShell

Интерпретатор команд и сценариев: PowerShell

T1078.003_ValidAccounts

Действительные учетные записи: Локальные учетные записи

T1112_ModifyRegistry

Изменение реестра

T1127.001_MSBuild

Доверенные утилиты разработки: MSbuild

T1134.001_TokenImpersonation

Манипуляция токенами доступа: подделка/кража токенов

T1134.002_CreateProcessWithToken

Манипуляция токеном доступа: создание процесса с токеном

T1134.004_ParentPIDSpoofing

Манипуляция токеном доступа: подмена родительского PID

T1204.002_MaliciousFile

Запуск пользователем: Вредоносный файл

T1218.001_CompiledHTMLFile

Выполнение системного двоичного файла: скомпилированный HTML-файл

T1218.005_Mshta

Выполнение системного двоичного файла: Mshta

T1218.007_Msiexec

Выполнение системного двоичного файла: Msiexec

T1218_SignedBinaryProxyExecution

Выполнение системного двоичного файла

T1543.003_WindowsService

Создание или изменение системного процесса: служба Windows

T1574.012_COR_PROFILER

Перехват потока выполнения программ: COR_PROFILER

Тестирование

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

Комментарии (1)


  1. def-hub-community Автор
    10.09.2024 08:49

    Велкам к нам в тг @defhubcommunity там много интересного и полезного про кибербезопасность.