# 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/)