Event Triggered Execution: Windows Management Instrumentation Event Subscription

Adversaries may establish persistence and elevate privileges by executing malicious content triggered by a Windows Management Instrumentation (WMI) event subscription. WMI can be used to install event filters, providers, consumers, and bindings that execute code when a defined event occurs. Examples of events that may be subscribed to are the wall clock time, user loging, or the computer's uptime. [1]

Adversaries may use the capabilities of WMI to subscribe to an event and execute arbitrary code when that event occurs, providing persistence on a system. [2] [3] Adversaries may also compile WMI scripts into Windows Management Object (MOF) files (.mof extension) that can be used to create a malicious subscription. [4] [5]

WMI subscription execution is proxied by the WMI Provider Host process (WmiPrvSe.exe) and thus may result in elevated SYSTEM privileges.

ID: T1546.003
Sub-technique of:  T1546
Platforms: Windows
Permissions Required: Administrator, SYSTEM
Contributors: Brent Murphy, Elastic; David French, Elastic
Version: 1.2
Created: 24 January 2020
Last Modified: 16 October 2021
Provided by LAYER 8

Procedure Examples

ID Name Description
S0202 adbupd

adbupd can use a WMI script to achieve persistence.[6]

G0016 APT29

APT29 has used WMI event subscriptions for persistence.[7][8][9][10]

G0064 APT33

APT33 has attempted to use WMI event subscriptions to establish persistence on compromised hosts.[11]

G0108 Blue Mockingbird

Blue Mockingbird has used mofcomp.exe to establish WMI Event Subscription persistence mechanisms configured from a *.mof file.[12]

G0061 FIN8

FIN8 has used WMI event subscriptions for persistence.[13]

G0065 Leviathan

Leviathan has used WMI for persistence.[14]

G0129 Mustang Panda

Mustang Panda's custom ORat tool uses a WMI event consumer to maintain persistence.[15]

S0378 PoshC2

PoshC2 has the ability to persist on a system using WMI events.[16]

S0150 POSHSPY

POSHSPY uses a WMI event subscription to establish persistence.[17]

S0371 POWERTON

POWERTON can use WMI for persistence.[18]

S0511 RegDuke

RegDuke can persist using a WMI consumer that is launched every time a process named WINWORD.EXE is started.[8]

S0053 SeaDuke

SeaDuke uses an event filter in WMI code to execute a previously dropped executable shortly after system startup.[3]

G0010 Turla

Turla has used WMI event filters and consumers to establish persistence.[19]

Mitigations

ID Mitigation Description
M1040 Behavior Prevention on Endpoint

On Windows 10, enable Attack Surface Reduction (ASR) rules to prevent malware from abusing WMI to attain persistence.[20]

M1026 Privileged Account Management

Prevent credential overlap across systems of administrator and privileged accounts.[3]

M1018 User Account Management

By default, only administrators are allowed to connect remotely using WMI; restrict other users that are allowed to connect, or disallow all users from connecting remotely to WMI.

Detection

ID Data Source Data Component
DS0017 Command Command Execution
DS0009 Process Process Creation
DS0005 WMI WMI Creation

Monitor WMI event subscription entries, comparing current WMI event subscriptions to known good subscriptions for each host. Tools such as Sysinternals Autoruns may also be used to detect WMI changes that could be attempts at persistence. [21] [22] Monitor for the creation of new WMI EventFilter, EventConsumer, and FilterToConsumerBinding events. Event ID 5861 is logged on Windows 10 systems when new EventFilterToConsumerBinding events are created.[23]

Monitor processes and command-line arguments that can be used to register WMI persistence, such as the Register-WmiEvent PowerShell cmdlet [24], as well as those that result from the execution of subscriptions (i.e. spawning from the WmiPrvSe.exe WMI Provider Host process).

References