# T1021.003 - Distributed Component Object Model ## Descrição O **Distributed Component Object Model (DCOM)** é uma extensão do protocolo COM do Windows que permite a comunicação e execução remota de objetos entre sistemas em rede. Adversários abusam do DCOM para mover-se lateralmente dentro de ambientes corporativos, aproveitando contas privilegiadas legítimas para executar código arbitrário em máquinas remotas - sem necessidade de implantar novos binários no disco. No Brasil e na América Latina, essa técnica é particularmente relevante em ambientes corporativos de grande porte, como bancos, órgãos de governo federal e empresas de telecomúnicações, onde redes internas flat (sem microssegmentação) ainda são comuns. Grupos como [[g0032-lazarus-group|Lazarus Group]] e operadores de [[s0154-cobalt-strike|Cobalt Strike]] utilizam DCOM para pivotar silenciosamente entre estações e servidores após comprometer a primeira máquina. O protocolo DCOM utiliza RPC sobre TCP (porta 135 + portas dinâmicas altas) e exige que o atacante possua credenciais de Administrador Local ou de Domínio no sistema-alvo. Permissões de ativação e inicialização de objetos COM remotos são controladas via ACLs no Registro do Windows - por padrão, apenas Administradores podem iniciar objetos COM remotamente. Objetos exploráveis via DCOM incluem o **ShellWindows**, **ShellBrowserWindow** e **Excel.Application**, que permitem execução de comandos arbitrários ou macros sem criar novos processos suspeitos diretamente. > **Técnica pai:** [[t1021-remote-services|T1021 - Remote Services]] --- ## Attack Flow ```mermaid graph TB A([Acesso Inicial]) --> B[Compromete conta<br/>Administrador Local] B --> C[Enumera hosts<br/>na rede interna] C --> D{{"T1021.003<br/>DCOM Lateral Move<br/>fill:#e74c3c,color:#fff"}} D --> E[Instancia objeto COM<br/>remoto via RPC/135] E --> F[Executa shellcode<br/>ou macro Office] F --> G([Controle do<br/>host remoto]) style D fill:#e74c3c,color:#fff ``` --- ## Como Funciona **Passo 1 - Enumeração de objetos DCOM disponíveis** O adversário usa ferramentas como [[s0363-empire|Empire]] ou [[s0692-silenttrinity|SILENTTRINITY]] para enumerar objetos COM registrados no host remoto via `Get-WmiObject Win32_COMSetting`. Objetos alvo comuns: `MMC20.Application` (CLSID `49B2791A`), `ShellWindows` e `ShellBrowserWindow`. **Passo 2 - Instanciação remota do objeto COM** Com credenciais de administrador, o adversário instancia o objeto remotamente via `[activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application","<IP_alvo>"))`. O sistema-alvo autentica a chamada RPC usando as credenciais fornecidas e inicializa o objeto COM em seu contexto de segurança. **Passo 3 - Execução de código e persistência** Após instanciar o objeto, o adversário invoca métodos disponíveis - como `Document.ActiveView.ExecuteShellCommand()` no MMC20 ou `Navigaté()` no ShellBrowserWindow - para executar comandos arbitrários. O processo filho nasce com o contexto do usuário autenticado, contornando muitas soluções de EDR que monitoram apenas criação direta de processos remotos. --- ## Detecção ### Event IDs Relevantes (Windows) | Event ID | Fonte | Descrição | |----------|-------|-----------| | `4624` | Security | Logon de rede bem-sucedido (Logon Type 3) - precursor do movimento lateral | | `4648` | Security | Logon com credenciais explícitas - indicativo de uso de contas alternativas | | `4672` | Security | Privilégios especiais atribuídos ao logon - Administrador autenticando remotamente | | `4697` | Security | Serviço instalado - DCOM pode registrar novos serviços | | `10` | Sysmon | ProcessCreaté - monitorar processos filhos do `mmc.exe`, `explorer.exe` ou `excel.exe` gerados por chamadas de rede | | `3` | Sysmon | NetworkConnect - conexões TCP de saída na porta 135 seguidas de portas efêmeras altas | | `18` | Sysmon | PipeConnected - Named pipes usados por DCOM após negociação inicial | ### Regra Sigma ```yaml title: DCOM Lateral Movement via MMC20 or ShellWindows id: 7c4a5b3e-2d1f-4e8b-9c6a-1b5d3e7f2a9c status: experimental description: Detecta uso de objetos DCOM para execução remota de código via MMC20.Application ou ShellWindows - padrão de movimento lateral sem implante de arquivo. author: RunkIntel daté: 2026/03/24 logsource: product: windows category: process_creation detection: selection_parent: ParentImage|endswith: - '\mmc.exe' - '\explorer.exe' - '\svchost.exe' ParentCommandLine|contains: 'DCOM' selection_network: EventID: 3 DestinationPort: 135 selection_process: Image|endswith: - '\cmd.exe' - '\powershell.exe' - '\wscript.exe' - '\cscript.exe' ParentImage|endswith: - '\mmc.exe' - '\excel.exe' condition: selection_process or (selection_network and selection_process) falsepositives: - Administradores legítimos gerenciando sistemas remotamente via MMC - Scripts de automação corporativa usando DCOM para configuração de hosts level: high tags: - attack.lateral_movement - attack.t1021.003 ``` --- ## Mitigação | Prioridade | Controle | Descrição para Organizações Brasileiras | |-----------|---------|----------------------------------------| | Alta | [[m1026-privileged-account-management\|M1026 - Gerenciamento de Contas Privilegiadas]] | Implementar PAM (CyberArk, Thales) para controlar uso de contas de Administrador Local. Aplicar LAPS para randomizar senhas de admin local em todas as estações - prática ainda rara em empresas brasileiras de médio porte. | | Alta | [[m1030-network-segmentation\|M1030 - Segmentação de Rede]] | Bloquear tráfego RPC/DCOM (TCP 135 + portas efêmeras 49152-65535) entre VLANs de usuários e servidores críticos. Firewalls de host via GPO (Windows Defender Firewall) são alternativa de baixo custo para ambientes sem Next-Gen Firewall. | | Média | [[m1042-disable-or-remove-feature-or-program\|M1042 - Desabilitar Funcionalidade]] | Desabilitar DCOM nos hosts onde não é necessário via registro: `HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole` → `EnableDCOM = N`. Avaliar impacto antes de aplicar em servidores de aplicação que dependem de COM+ ou MSDTC. | | Média | [[m1048-application-isolation-and-sandboxing\|M1048 - Isolamento de Aplicação]] | Configurar permissões granulares de ativação COM via `dcomcnfg.exe`. Restringir quais contas podem ativar objetos COM remotamente - especialmente no contexto de aplicações Office em servidores de terminal (comum em bancos e repartições públicas). | --- ## Threat Actors e Software ### Grupos que Exploram DCOM Embora o YAML `used-by` estejá em branco (MITRE não lista grupos específicos para esta sub-técnica), ferramentas de pós-exploração amplamente utilizadas no Brasil implementam DCOM como vetor padrão de movimento lateral: - **[[s0154-cobalt-strike|Cobalt Strike]]** - framework de C2 mais usado por grupos de ransomware que operam no Brasil ([[lockbit|LockBit]], [[blackcat|ALPHV]]); possui módulo `dcom` nativo para pivoting lateral. - **[[s0363-empire|Empire]]** - framework PowerShell open-source; módulo `lateral_movement/invoke_dcom` implementa todos os objetos DCOM exploráveis. - **[[s0692-silenttrinity|SILENTTRINITY]]** - framework C# usado por grupos APT; suporte a DCOM via IronPython sem dependência de PowerShell. ### Contexto Brasil/LATAM Em incidentes investigados por fornecedores como [[kaspersky-latam|Kaspersky LATAM]] e [[sources|Mandiant]], o DCOM aparece como técnica de segundo estágio após comprometimento inicial via [[t1566-001-spearphishing-attachment|Spearphishing com Anexo]] ou exploração de VPN. Ambientes de Active Directory sem segmentação de rede - realidade em muitas prefeituras, autarquias e empresas do agronegócio brasileiro - são especialmente vulneráveis à propagação via DCOM. --- *Fonte: [MITRE ATT&CK - T1021.003](https://attack.mitre.org/techniques/T1021/003)*