# T1027.006 - HTML Smuggling
## Técnica Pai
Sub-técnica de [[t1027-obfuscated-files-or-information|T1027 - Obfuscaté Files or Information]], que cobre o conjunto de técnicas de ofuscação de arquivos e informações usadas para evasão de defesas.
## Descrição
HTML Smuggling é uma técnica de evasão na qual adversários embarcam payloads maliciosos dentro de arquivos HTML ou JavaScript aparentemente inofensivos, contornando filtros de conteúdo web, gateways de e-mail e soluções de sandbox que inspecionam tráfego HTTP.
A técnica explora recursos legítimos do HTML5 e APIs de navegadores modernos para montar o arquivo malicioso diretamente no dispositivo da vítima - após a inspeção de segurança ter ocorrido no perímetro. Do ponto de vista do gateway, o que trafega é um arquivo `text/html` ou `text/javascript` com conteúdo codificado; o payload só é reconstruído localmente no navegador da vítima.
Os três mecanismos principais utilizados são:
- **JavaScript Blobs** - objetos de dados binários imutáveis (`Blob`) que podem ser construídos dinâmicamente via JavaScript e exportados como arquivo executável
- **Data URLs** (`data:`) - URLs que embarcam o conteúdo do arquivo diretamente na página, codificado em Base64 ou outro esquema
- **Atributo `download` do HTML5** - permite que um elemento `<a>` force o download de um arquivo construído em memória, sem requisição HTTP adicional
Quando combinadas, essas primitivas permitem que um adversário entregue um ISO, ZIP, LNK, DOCX ou executável diretamente ao sistema da vítima sem que o arquivo sequer trafegue de forma detectável pelo gateway corporativo.
A técnica é frequentemente encadeada com [[Decode Files or Information]], pois o payload costuma estar codificado em Base64 ou XOR antes de ser montado no cliente.
## Como Funciona
O fluxo de ataque típico segue estas etapas:
1. **Preparação do payload** - o adversário converte um arquivo malicioso (ex.: `.iso`, `.zip`, `.exe`) em Base64 ou outro encoding e embarca a string resultante diretamente no HTML ou em um arquivo `.js` separado
2. **Entrega** - o arquivo HTML é enviado como anexo de e-mail de phishing, hospedado em domínio comprometido ou entregue via link em mensagem instantânea; como o MIME type é `text/html`, filtros baseados em extensão ou tipo geralmente não bloqueiam
3. **Execução no navegador** - quando a vítima abre o arquivo HTML, o JavaScript executa imediatamente: constrói o `Blob` ou decodifica o Data URL na memória do navegador
4. **Drop no disco** - o script cria um link `<a>` com o atributo `download` e o aciona programaticamente, forçando o download do arquivo reconstruído para a pasta padrão do usuário (ex.: `Downloads/`)
5. **Execução da segunda etapa** - a vítima é induzida a abrir o arquivo baixado (frequentemente um ISO com um LNK ou DLL dentro), dando início à cadeia de [[t1204-002-malicious-file|T1204.002 - Malicious File]]
A técnica é altamente eficaz porque:
- Gateways de e-mail inspecionam o anexo HTML e veem apenas texto codificado
- EDRs sem monitoramento de atividade de navegador não correlacionam o HTML com o arquivo dropado
- O arquivo final nunca transita pela rede - é montado localmente
## Attack Flow
```mermaid
graph TB
A["🎣 Entrega via Phishing<br/>(HTML como anexo ou link)"] --> B["🌐 Vítima abre HTML<br/>no navegador"]
B --> C["⚙️ JavaScript executa<br/>Blob / Data URL / download attr"]
C --> D["🔓 Payload decodificado<br/>na memória do navegador<br/>T1140"]
D --> E["💾 Arquivo malicioso<br/>dropado no disco<br/>(ISO / ZIP / LNK / EXE)"]
E --> F["👤 Vítima executaa arquivo<br/>T1204.002"]
F --> G["🐚 Shell / Loader iniciado<br/>(ex: BLINDINGCAN, Cobalt Strike)"]
G --> H["📡 C2 estabelecido<br/>T1071 / T1105"]
style A fill:#8B0000,color:#fff
style E fill:#B8860B,color:#fff
style G fill:#8B0000,color:#fff
style H fill:#4B0082,color:#fff
```
## Exemplos de Uso
### APT29 - Campanha EnvyScout (2021–2024)
O [[g0016-apt29|APT29]] (Cozy Bear / SVR) é o grupo mais documentado no uso sistemático de HTML Smuggling. Em campanhas contra ministérios de relações exteriores europeus e organizações de defesa da OTAN, o grupo enviou e-mails de spearphishing com anexos HTML que construíam arquivos ISO via JavaScript Blob. Dentro do ISO havia um arquivo LNK que executava o dropper [[s0634-envyscout|EnvyScout]] - projetado específicamente para essa técnica.
### QakBot (QBot) - Distribuição em massa
O malware [[s0650-qakbot|QakBot]] adotou HTML Smuggling como vetor primário de distribuição a partir de 2022, substituindo documentos Office com macros. Campanhas com centenas de milhares de e-mails entregavam HTMLs com ZIPs embarcados via Blob, contendo DLLs do QakBot para execução via `regsvr32`.
### Nokoyawa Ransomware - Cadeia LATAM
Em incidentes documentados no Brasil e Argentina (2023), a cadeia de infecção do ransomware Nokoyawa iniciou com páginas HTML de phishing hospedadas em domínios `.com.br` comprometidos, usando Data URLs para entregar ZIPs com instaladores maliciosos disfarçados de NF-e (Nota Fiscal Eletrônica).
## Detecção
A detecção de HTML Smuggling requer monitoramento em múltiplas camadas, pois a técnica contorna inspeção de perímetro.
**Indicadores no endpoint:**
- Arquivo criado em `%USERPROFILE%\Downloads\` logo após abertura de arquivo `.html` no navegador
- Processo de navegador (`chrome.exe`, `msedge.exe`, `firefox.exe`) escrevendo arquivos `.iso`, `.zip`, `.img`, `.lnk` ou `.exe` no disco
- Arquivo HTML contendo grandes strings Base64 codificadas (heurística: string > 500KB em atributo ou variável JS)
- Presença dos métodos `URL.createObjectURL`, `msSaveBlob` ou `msSaveOrOpenBlob` no conteúdo HTML
**Regra de detecção - criação de arquivo suspeito pelo navegador:**
```yaml
title: HTML Smuggling - Arquivo Executável Criado por Navegador
status: experimental
logsource:
category: file_event
product: windows
detection:
selection:
Image|endswith:
- '\chrome.exe'
- '\msedge.exe'
- '\firefox.exe'
- '\iexplore.exe'
TargetFilename|endswith:
- '.iso'
- '.img'
- '.zip'
- '.lnk'
- '.exe'
- '.dll'
- '.js'
- '.hta'
filter_legit:
TargetFilename|contains:
- '\AppData\Local\Google\Chrome\User Data\'
- '\AppData\Local\Microsoft\Edge\User Data\'
condition: selection and not filter_legit
level: high
tags:
- attack.defense_evasion
- attack.t1027.006
```
**Regra de detecção - conteúdo HTML com Blob e download:**
```yaml
title: HTML Smuggling - Padrão Blob e Atributo Download
status: experimental
logsource:
category: proxy
product: generic
detection:
selection:
cs-mime-type:
- 'text/html'
- 'application/javascript'
response_body|contains|all:
- 'createObjectURL'
- 'download'
condition: selection
level: medium
tags:
- attack.defense_evasion
- attack.t1027.006
```
**Fontes de dados relevantes:**
| Fonte | O que monitorar |
|-------|----------------|
| EDR (file events) | Criação de arquivos em Downloads/ por processo de navegador |
| Proxy/Gateway | Respostas HTML com strings Base64 muito longas |
| Sandbox de e-mail | Simulação de execução do HTML + análise de comportamento |
| SIEM | Correlação HTML aberto → arquivo criado → processo executado em < 60s |
## Mitigação
| ID | Mitigação | Descrição |
|----|-----------|-----------|
| M1048 | [[m1048-application-isolation-and-sandboxing\|M1048 - Application Isolation and Sandboxing]] | Isolar navegadores em sandbox (ex: RBI - Remote Browser Isolation) impede que scripts do navegador escrevam diretamente no sistema de arquivos do host |
| M1021 | Restringir extensões de arquivo | Bloquear download de `.iso`, `.img`, `.lnk` e `.hta` no gateway de e-mail e proxy web |
| M1038 | Políticas de execução | Desabilitar execução de LNK e HTA para usuários sem necessidade operacional via Group Policy |
**Controles adicionais:**
- Configurar gateways de e-mail para executar anexos HTML em sandbox e analisar comportamento, não apenas conteúdo estático
- Habilitar Controlled Folder Access (Windows Defender) para restringir escrita em `Downloads\` por processos de navegador
- Treinar usuários para não abrir arquivos ISO/ZIP baixados de e-mails inesperados - especialmente os que imitam NF-e, boletos e convites corporativos
## Contexto Brasil/LATAM
O HTML Smuggling tem relevância crescente no contexto brasileiro por três razões:
**1. Phishing de NF-e e documentos fiscais**
Grupos de cybercrime financeiro que operam no Brasil (associados à distribuição de bankers como [[s0373-astaroth|Astaroth]] e [[s0531-grandoreiro|Grandoreiro]]) adaptaram a técnica para imitar notificações da Receita Federal, NF-e e boletos bancários. O HTML é disfarçado como página de visualização de documento fiscal - ao "abrir", a vítima baixa um ZIP com o malware.
**2. Evasão de SEGs corporativos**
Muitas organizações brasileiras utilizam Secure Email Gateways com inspeção de conteúdo baseada em assinatura. A técnica contorna essa defesa sistematicamente porque o payload nunca transita como arquivo binário - apenas como texto HTML com conteúdo codificado.
**3. Uso por APTs com presença regional**
O [[g0016-apt29|APT29]] e grupos de espionagem com interesse em América Latina (governo, defesa, energia) têm usado HTML Smuggling em campanhas de spearphishing direcionadas a ministérios e empresas de infraestrutura crítica da região.
**Recomendação para SOCs brasileiros:** priorizar regras de detecção em EDR para correlação entre abertura de HTML e criação de arquivos em `Downloads\`; configurar sandbox de e-mail com capacidade de renderizar JavaScript.
## Referências
- MITRE ATT&CK - T1027.006 (Obfuscated Files or Information: HTML Smuggling)
- Microsoft Security Intelligence - análise de campanhas EnvyScout (APT29)
- Elastic Security Labs - HTML Smuggling surge (2022–2023)
- ANY.RUN - análise de amostras QakBot via HTML Smuggling
- Mandiant - relatório sobre uso de ISO containers em HTML Smuggling pós-macros
- CERT.br - alertas sobre phishing fiscal com HTML embarcado
---
*Fonte: MITRE ATT&CK - T1027.006*