РАЗБОР Статья

GPO как оружие: атака через групповые политики AD

Сергей Попов
Сергей Попов Red Team · 6,6 тыс. сообщений
Подписаться
209
[ обложка статьи ]
Режим чтения
Макросъёмка печатной платы сетевой карты контроллера домена: тонкие дорожки и микросхемы под янтарной подсветкой, на текстолите лазером выгравирована надпись об атаке через GPO. Один из чипов свети...


Один объект групповой политики с именем PAYLOAD. Привязка к корню домена. Ни одного исполняемого файла шифровальщика на диске. EDR молчит. Бэкапы в порядке. Шифрования нет. Но записки с требованием выкупа - на каждой рабочей станции домена, локальные учётки администратора отключены, а эксфильтрированные данные уже в даркнете. Вся атака прошла внутри Active Directory - через доверенный канал групповых политик. Это не выдуманный сценарий - это обобщение реальных инцидентов из публичных IR-отчётов.

И это не аномалия. По данным CrowdStrike Global Threat Report 2025, 75% вторжений в 2024 году задействовали действительные учётные данные (T1078, Valid Accounts). IBM X-Force фиксирует рост атак с легитимными credentials на 71% год к году. Статистика описывает общий тренд, а не конкретно GPO-вектор, но она объясняет предпосылку: получив привилегии уровня Domain Admin, вымогательские группировки всё чаще выбирают GPO как канал массового распространения. Подписанный, доверенный, выполняемый с правами SYSTEM и почти невидимый для endpoint-стека.

Бизнес-логика атаки: зачем вымогателям групповые политики AD​

Прежде чем копать технику - разберёмся с мотивацией. Злоумышленник, получивший контроль над GPO на уровне корня домена, получает три вещи разом. Подробнее - в нашем руководстве по пентест active directory.

Масштаб воздействия. Один GPO, привязанный к корню домена, накрывает все компьютеры и всех пользователей. Вместо поэтапного lateral movement и ручного запуска шифровальщика на каждом хосте - одно действие с покрытием всей инфраструктуры. Группировка Sandworm (она же Seashell Blizzard, APT44 - MITRE ATT&CK G0034) распространила ransomware Prestige через GPO по всей сети менее чем за час, согласно публикации Microsoft от октября 2022 года [рекомендуется верификация по первоисточнику; атрибуция не верифицирована через использованную базу справочных данных].

Доверенный канал. Групповые политики обрабатываются системой как подписанный конфигурационный механизм с привилегиями SYSTEM. Большинство EDR-решений не инспектируют содержимое GPO на этапе применения - они заточены на анализ файлов и процессов. В сценарии PAYLOAD весь endpoint-стек обнаружения обойдён, потому что ни один вредоносный исполняемый файл не появляется на диске. Красиво? Красиво.

Устойчивость к стандартному реагированию. Очистка конечных устройств (reimaging) не устраняет вредоносный GPO. Пока объект существует в AD и привязан к OU, каждый gpupdate /force и каждая перезагрузка заново применят вредоносные настройки. Стандартный playbook с изоляцией хостов и восстановлением из бэкапа здесь не работает без параллельной очистки AD. SOC-команда, которая об этом не знает, будет бегать по кругу.

Для вымогателей это ещё и способ давления без шифрования. Сценарий PAYLOAD иллюстрирует модель "вымогательство без ransomware": данные эксфильтрованы, операционная деятельность нарушена через GPO, угроза эскалации - а восстановление из резервных копий не поможет, пока атакующий контролирует Active Directory. С точки зрения скомпрометированного хоста ситуация усугубляется тем, что все действия выглядят как штатное применение политики - нет аномальных процессов, нет подозрительных сетевых соединений. Чисто.

Разведка и захват GPO: kill chain изнутри​

1791770382381.webp

Атака через групповые политики Active Directory начинается с разведки. Атакующему нужно найти GPO, на которые у скомпрометированной учётной записи есть право записи. Ключевые разрешения - GenericWrite, WriteDacl, GenericAll, WriteProperty на объекте groupPolicyContainer.

На AD-пентестах после сбора данных SharpHound запускается Cypher-запрос в BloodHound:
Код:
MATCH p=(u)-[:GenericWrite|WriteDacl|GenericAll|WriteProperty]->(g:GPO)
RETURN p
Этот запрос визуализирует все пути от скомпрометированных пользователей к GPO с правом записи. В средах с историей в 10+ лет таких путей обычно находится от трёх до десятка: сервисные учётки с избыточными делегированиями, устаревшие миграционные аккаунты, членство в группе Group Policy Creator Owners в сочетании с правами gpLink на уровне домена. Каждый раз одно и то же - наследие миграций и "временных" решений, которые стали постоянными.

Дальше определяется scope: к каким OU привязан найденный GPO. Объект, привязанный к OU с контроллерами домена или ко всему домену, даёт максимальный радиус поражения. Вектором получения начальных привилегий для записи в GPO чаще всего служат: DCSync, Kerberoasting сервисных учётных записей, pass-the-hash и pass-the-ticket. В сценарии PAYLOAD вектором проникновения стала скомпрометированная учётная запись через FortiGate SSL VPN (T1133, External Remote Services) - типичный вектор из публичных IR-отчётов.

Для эксплуатации применяется SharpGPOAbuse - инструмент, позволяющий добавить immediate scheduled task в уязвимый GPO. Задача выполняется от имени NT AUTHORITY\SYSTEM на каждой машине в scope при следующем цикле обновления политик (по умолчанию - каждые 90 минут +-30 минут для рядовых компьютеров и каждые 5 минут для контроллеров домена). Альтернативный путь - размещение скрипта в SYSVOL и регистрация его как startup script через правку GptTmpl.inf.

В сценарии PAYLOAD атакующий использует механизм Group Policy Preferences (GPP) для копирования файлов с запиской о выкупе на рабочие столы, изменения обоев и экрана блокировки, отключения локального администратора - всё через штатные параметры GPP, без стороннего инструмента. Microsoft закрыла уязвимость cPassword в GPP патчем MS14-025, но сам механизм GPP как средство доставки конфигурации остаётся легитимным и активно эксплуатируемым вектором.

Реальные кампании: задокументированные TTPs распространения ransomware через GPO​

1791771069493.webp

Злоупотребление GPO ransomware-группировками - не теория. Ниже - задокументированные кампании с атрибуцией и указанием источников.

Sandworm / Seashell Blizzard / APT44 (MITRE ATT&CK G0034) - рассматривается большинством вендоров как единый актор, отслеживаемый под разными именами. Согласно общедоступным публикациям, провёл как минимум две кампании с GPO-вектором в октябре 2022 года:
  • Prestige (публикация Microsoft, 14.10.2022): атаки на организации в Украине и Польше. После получения Domain Admin группировка распространяла ransomware через ADMIN$ share и GPO. По данным Microsoft, охват всей сети занял менее часа. Wiper развёрнут через GPO с контроллера домена при помощи PowerShell-скриптов.
LockBit 3.0 (CISA advisory AA23-075A, март 2023 - согласно публикации CISA, аффилиаты предположительно модифицировали файлы GPO в SYSVOL, включая ScheduledTasks.xml, для массового запуска ransomware по сети.

BlackCat / ALPHV (публикация FBI, апрель 2022 - первоначальный доступ через украденные credentials, затем Windows Task Scheduler и вредоносные GPO для распространения шифровальщика.

Следующие кампании описаны в общедоступных публикациях Microsoft Security Blog:

STORM-0501 (публикация Microsoft, сентябрь 2024): скомпрометированные Domain Admin-аккаунты для распространения ransomware Embargo через GPO. Создавалась scheduled task "SysUpdate" для запуска ransomware на устройствах.

STORM-1084 / DEV-1084 (публикация Microsoft, апрель 2023): деструктивные атаки на гибридные среды. Отключение средств защиты через GPO, размещение ransomware в NETLOGON share, массовое выполнение через GPO-scheduled tasks.

Vanilla Tempest / DEV-0832 (публикация Microsoft, октябрь 2022): размещение payload в скрытых шарах (имена с $), распространение Zeppelin и BlackCat через GPO, приоритетно в секторе образования.

CrazyHunter (отчёт MOHW Тайваня, февраль 2025): атака на медицинское учреждение в Тайване. Ransomware, предположительно распространённый через GPO, по сообщениям зашифровал файлы и вывел из строя значительное число компьютеров.

PAYLOAD (гипотетический сценарий, основанный на обобщении публичных инцидентов): производственное предприятие, Ближний Восток. Вымогательство без шифрования - весь impact нанесён исключительно через GPO/GPP.

По данным ransomware.live, группировки семейства Storm остаются одними из наиболее активных, с жертвами в секторах manufacturing, healthcare и education. Трекер жертв фиксирует активность группировок, но не содержит информации о конкретных TTP - связь между этой активностью и использованием именно GPO-вектора - моё предположение на основе ранее задокументированных кампаний.

Detection GPO abuse: правила корреляции для SIEM​

1791771104504.webp

Стандартный endpoint-мониторинг в большинстве случаев не покрывает GPO-атаки. Нужен отдельный слой детектирования на уровне Active Directory и SYSVOL. Без него атаку обнаружат только постфактум - когда обои с запиской о выкупе уже на экранах.

Мониторинг изменений GPO через события каталога​

Основной источник - Event ID 5136 (A directory service object was modified) в журнале Security контроллеров домена. Чтобы он генерировался, нужно включить "Audit Directory Service Changes" в Advanced Audit Policy Configuration. Это базовое предусловие - без него вся дальнейшая detection-логика бесполезна.

Атрибуты для правил корреляции в SIEM:

Поле событияЧто искатьПочему это IOC
Object ClassgroupPolicyContainerФильтрация по GPO-объектам
AttributegPCFileSysPath, gPCMachineExtensionNames, versionNumberИзменение пути SYSVOL, расширений или версии
Subject AccountАккаунт вне change managementНесанкционированная модификация
Время событияНерабочие часы, выходныеАномальное окно изменений

Правило корреляции: резкий инкремент versionNumber GPO в сочетании с нетипичным modifiedBy-аккаунтом - надёжный индикатор несанкционированной модификации. Для установления источника полезно коррелировать Event ID 5136 с Event ID 4624 (An account was successfully logged on) по Logon ID - это покажет, откуда пришла сессия, изменившая GPO.

Event ID 5137 (A directory service object was created) фиксирует создание новых объектов каталога. Появление нового groupPolicyContainer от аккаунта вне утверждённого списка - алерт уровня high. Отдельно стоит следить за модификациями двух встроенных GPO: Default Domain Policy и Default Domain Controllers Policy. Их изменение в реальных средах происходит крайне редко, и любая модификация вне планового окна - аномалия.

Event ID 4719 (System Audit Policy was changed) - индикатор попыток отключить аудит. Атакующие используют это для сокрытия следов перед основной фазой атаки.

Аудит SYSVOL и файловых артефактов​

GPO-шаблоны хранятся в SYSVOL. Мониторинг файловых изменений в критичных директориях:
Код:
\\<domain>\SYSVOL\<domain>\Policies\{GPO-GUID}\Machine\Scripts\
\\<domain>\SYSVOL\<domain>\Policies\{GPO-GUID}\User\Scripts\
\\<domain>\SYSVOL\<domain>\Policies\{GPO-GUID}\Machine\Preferences\
Появление файлов .ps1, .bat, .vbs, .exe в этих путях вне согласованного окна обслуживания требует немедленного расследования. Sysmon с правилом FileCreate для путей [I]\SYSVOL\[/I]\Policies\[I]\Scripts\[/I] закрывает этот вектор. Отдельно стоит мониторить ScheduledTasks.xml в директориях GPO - через него LockBit и STORM-0501 регистрировали вредоносные scheduled tasks.

Проактивный аудит прав на GPO через BloodHound​

Реактивный мониторинг событий - необходимый минимум. Чтобы предотвратить атаку через групповые политики, нужен проактивный подход: регулярный аудит ACL на GPO-объектах. Периодический запуск SharpHound с анализом путей от пользователей до writable GPO (раз в две недели как baseline) позволяет выявить избыточные делегирования до того, как их найдёт атакующий. На практике после каждой миграции или создания сервисных аккаунтов появляются новые пути - и каждый из них потенциальный вектор для распространения ransomware через GPO.

Чеклист hardening: защита Active Directory от вымогателей через GPO​

📚 Часть контента скрыта. Этот материал доступен участникам сообщества с рангом One Level или выше
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме

На одном из проектов compromise assessment после инцидента с шифровальщиком мы обнаружили, что расширенный аудит DS Changes был включён только на одном из трёх контроллеров домена. Атакующий реплицировал вредоносный GPO через контроллер без аудита - в SIEM не попало ни одного события 5136. Два других DC генерировали только базовые события. Это не edge case - это типовая ошибка конфигурации, которую я вижу раз за разом. Пункт 3 - не рекомендация, а обязательное требование на всех DC без исключений.

Для российских организаций есть и правовой контекст: компрометация AD с эксфильтрацией персональных данных попадает под ст. 13.11 КоАП РФ с оборотными штрафами. Для субъектов КИИ - обязательства по уведомлению НКЦКИ в течение 24 часов. В сценарии PAYLOAD данные были эксфильтрованы и опубликованы в даркнете - юридические последствия идут параллельно техническому восстановлению и могут превышать его стоимость.

Когда разбираешь postmortem инцидентов с GPO-атаками за последние три года, бросается в глаза один и тот же паттерн: контроль над GPO получается не через zero-day и не через сложную цепочку эксплойтов. Вектор - украденные учётные данные, избыточные делегирования, отсутствие сегментации административных привилегий. По данным CrowdStrike, среднее время lateral movement в 2024 году - 62 минуты после initial access, рекорд - 51 секунда. У SOC-команды нет часов на реагирование. Единственный способ выиграть эту гонку - превентивно убрать пути до GPO: почистить ACL, ограничить делегирования, мониторить каждое изменение в реальном времени.

Моя позиция: многие SOC-команды, с которыми я сталкивался, закрывают endpoint и сеть, но AD-телеметрию - события 5136, 5137, изменения ACL, аномалии репликации - оставляют «на потом» или не собирают вовсе. Это системная слепая зона. Пока SIEM не получает полную картину из Active Directory, GPO-атаки вымогателей будут обнаруживаться на этапе "обои с запиской о выкупе на 500 рабочих станциях", а не на этапе "неизвестный аккаунт изменил versionNumber GPO в три часа ночи". Если в вашем SIEM нет правил на аномальные GPO-модификации - на codeby.net есть тред с готовым набором Sigma-правил для этого класса атак и разбором свежих кейсов с GPO-вектором.
Полезно

Комментарии

0