# DC0030 - WMI Creation > [!info] Monitora a criação de objetos no Windows Management Instrumentation — filtros de evento, consumidores e subscriptions. WMI subscriptions permitem persistência fileless que sobrevive a reinicializações sem deixar arquivos em disco. ## Descrição WMI Creation monitora a criação de objetos no Windows Management Instrumentation (WMI), incluindo filtros de evento, consumidores, subscriptions e bindings. O WMI é amplamente abusado por adversários para persistência fileless (WMI event subscriptions que sobrevivem a reinicializações sem arquivos em disco), execução remota de comandos e evasão de ferramentas de segurança que monitoram criação de arquivos e chaves de registro. WMI subscriptions são um dos mecanismos de persistência mais difíceis de detectar sem telemetria específica. ## Fonte de Dados Parent: [[ds0005-wmi|DS0005 - WMI]] ## Pipeline de Detecção ```mermaid graph TB A["⚙️ Sysmon Event ID 19<br/>WmiEventFilter"] --> B["🔗 Binding WMI<br/>EventID 21"] B --> C["📜 Conteúdo do<br/>Consumidor Analisado"] C --> D{"🎯 CommandLine<br/>Consumer?"} D -->|PowerShell / cmd| E["🚨 Alerta P1<br/>WMI Persistence"] D -->|ActiveScript| F["🚨 Alerta P1<br/>Script WMI Sub"] D -->|wmic remoto| G["🟧 Alerta P2<br/>Exec Remota WMI"] D -->|Legítimo| H["✔️ Subscription<br/>Conhecida"] classDef p1 fill:#e74c3c,color:#ecf0f1 classDef p2 fill:#e67e22,color:#ecf0f1 classDef ok fill:#2ecc71,color:#2c3e50 classDef proc fill:#2c3e50,color:#ecf0f1 class E,F p1 class G p2 class H ok class A,B,C,D proc ``` ## O Que Monitorar - Sysmon Event ID 19 (WmiEventFilter activity) - criação de filtro de evento - Sysmon Event ID 20 (WmiEventConsumer activity) - criação de consumidor - Sysmon Event ID 21 (WmiEventConsumerToFilter activity) - binding criado - Microsoft-Windows-WMI-Activity/Operational Event ID 5860, 5861 - Criação de `__EventFilter`, `CommandLineEventConsumer` ou `ActiveScriptEventConsumer` - WMI subscriptions que executam PowerShell ou scripts via `CommandLineEventConsumer` - Execução de comandos via `wmic.exe process call create` com argumentos suspeitos - Criação remota de objetos WMI (namespace `root\subscription`) ## Técnicas Detectadas | Técnica | ID | Como Detectar | |---------|-----|---------------| | Windows Management Instrumentation | [[t1047-windows-management-instrumentation\|T1047]] | wmic.exe executando comandos em hosts remotos | | WMI Event Subscription | [[t1546-event-triggered-execution\|T1546.003]] | Criação de filtro + consumidor + binding (persistência fileless) | | Remote Services | [[t1021-remote-services\|T1021]] | Execução remota via WMI com credenciais válidas | ## Implementação **Sysmon Event IDs 19, 20, 21 (habilitar no config):** ```xml <RuleGroup name="WmiEvent" groupRelation="or"> <WmiEvent onmatch="include"> <Name condition="contains">CommandLineEventConsumer</Name> <Name condition="contains">ActiveScriptEventConsumer</Name> </WmiEvent> </RuleGroup> ``` **PowerShell - auditar WMI subscriptions existentes:** ```powershell # Listar subscriptions suspeitas Get-WMIObject -Namespace root\subscription -Class __EventFilter Get-WMIObject -Namespace root\subscription -Class CommandLineEventConsumer Get-WMIObject -Namespace root\subscription -Class __FilterToConsumerBinding ``` **SIEM - correlação WMI subscription:** ``` index=sysmon EventCode=19 OR EventCode=20 OR EventCode=21 | stats count by ComputerName, Name, Query, CommandLineTemplate | alert ``` **Ferramentas:** Sysmon, Microsoft Defender for Endpoint, CrowdStrike Falcon, Elastic Endpoint, WMI Explorer (análise forense), Autoruns (tab WMI). ## Consultas KQL — Microsoft Sentinel / Defender ### WMI Subscription Criada com CommandLine Consumer ```kql // DC0030 - Criação de WMI Event Subscription com executável de comando // Requer Sysmon Events 19/20/21 ingeridos no Sentinel SecurityEvent | where TimeGenerated > ago(1d) | where EventID in (19, 20, 21) | where Channel == "Microsoft-Windows-Sysmon/Operational" | extend EventType = tostring(EventData.RuleName), ConsumerName = tostring(EventData.Name), ConsumerCmd = tostring(EventData.CommandLineTemplate), FilterQuery = tostring(EventData.Query) | where ConsumerCmd has_any ( "powershell", "cmd.exe", "wscript", "mshta", "cscript", "rundll32" ) | project TimeGenerated, Computer, EventType, ConsumerName, ConsumerCmd, FilterQuery | order by TimeGenerated desc ``` ### Execução Remota via WMIC ```kql // DC0030 - wmic.exe com execução remota (/node: ou process call create) DeviceProcessEvents | where Timestamp > ago(7d) | where FileName =~ "wmic.exe" | where ProcessCommandLine has_any ( "/node:", "process call create", "process call create" ) | project Timestamp, DeviceName, ProcessCommandLine, InitiatingProcessFileName, InitiatingProcessCommandLine, InitiatingProcessAccountName | order by Timestamp desc ``` ## Contexto LATAM > [!latam] Relevância Regional > **WMI subscriptions são usadas extensivamente para persistência fileless em ambientes corporativos brasileiros.** Grupos de ransomware documentados em ataques ao Brasil utilizam WMI event subscriptions para manter acesso mesmo após remoção de malware em disco — pois a subscription reside no repositório WMI, não em arquivo. O **Cobalt Strike** e **Metasploit** incluem módulos nativos de WMI persistence que são usados rotineiramente em operações contra empresas da região. A detecção via **Sysmon Event IDs 19-21** é altamente eficaz mas frequentemente não habilitada em ambientes brasileiros — o Sysmon é frequentemente instalado sem a seção `WmiEvent` no arquivo de configuração, criando ponto cego. O `Autoruns.exe` da Sysinternals pode revelar subscriptions WMI persistentes em investigações de resposta a incidente. ## Referências - [MITRE ATT&CK - DS0005 WMI](https://attack.mitre.org/datasources/DS0005/) - [WMI Event Subscriptions - FireEye](https://www.mandiant.com/resources/blog) - [Sysmon WMI Events - SwiftOnSecurity](https://github.com/SwiftOnSecurity/sysmon-config) - [WMI Attacks - The DFIR Report](https://thedfirreport.com/)