Закрепление в Windows через WMI-подписки: техника и детект

📋 Кратко

WMI-подписки — мощный механизм Windows, который злоумышленники активно используют для скрытного закрепления в системе. Техника основана на создании постоянных триггеров, запускающих вредоносный код при наступлении определённых событий (вход пользователя, запуск процесса, изменение реестра). В статье разбирается архитектура WMI-подписок, приводятся реальные примеры из арсенала APT-групп и даются практические методы обнаружения через Event ID 5861, Sysmon и аудит WMI-активности.

⏱ 3 минуты чтениясложность

Windows Management Instrumentation (WMI) — встроенный компонент операционной системы, предназначенный для управления и мониторинга. Однако его функциональность, в частности механизм подписок на события, давно перешла в разряд излюбленных инструментов злоумышленников. С помощью WMI-подписок атакующие могут обеспечить себе практически незаметное закрепление в системе, которое не оставляет традиционных следов в автозагрузке или реестре. Техника настолько эффективна, что её используют даже самые продвинутые APT-группировки.

Теневая фигура в серверной среди цифрового дождя
Теневая фигура в серверной среди цифрового дождя

🔍 Как работают WMI-подписки

WMI-подписка строится на трёх ключевых компонентах:

Три голографических компонента WMI-подписки в киберпространстве
Три голографических компонента WMI-подписки в киберпространстве
  • __EventFilter — фильтр, который определяет условие срабатывания (например, запуск определённого процесса, создание файла, событие в журнале).
  • __EventConsumer — потребитель, задающий действие при выполнении условия (запуск скрипта, исполняемого файла, запись в лог).
  • __FilterToConsumerBinding — связка, которая соединяет фильтр и потребителя, делая подписку активной.

Все эти объекты хранятся в репозитории WMI (\%SystemRoot%\System32\wbem\Repository) и не видны при обычной проверке автозагрузки. Подписка может быть создана удалённо, что делает технику особенно опасной в корпоративных сетях.

Важно: WMI-подписки выполняются в контексте системной учётной записи (SYSTEM), что даёт злоумышленнику максимальные привилегии. При этом подписка не создаёт процессов, видимых в стандартных средствах мониторинга, — код выполняется внутри WMI Provider Host (WmiPrvSE.exe).

🛠️ Пример злонамеренной подписки

Злоумышленник может создать подписку, которая срабатывает при каждом входе любого пользователя в систему. Для этого используется событие __InstanceCreationEvent в классе Win32_LogonSession. Ниже приведён пример команды PowerShell, создающей такую подписку:

Кибернетическая рука запускает вредоносный код через терминал
Кибернетическая рука запускает вредоносный код через терминал
$filter = Set-WmiInstance -Namespace root\subscription -Class __EventFilter -Arguments @{
    Name='PersistentBackdoor';
    EventNameSpace='root\cimv2';
    QueryLanguage='WQL';
    Query="SELECT * FROM __InstanceCreationEvent WITHIN 15 WHERE TargetInstance ISA 'Win32_LogonSession'"
}
$consumer = Set-WmiInstance -Namespace root\subscription -Class CommandLineEventConsumer -Arguments @{
    Name='RunPayload';
    CommandLineTemplate='powershell.exe -EncodedCommand <base64>';
    RunInteractively=$false
}
Set-WmiInstance -Namespace root\subscription -Class __FilterToConsumerBinding -Arguments @{
    Filter=$filter;
    Consumer=$consumer
}

После выполнения этой команды при каждой новой сессии входа будет запускаться закодированный PowerShell-скрипт, который может, например, установить обратное соединение с C2-сервером.

🎯 Как злоумышленники используют WMI для закрепления

Техника WMI-подписок активно применяется в кампаниях различных APT-групп. Например, группировка APT29 (Cozy Bear) использовала WMI-подписки для поддержания доступа к скомпрометированным системам после первоначального взлома. Другой известный случай — Emotet на поздних стадиях заражения создавал WMI-подписки для запуска своих модулей.

Цифровой призрак APT-группировки проникает сквозь стены корпорации
Цифровой призрак APT-группировки проникает сквозь стены корпорации

Злоумышленники ценят WMI-подписки за их скрытность: подписка не отображается в списке запущенных процессов, не создаёт записей в реестре (за исключением косвенных), а её удаление без знания точного имени фильтра требует специальных инструментов. Кроме того, подписки могут быть настроены на срабатывание с задержкой, что затрудняет корреляцию событий.

Индикаторы компрометации (IoC):
  • Необычные WMI-объекты в пространстве имён root\subscription (особенно CommandLineEventConsumer с подозрительными командами).
  • Аномальная активность процесса WmiPrvSE.exe, запускающего дочерние процессы (например, powershell.exe).
  • События Windows с ID 5861 (создание или изменение фильтра/потребителя) от неизвестных источников.

🔬 Обнаружение WMI-подписок

Для выявления злонамеренных WMI-подписок необходимо настроить сбор следующих событий:

Аналитик SOC отслеживает аномальные WMI-события на мониторах
Аналитик SOC отслеживает аномальные WMI-события на мониторах
  • Event ID 5861 — создание, изменение или удаление объектов WMI (фильтров, потребителей, связок). Включается через аудит WMI-активности в групповых политиках.
  • Event ID 5859 и 5860 — успешное и неуспешное выполнение WMI-запросов.
  • Sysmon Event ID 19–21 — мониторинг WMI-событий (требуется включить в конфигурации Sysmon).

Кроме того, полезно анализировать сетевые соединения процесса WmiPrvSE.exe — если он инициирует исходящие подключения, это почти наверняка признак компрометации. Рекомендуется также периодически инвентаризировать WMI-репозиторий с помощью скриптов PowerShell, проверяя все подписки на предмет легитимности.

🛡️ Методы защиты и блокировки

Полное отключение WMI невозможно — оно необходимо для работы многих системных компонентов. Однако можно принять следующие меры:

Энергетический щит и цифровой замок защищают город от угроз
Энергетический щит и цифровой замок защищают город от угроз
  • Ограничение прав на создание WMI-подписок — через групповые политики или ACL на пространство имён root\subscription разрешить доступ только доверенным администраторам.
  • Использование AppLocker или WDAC для блокировки запуска неподписанных скриптов и исполняемых файлов из WMI-потребителей.
  • Мониторинг изменений в WMI-репозитории с помощью SIEM-систем и корреляции событий 5861 с учётными записями.
  • Применение правил Windows Defender Firewall для блокировки исходящих соединений от WmiPrvSE.exe, кроме разрешённых.

Важно помнить, что WMI-подписки могут быть созданы удалённо через протокол DCOM. Поэтому рекомендуется ограничить сетевой доступ к WMI (порты 135, 445, динамические RPC-порты) только для доверенных административных хостов.

Закрепление через WMI-подписки — одна из самых коварных техник, с которой сталкиваются специалисты по безопасности. Её обнаружение требует проактивного подхода: настройки аудита, использования EDR-решений и регулярной охоты за угрозами (Threat Hunting). Игнорирование этого вектора оставляет злоумышленникам «чёрный ход», который может оставаться незамеченным годами.

📚 Читайте также

📖 Термины

SIEM · SOC · Threat Hunting · Бэкдор · Индикаторы компрометации (IoC)

🔗 Источники