# T1218.001 - Compiled HTML File
## Técnica Pai
> Sub-técnica de [[t1218-system-binary-proxy-execution|T1218 - System Binary Proxy Execution]] - execução de código malicioso via binários legítimos e assinados do Windows.
## Descrição
Adversários abusam de arquivos **Compiled HTML** (`.chm`) para ocultar e executar código malicioso. Os arquivos CHM fazem parte do sistema de ajuda do Microsoft HTML Help e são compilações comprimidas de documentos HTML, imagens e linguagens de script como VBScript, JScript, Java e ActiveX.
O conteúdo de um arquivo CHM é renderizado pelos componentes internos do Internet Explorer, carregados pelo executável `hh.exe` - o binário legítimo do Windows responsável pelo sistema de ajuda. Esse mecanismo é explorado porque:
- `hh.exe` é um binário **assinado digitalmente pela Microsoft**, presente por padrão em todas as versões do Windows;
- A execução de scripts dentro de um CHM ocorre no contexto do Internet Explorer, contornando algumas soluções de controle de aplicações;
- Em sistemas mais antigos ou sem patches, essa técnica pode **ignorar completamente** o AppLocker e outras políticas de execução.
Um arquivo CHM personalizado contendo payloads embarcados pode ser entregue à vítima via [[t1566-phishing|Phishing]] (anexo malicioso) ou [[t1204-user-execution|User Execution]] (download direto). A execução ocorre assim que o usuário abre o arquivo - sem necessidade de privilégios elevados.
## Como Funciona
O fluxo de ataque segue etapas bem definidas:
1. **Criação do CHM malicioso:** o adversário utiliza ferramentas como `HTML Help Workshop` para compilar um CHM com scripts VBScript ou JScript embutidos em páginas HTML internas.
2. **Entrega:** o arquivo `.chm` é enviado por e-mail de phishing, hospedado em servidor web ou distribuído via mídias removíveis.
3. **Execução pelo usuário:** a vítima clica duas vezes no arquivo - o Windows o abre automaticamente com `hh.exe`.
4. **Ativação do payload:** o script embutido é interpretado pelo motor JScript/VBScript do Internet Explorer (via `mshta.exe` ou diretamente pelo IE engine), executando comandos como `CreateObject("WScript.Shell").Run(...)`.
5. **Download e execução de segundo estágio:** o payload inicial geralmente baixa e executa um RAT, backdoor ou loader da infraestrutura do adversário via [[t1105-ingress-tool-transfer|Ingress Tool Transfer]].
### Exemplo de script embutido em CHM (padrão observado em campo)
Arquivos CHM maliciosos frequentemente contêm um `<OBJECT>` HTML que dispara scripts automaticamente ao carregar a página de ajuda:
```html
```
Esse padrão foi documentado em campanhas do [[g0049-oilrig|OilRig]], [[g0091-silence|Silence]] e [[s0373-astaroth|Astaroth]].
## Attack Flow
```mermaid
graph TB
A["Adversário cria CHM malicioso<br/>(HTML Help Workshop ou similar)"] --> B["Entrega à vítima<br/>(Phishing / drive-by / mídia)"]
B --> C["Usuário abre arquivo .chm<br/>hh.exe invocado automaticamente"]
C --> D["Internet Explorer Engine<br/>carrega HTML interno"]
D --> E["Script VBScript/JScript<br/>executado no contexto IE"]
E --> F["Payload de 1º estágio<br/>CriaObject → cmd/powershell"]
F --> G["Download de 2º estágio<br/>(RAT, Backdoor, Loader)"]
G --> H["Persistência e<br/>Movimentação Lateral"]
style A fill:#2d2d2d,color:#fff
style B fill:#8b1a1a,color:#fff
style C fill:#8b4513,color:#fff
style D fill:#8b4513,color:#fff
style E fill:#8b6914,color:#fff
style F fill:#8b6914,color:#fff
style G fill:#1a4a1a,color:#fff
style H fill:#1a1a8b,color:#fff
```
## Exemplos de Uso
### OilRig (APT34) - Campanhas no Oriente Médio e LATAM
O grupo iraniano [[g0049-oilrig|OilRig]] utilizou arquivos CHM maliciosos como vetor inicial em campanhas de espionagem direcionadas a governos e organizações financeiras. Os CHMs continham scripts que baixavam implantes personalizados como o **BONDUPDATER** e o **QUADAGENT**, estabelecendo canais de C2 via DNS tunneling.
### APT41 - Operações de Dupla Missão
O [[g0096-apt41|APT41]] - grupo de espionagem e crime cibernético vinculado à China - utilizou CHMs em campanhas de spear-phishing para comprometer empresas de tecnologia e saúde. Os arquivos eram disfarçados como documentação técnica legítima.
### Silence Group - Setor Financeiro
O grupo [[g0091-silence|Silence]], especializado em ataques ao setor bancário, usou CHMs em campanhas direcionadas a instituições financeiras na Europa Oriental e na Rússia. Os arquivos CHM abriam falsos documentos enquanto executavam o loader do Silence em segundo plano.
### Astaroth (Guildma) - Brasil
O malware [[s0373-astaroth|Astaroth]], amplamente utilizado em campanhas contra usuários brasileiros, foi distribuído via arquivos CHM. O script interno usava `wmic.exe` como intermediário adicional para baixar e executar o payload final - uma cadeia de LOLBins empilhados para máxima evasão. Esta é uma das técnicas mais documentadas contra o setor financeiro brasileiro.
## Detecção
### Regra Sigma - Execução Suspeita de hh.exe
```yaml
title: Execução Suspeita de Arquivo CHM via hh.exe
id: b7b2d0b1-4f2c-4a3e-9c1d-7e8f3a2b5c6d
status: stable
description: >
Detecta a execução do HTML Help (hh.exe) com arquivos CHM suspeitos,
especialmente quando hh.exe gera processos filhos como cmd, powershell ou wscript.
references:
- https://attack.mitre.org/techniques/T1218/001/
author: RunkIntel
daté: 2026-03-25
logsource:
category: process_creation
product: windows
detection:
selection_parent:
ParentImage|endswith: '\hh.exe'
Image|endswith:
- '\cmd.exe'
- '\powershell.exe'
- '\wscript.exe'
- '\cscript.exe'
- '\mshta.exe'
- '\rundll32.exe'
condition: selection_parent
falsepositives:
- Documentação legítima de produtos que use CHM com scripts - raro em ambientes corporativos modernos
level: high
tags:
- attack.defense_evasion
- attack.t1218.001
```
### Regra Sigma - CHM Baixado da Internet
```yaml
title: Arquivo CHM Baixado de Fonte Externa
id: c9d3f4a2-8e1b-4f5c-a2d7-9b6e3c4f7a8b
status: experimental
description: >
Detecta a abertura de arquivos CHM com Zone.Identifier indicando
origem da internet (Zone 3) - padrão de entrega via phishing.
logsource:
category: file_event
product: windows
detection:
selection:
TargetFilename|endswith: '.chm'
TargetFilename|contains: ':Zone.Identifier'
condition: selection
falsepositives:
- Downloads legítimos de documentação de vendors
level: medium
tags:
- attack.defense_evasion
- attack.t1218.001
```
### Indicadores Comportamentais Adicionais
| Indicador | Descrição | Ferramenta |
|-----------|-----------|------------|
| `hh.exe` com argumento de rede (`http://`, `\\`) | CHM remoto - raro em uso legítimo | Sysmon Event ID 1 |
| Criação de processo filho por `hh.exe` | Execução de script - padrão de ataque | Sysmon Event ID 1 |
| Conexão de rede originada de `hh.exe` | Download de payload de 2º estágio | Sysmon Event ID 3 |
| Arquivo `.chm` em `%TEMP%` ou `%APPDATA%` | Local incomum para arquivos de ajuda | Sysmon Event ID 11 |
| `hh.exe` executando `wmic.exe` | Padrão do Astaroth/Guildma | Sysmon Event ID 1 |
## Mitigação
| ID | Mitigação | Descrição |
|----|-----------|-----------|
| [[m1021-restrict-web-based-content\|M1021]] | [[m1021-restrict-web-based-content\|Restrict Web-Based Content]] | Bloquear a execução de controles ActiveX e scripts em arquivos CHM via Group Policy. Desabilitar o Internet Explorer onde não for necessário. |
| [[m1038-execution-prevention\|M1038]] | [[m1038-execution-prevention\|Execution Prevention]] | Usar AppLocker ou WDAC para bloquear a execução de `hh.exe` em workstations que não necessitam de arquivos de ajuda CHM. Regra de path: `%SystemRoot%\System32\hh.exe`. |
### Hardening Adicional Recomendado
- **Desabilitar ActiveX no Internet Explorer:** via Group Policy em `Computer Configuration > Administrative Templates > Windows Components > Internet Explorer`
- **Bloquear `.chm` por extensão no e-mail gateway:** previne a entrega do vetor inicial
- **ASR (Attack Surface Reduction):** habilitar a regra `Block execution of potentially obfuscated scripts` no Microsoft Defender
- **Monitorar Zone.Identifier:** arquivos `.chm` com origem Zone 3 (Internet) devem disparar alertas antes da abertura
## Contexto Brasil/LATAM
O uso de arquivos CHM em ataques ao Brasil está diretamente relacionado à família de malware [[s0373-astaroth|Astaroth]] (também conhecido como **Guildma**), um trojan bancário desenvolvido por atores brasileiros e ativo desde pelo menos 2017.
### Attack Flow Astaroth via CHM
O Astaroth usa arquivos CHM como primeiro estágio de uma cadeia LOLBins sofisticada:
1. Vítima recebe e-mail de phishing com `.chm` disfarçado de nota fiscal ou boleto bancário
2. `hh.exe` executa o script interno
3. `wmic.exe` é chamado para baixar e executar o loader
4. `certutil.exe` decodifica o payload final
5. `regsvr32.exe` carrega o DLL do Astaroth
6. Credenciais bancárias são capturadas via hooking de API
Esse padrão é descrito em relatórios da Kaspersky LATAM, Microsoft e CERT.br, e representa um dos vetores mais persistentes de ataque ao setor financeiro do Brasil.
### Grupos Relevantes para LATAM
- [[g0049-oilrig|OilRig]] documentou uso de CHMs em operações de espionagem em países latino-americanos com presença de infraestrutura crítica de energia e governo
- Grupos de crime organizado cibernético brasileiro (`Guildma`, `Casbaneiro`) usam CHM como vetor de entrega preferêncial por sua baixa detecção em soluções AV tradicionais
### Recomendação para SOCs Brasileiros
Priorizar a detecção de `hh.exe` gerando processos filhos - especialmente com `wmic.exe` - como indicador de altíssima fidelidade para infecção por trojans bancários nacionais. Correlacionar com telemetria de e-mail para identificar campanhas de phishing ativas.
## Referências
- [[t1218-system-binary-proxy-execution|T1218 - System Binary Proxy Execution]] (técnica pai)
- [[t1566-phishing|T1566 - Phishing]] (vetor de entrega comum)
- [[t1204-user-execution|T1204 - User Execution]] (requerido para ativação)
- [[t1105-ingress-tool-transfer|T1105 - Ingress Tool Transfer]] (download de 2º estágio)
- [[s0373-astaroth|Astaroth]] (malware brasileiro que usa CHM)
- [[g0049-oilrig|OilRig]] · [[g0096-apt41|APT41]] · [[g0091-silence|Silence]] · [[g0082-apt38|APT38]] · [[g0070-dark-caracal|Dark Caracal]]
- [[m1021-restrict-web-based-content|M1021 - Restrict Web-Based Content]]
- [[m1038-execution-prevention|M1038 - Execution Prevention]]
*Fonte: MITRE ATT&CK - T1218.001*