The sub-techniques beta is now live! Read the release blog post for more info.

Windows Management Instrumentation Event Subscription

Windows Management Instrumentation (WMI) can be used to install event filters, providers, consumers, and bindings that execute code when a defined event occurs. 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. Adversaries may attempt to evade detection of this technique by compiling WMI scripts into Windows Management Object (MOF) files (.mof extension). [1] Examples of events that may be subscribed to are the wall clock time or the computer's uptime. [2] Several threat groups have reportedly used this technique to maintain persistence. [3]

ID: T1084
Tactic: Persistence
Platform: Windows
Permissions Required: Administrator, SYSTEM
Data Sources: WMI Objects
Version: 1.1
Created: 31 May 2017
Last Modified: 15 October 2019

Procedure Examples

Name Description

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


APT29 has used WMI event filters to establish persistence.[9]


Leviathan has used WMI for persistence.[10]


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


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


POWERTON can use WMI for persistence.[8]


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


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


Mitigation Description
Privileged Account Management

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

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.


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. [12] [13]