Введение
Мы хотели бы поделиться опытом имитации атак 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 как явный импорт.
Установка из галереи 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 <function name> -Full
Методы атак
На момент публикации статьи было доступно 17 методов атак Mitre для Windows
T1003.001_DumpLSASS |
|
T1055.002_PortableExecutableInjection |
Внедрение процесса: внедрение переносимого исполняемого файла |
T1055_ProcessInjection |
|
T1059.001_PowerShell |
|
T1078.003_ValidAccounts |
|
T1112_ModifyRegistry |
|
T1127.001_MSBuild |
|
T1134.001_TokenImpersonation |
|
T1134.002_CreateProcessWithToken |
|
T1134.004_ParentPIDSpoofing |
|
T1204.002_MaliciousFile |
|
T1218.001_CompiledHTMLFile |
Выполнение системного двоичного файла: скомпилированный HTML-файл |
T1218.005_Mshta |
|
T1218.007_Msiexec |
|
T1218_SignedBinaryProxyExecution |
|
T1543.003_WindowsService |
|
T1574.012_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 использует wmic.exe и модификацию реестра Windows, чтобы задать переменную среды COR_PROFILER для выполнения вредоносной DLL каждый раз, когда процесс загружает .NET CLR. |
|
S1066 |
DarkTortilla может обнаружить профилировщики, проверив наличие и активность переменной среды COR_ENABLE_PROFILING . |
Запуск
Для запуска выполним команду
Invoke-ATHCORProfiler
Результат исполнения теста
Результаты детектирования с применением wazuh
Выводы
AtomicTestHarnesses очень простой в применении инструмент для проверки имеющихся систем безопасности, который позволяет быстро убедиться в качестве детекта имеющейся системы мониторинга событий кибербезопасности.
def-hub-community Автор
Велкам к нам в тг @defhubcommunity там много интересного и полезного про кибербезопасность.