# T1546.003 - Event Triggered Execution: WMI Event Subscription Técnica pai: [[t1546-event-triggered-execution|T1546 - Event Triggered Execution]] ## Descrição **T1546.003 - WMI Event Subscription** é uma das técnicas de persistência **sem arquivo (fileless)** mais poderosas e historicamente mais abusadas no Windows. O adversário abusa do **Windows Management Instrumentation (WMI)** - a infraestrutura de gerenciamento nativa do Windows - para registrar assinaturas de eventos que executam código malicioso automaticamente quando condições pré-definidas são aténdidas. O WMI é uma implementação Microsoft do padrão WBEM (Web-Based Enterprise Management) e é usado extensivamente por administradores de sistema para automação, monitoramento e gerenciamento remoto. Sua profundidade de integração com o sistema operacional é o que o torna tão poderoso - e tão atraente para adversários. ### Os Três Componentes de uma Assinatura WMI Uma persistência via WMI Event Subscription requer três objetos WMI que trabalham em conjunto: | Componente | Classe WMI | Função | |------------|-----------|--------| | **Event Filter** | `__EventFilter` | Define QUAL evento dispara a ação (ex: "sistema inicializou há 5 minutos") | | **Event Consumer** | `ActiveScriptEventConsumer` ou `CommandLineEventConsumer` | Define O QUE fazer quando o evento ocorre (executar script VBS/script shell/comando) | | **Filter-to-Consumer Binding** | `__FilterToConsumerBinding` | **Liga** o filtro ao consumer - ativa a assinatura | Os três objetos são **persistidos no repositório WMI** (`%SystemRoot%\System32\wbem\Repository\`) - um banco de dados binário que **sobrevive a reinicializações**, independentemente de arquivos em disco. ### Tipos de Event Consumer #### ActiveScriptEventConsumer Executa um script VBScript ou JScript arbitrário em resposta ao evento. É a opção mais flexível - permite execução de código complexo, download de payloads, comunicação C2, etc. #### CommandLineEventConsumer Executa um comando de linha de comando (equivalente a um `CreateProcess`). Mais simples, mas igualmente poderoso - pode invocar PowerShell, cmd.exe, ferramentas de sistema ou binários maliciosos. ### Persistência Fileless A natureza fileless desta técnica é o que a torna particularmente perigosa: - Os três objetos WMI (Filter, Consumer, Binding) existem **apenas no repositório WMI** - não como arquivos individuais em localizações monitoradas - O código malicioso pode ser embutido diretamente no `ActiveScriptEventConsumer` como string - sem arquivo `.vbs` ou `.ps1` em disco - Varreduras de antivírus tradicionais baseadas em arquivo raramente detectam a assinatura ## Como Funciona ### Exemplo de Criação via PowerShell ```powershell # Passo 1: Criar o Event Filter (gatilho - executar 5 min após boot) $EventFilterArgs = @{ Name = 'SystemStartupFilter' EventNamespace = 'root\cimv2' QueryLanguage = 'WQL' Query = 'SELECT * FROM __InstanceModificationEvent WITHIN 60 WHERE TargetInstance ISA "Win32_PerfFormattedData_PerfOS_System" AND TargetInstance.SystemUpTime >= 300 AND TargetInstance.SystemUpTime < 360' } $EventFilter = Set-WmiInstance -Namespace root\subscription -Class __EventFilter -Arguments $EventFilterArgs # Passo 2: Criar o Event Consumer (ação - executar script VBS malicioso) $EventConsumerArgs = @{ Name = 'SystemStartupConsumer' ScriptingEngine = 'VBScript' ScriptText = 'Set objShell = CreateObject("WScript.Shell") : objShell.Run "powershell -enc BASE64_PAYLOAD", 0, False' } $EventConsumer = Set-WmiInstance -Namespace root\subscription -Class ActiveScriptEventConsumer -Arguments $EventConsumerArgs # Passo 3: Criar o Binding (liga o filtro ao consumer) $BindingArgs = @{ Filter = $EventFilter Consumer = $EventConsumer } Set-WmiInstance -Namespace root\subscription -Class __FilterToConsumerBinding -Arguments $BindingArgs ``` ### Verificação e Limpeza ```powershell # Listar assinaturas WMI ativas (auditoria/detecção) Get-WMIObject -Namespace root\subscription -Class __EventFilter Get-WMIObject -Namespace root\subscription -Class __EventConsumer Get-WMIObject -Namespace root\subscription -Class __FilterToConsumerBinding # Remoção de assinatura maliciosa (remediação) Get-WMIObject -Namespace root\subscription -Class __EventFilter | Where-Object {$_.Name -eq 'SystemStartupFilter'} | Remove-WMIObject Get-WMIObject -Namespace root\subscription -Class __EventConsumer | Where-Object {$_.Name -eq 'SystemStartupConsumer'} | Remove-WMIObject Get-WMIObject -Namespace root\subscription -Class __FilterToConsumerBinding | Where-Object {$_.Filter -like '*SystemStartupFilter*'} | Remove-WMIObject ``` > [!tip] Detecção Prioritária > Habilitar o canal de eventos `Microsoft-Windows-WMI-Activity/Operational` e encaminhar Event IDs 5860 e 5861 para o SIEM é o controle de detecção mais impactante e de menor custo para esta técnica. A maioria dos ambientes empresariais não tem esse log habilitado por padrão. ## Attack Flow ```mermaid graph TB A["Acesso Inicial<br/>(phishing, exploit, supply chain)"] --> B["Execução de Código<br/>(PowerShell, WMI, LOLBin)"] B --> C["Criação do Event Filter<br/>(__EventFilter)<br/>Define o gatilho de evento WQL"] C --> D["Criação do Event Consumer<br/>(ActiveScriptEventConsumer<br/>ou CommandLineEventConsumer)<br/>Define o payload a executar"] D --> E["Criação do FilterToConsumerBinding<br/>(__FilterToConsumerBinding)<br/>Ativa a assinatura WMI"] E --> F["Objetos persistidos no<br/>Repositório WMI<br/>(sobrevivem ao reboot)"] F --> G["Sistema reinicia ou<br/>evento de gatilho ocorre"] G --> H["WMI Service (winmgmt)<br/>detecta o evento correspondente"] H --> I["Consumer executa:<br/>VBScript / PowerShell / Comando"] I --> J["Payload malicioso ativo:<br/>C2 beacon, coleta de credenciais,<br/>lateral movement, ransomware"] J --> K["Ciclo de persistência<br/>se repete a cada gatilho"] classDef initial fill:#e74c3c,color:#fff classDef exec fill:#8e44ad,color:#fff classDef wmi fill:#2980b9,color:#fff classDef persist fill:#16a085,color:#fff classDef trigger fill:#f39c12,color:#fff classDef impact fill:#27ae60,color:#fff class A initial class B exec class C,D,E wmi class F persist class G,H trigger class I,J,K impact ``` ## Exemplos de Uso ### APT29 (Cozy Bear) - Operação Ghost O [[g0016-apt29|APT29]] é amplamente documentado com uso de WMI Event Subscriptions em campanhas de espionagem de longo prazo. Em análises do **MiniDuke**, **CozyDuke** e variantes do **[[s0559-sunburst|SUNBURST]]**, pesquisadores identificaram assinaturas WMI como mecanismo de persistência primário - escolhido específicamente pela capacidade de sobreviver a reboots e pela baixa visibilidade em ambientes sem monitoramento WMI dedicado. ### APT28 (Fancy Bear) O [[g0007-apt28|APT28]] incorporou persistência via WMI em ferramentas como [[s0653-xcaon|XAgent]] e em campanhas contra organizações políticas e militares. A combinação de WMI Subscription com PowerShell codificado em Base64 via `ActiveScriptEventConsumer` é uma assinatura operacional documentada do grupo. ### Turla (Snake) O [[g0010-turla|Turla]] utiliza WMI Event Subscriptions como parte de uma cadeia de persistência multi-camada. O grupo é documentado registrando assinaturas WMI que disparam em eventos de rede (conexão/desconexão) para reativar componentes de C2 dinâmicamente. Ferramentas como **Carbon** e **Kazuar** do ecossistema Turla interagem com o repositório WMI. ### FIN7 O [[g0046-fin7|FIN7]], grupo focado em crime financeiro (POS, hospitality, restaurantes), utilizou WMI subscriptions extensivamente em campanhas de 2017-2019. A ferramenta **Carbanak** e variantes do arsenal FIN7 incluem módulos de persistência via WMI, especialmente `CommandLineEventConsumer` invocando PowerShell ou scripts de staging. ### APT33 (Elfin) O [[g0064-apt33|APT33]], grupo iraniano com foco em energia e aeronáutica, foi documentado usando WMI persistence em campanhas de espionagem industrial contra alvos no Oriente Médio e EUA. A técnica foi identificada em análises de malware como **TURNEDUP** e variantes de downloaders do grupo. ### Malware Notável - **[[s0367-emotet|Emotet]]** - o malware-as-a-service utilizou WMI subscriptions como mecanismo de persistência em versões recentes antes de sua derrubada em 2021 - **[[s0266-trickbot|TrickBot]]** - módulos de persistência do TrickBot incluem WMI Event Subscription como alternativa a scheduled tasks e registry run keys - **[[s0194-powersploit|PowerSploit]]** - framework de red team com módulo `Persist-WMI` documentado extensivamente; base para variantes maliciosas ## Detecção ### Regra Sigma - Criação de Assinatura WMI ```yaml title: WMI Event Subscription Created id: d6g4h0c3-e5f9-6g7h-1234-cd5678901234 status: stable description: > Detecta criação de componentes de WMI Event Subscription - Event Filter, Event Consumer ou FilterToConsumerBinding - indicando possível persistência fileless via WMI. Requer auditoria de operações WMI habilitada. references: - https://attack.mitre.org/techniques/T1546/003/ - https://www.mandiant.com/resources/blog/wmi-persistence-mitigations - https://github.com/davidpany/WMI_Forensics author: RunkIntel daté: 2026-03-25 logsource: product: windows category: wmi_event detection: selection_filter: EventID: 5861 Message|contains: - '__EventFilter' selection_consumer: EventID: 5861 Message|contains: - 'ActiveScriptEventConsumer' - 'CommandLineEventConsumer' selection_binding: EventID: 5861 Message|contains: - '__FilterToConsumerBinding' condition: selection_filter or selection_consumer or selection_binding falsepositives: - Software de gerenciamento legítimo (SCCM, SCOM, ferramentas de monitoramento) - Scripts de administração de TI que usam WMI para automação level: high tags: - attack.persistence - attack.t1546.003 fields: - EventID - Message - User - ComputerName ``` ### Regra Sigma - WMI Consumer Executando Script Suspeito ```yaml title: WMI ActiveScriptEventConsumer Executing Suspicious Script id: e7h5i1d4-f6g0-7h8i-2345-de6789012345 status: experimental description: > Detecta o processo WMI Service (WmiPrvSE.exe) criando processos filhos inesperados, o que ocorre quando um WMI Event Consumer é disparado. logsource: product: windows category: process_creation detection: selection: ParentImage|endswith: - '\WmiPrvSE.exe' Image|endswith: - '\powershell.exe' - '\wscript.exe' - '\cscript.exe' - '\cmd.exe' - '\mshta.exe' - '\regsvr32.exe' - '\rundll32.exe' condition: selection falsepositives: - Ferramentas de gerenciamento que usam WMI para lançar processos legítimos - Scripts SCCM/MECM executados via WMI level: high tags: - attack.persistence - attack.execution - attack.t1546.003 ``` ### Ferramentas de Investigação Forense WMI ```powershell # Investigação completa de assinaturas WMI suspeitas # (executar como admin) # 1. Listar todos os Event Filters em root\subscription Get-WMIObject -Namespace root\subscription -Class __EventFilter | Select-Object Name, Query, QueryLanguage, EventNamespace # 2. Listar todos os Event Consumers Get-WMIObject -Namespace root\subscription -Class ActiveScriptEventConsumer | Select-Object Name, ScriptingEngine, ScriptText Get-WMIObject -Namespace root\subscription -Class CommandLineEventConsumer | Select-Object Name, CommandLineTemplaté, ExecutablePath # 3. Listar bindings ativos Get-WMIObject -Namespace root\subscription -Class __FilterToConsumerBinding | Select-Object Filter, Consumer # 4. Ferramenta externa: WMI_Forensics (David Pany) # python WMI_Forensics.py -i $env:SystemRoot\System32\wbem\Repository ``` ### Fontes de Dados MITRE | Fonte | O que Monitorar | |-------|-----------------| | WMI: WMI Creation | Criação de `__EventFilter`, `ActiveScriptEventConsumer`, `CommandLineEventConsumer`, `__FilterToConsumerBinding` em `root\subscription` | | Process: Process Creation | `WmiPrvSE.exe` como processo pai lançando `powershell.exe`, `wscript.exe`, `cmd.exe` ou outros interpretadores | | Command: Command Execution | Uso de `wmic`, `Invoke-WmiMethod`, `Set-WmiInstance` para criação de subscriptions | ## Mitigação | ID | Mitigação | Descrição | Prioridade | |----|-----------|-----------|------------| | [[m1026-privileged-account-management\|M1026]] | Privileged Account Management | Restringir quais contas têm permissão para criar WMI Event Subscriptions via WMI namespace security (`root\subscription`); usar apenas contas privilegiadas auditadas | Alta | | [[m1018-user-account-management\|M1018]] | User Account Management | Implementar princípio do menor privilégio - usuários padrão não devem ter permissão de criar objetos em `root\subscription` | Alta | ### Recomendações Adicionais - **Habilitar WMI Logging:** Ativar log de operações WMI via Event ID 5860/5861 no canal `Microsoft-Windows-WMI-Activity/Operational` - **Baseline de Subscriptions:** Inventariar e documentar todas as assinaturas WMI legítimas no ambiente; alertar para qualquer nova subscription não autorizada - **SIEM Correlation:** Correlacionar criação de subscriptions WMI com outros indicadores de comprometimento - acesso suspeito, processo de instalação não-autorizado - **Monitoramento de WmiPrvSE.exe:** Regra dedicada no EDR para processos filhos não-esperados do `WmiPrvSE.exe` - **Application Control:** Restringir quais binários podem ser invocados por `CommandLineEventConsumer` via AppLocker ou WDAC > [!warning] Alta Prevalência em Ataques Reais > WMI Event Subscription é classificada como técnica de **alto impacto e alta prevalência** pelo Red Canary Threat Detection Report. Em análises de incidentes de ransomware e espionagem, é consistentemente encontrada como mecanismo de persistência, especialmente em ataques sofisticados que evitam scheduled tasks e registry run keys. **Ambientes sem monitoramento do canal WMI-Activity são cegos a esta técnica.** ## Contexto Brasil/LATAM WMI Event Subscription é uma das técnicas mais relevantes para o cenário de ameaças no Brasil e na América Latina, dado o perfil dos ataques que afetam a região: ### Ransomware - Alta Relevância Grupos de ransomware como **[[lockbit|LockBit]]**, **[[blackcat|ALPHV]]** e **[[play-ransomware|Play]]** - todos com operações documentadas no Brasil - utilizam WMI subscriptions como parte do arsenal de persistência antes da fase de criptografia. A técnica garante que componentes do ransomware sobrevivam a tentativas de remediação parcial. ### Espionagem Governamental e Corporativa - **[[g0016-apt29|APT29]]** e **[[g0007-apt28|APT28]]** - grupos russos com histórico de interesse em organizações governamentais e diplomáticas brasileiras; WMI persistence é parte central de seu toolkit - **Grupos de espionagem chineses** - análises públicas identificaram grupos como [[g0096-apt41|APT41]] com operações no setor de telecomúnicações e tecnologia da América Latina, onde WMI persistence foi identificada ### Crime Financeiro LATAM - **[[g0046-fin7|FIN7]]** - grupo com vítimas no setor de varejo e hospitalidade no Brasil; WMI subscriptions documentadas em seu arsenal - Grupos de crime financeiro regionais (BrazBanker, Guildma/Grandoreiro ecosystem) têm incorporado técnicas de persistência Windows mais sofisticadas, incluindo WMI, conforme maturidade das ferramentas aumenta ### Setores em Risco | Setor | Exposição | Ameaça Principal | |-------|-----------|-----------------| | [[_sectors\|Financeiro]] | Crítica | Ransomware + APT financeiro (FIN7, Lazarus) | | Governo Federal/Estadual | Alta | Espionagem (APT28, APT29, APT41) | | Energia e Saneamento | Alta | Sabotagem e ransomware (LockBit, BlackCat) | | Saúde | Alta | Ransomware (dados de pacientes = alto valor) | | Varejo/E-commerce | Média-Alta | Roubo de dados de cartão (FIN7 e similares) | ### Lacuna de Monitoramento Uma análise de maturidade de SOCs brasileiros (baseada em dados públicos de incidentes e relatórios de resposta) indica que a maioria dos SOCs de médio porte **não monitora o canal `Microsoft-Windows-WMI-Activity/Operational`**. Isso cria uma jánela de exploração significativa que adversários sofisticados ativamente aproveitam. Sob as diretrizes do **BACEN** (Resolução CMN 4.893/2021) e do **Decreto 9.637/2018** (Política Nacional de Segurança da Informação), organizações de infraestrutura crítica têm obrigação implícita de monitorar mecanismos de persistência em endpoints. A ativação de logging WMI é um controle de baixo custo e alto impacto. ## Referências - [MITRE ATT&CK - T1546.003](https://attack.mitre.org/techniques/T1546/003/) - [Mandiant - WMI Persistence Mitigations](https://www.mandiant.com/resources/blog/wmi-persistence-mitigations) - [Red Canary - Threat Detection Report (WMI)](https://redcanary.com/threat-detection-report/) - [David Pany - WMI Forensics](https://github.com/davidpany/WMI_Forensics) - [Matt Graeber - Abusing Windows Management Instrumentation](https://www.blackhat.com/docs/us-15/materials/us-15-Graeber-Abusing-Windows-Management-Instrumentation-WMI-To-Build-A-Persistent%20Asynchronous-And-Fileless-Backdoor.pdf) - [[t1546-event-triggered-execution|T1546 - Event Triggered Execution]] - técnica pai - [[t1059-001-powershell|T1059.001 - PowerShell]] - frequentemente combinado com WMI subscriptions - [[t1047-windows-management-instrumentation|T1047 - Windows Management Instrumentation]] - execução via WMI (técnica relacionada) - [[g0046-fin7|FIN7]] - grupo financeiro com uso documentado desta técnica - [[g0016-apt29|APT29]] - grupo de espionagem com uso extensivo de WMI persistence --- *Fonte: MITRE ATT&CK - T1546.003 Windows Management Instrumentation Event Subscription, v16.2*