# T1055.012 - Process Hollowing
## Descrição
O Process Hollowing, ou "esvaziamento de processo", é uma técnica avançada de injeção de código na qual o adversário cria um processo legítimo em estado suspenso e substitui seu conteúdo na memória por código malicioso antes de retomar a execução. O resultado é que um programa confiável - como `svchost.exe`, `explorer.exe` ou `notepad.exe` - passa a executar código do atacante enquanto aparece completamente legítimo para o sistema operacional, ferramentas de segurança e analistas. Essa camuflagem é o diferencial que torna a técnica tão valorizada por atores de ameaça sofisticados, pois transforma o sistema de defesa em cúmplice involuntário.
O mecanismo técnico envolve uma sequência específica de chamadas à API nativa do Windows: o processo é criado suspenso via `CreateProcess` com a flag `CREATE_SUSPENDED`; o espaço de memória do processo legítimo é então removido com `ZwUnmapViewOfSection` ou `NtUnmapViewOfSection`; o shellcode ou PE malicioso é escrito no espaço vazio com `VirtualAllocEx` e `WriteProcessMemory`; o contexto do thread é ajustado via `SetThreadContext` para apontar para o novo ponto de entrada; e finalmente o processo é retomado com `ResumeThread`. Essa técnica se diferencia de [[t1055-005-thread-local-storage|Thread Local Storage]] por criar um processo inteiramente novo em vez de abusar de um processo já em execução. Integra a família de técnicas de injeção de processos sob a técnica pai [[t1055-*|T1055]].
**Contexto Brasil/LATAM:** O Process Hollowing é amplamente utilizado por malwares bancários altamente prevalentes no Brasil. Famílias como [[s0650-qakbot|QakBot]] e [[s0483-icedid|IcedID]] empregam essa técnica para injetar seus módulos em processos legítimos do Windows, tornando-se práticamente invisíveis para soluções antivírus convencionais. O grupo [[g1043-blackbyte|BlackByte]], cujas operações de ransomware atingiram organizações brasileiras, usa Process Hollowing como mecanismo central de evasão. A combinação dessa técnica com loaders como [[s1086-snip3|Snip3]] - distribuído via campanhas de phishing direcionadas ao setor financeiro latino-americano - resulta em infecções que persistem por semanas sem detecção.
## Attack Flow
```mermaid
graph TB
A([Acesso Inicial / Phishing]) --> B([Execução do Loader])
B --> C([T1055.012 - Process Hollowing]):::highlight
C --> D([Persistência / C2])
D --> E([Coleta de Dados / Impacto])
classDef highlight fill:#e74c3c,color:#fff
```
## Como Funciona
**1. Preparação**
O adversário seleciona um processo alvo legítimo - preferêncialmente um que sejá sempre executado no sistema e tenha permissões elevadas, como `svchost.exe`, `msiexec.exe` ou aplicações de segurança. O malware ou loader já está presente no sistema (tipicamente via phishing ou exploit de entrega). O código malicioso que será injetado é preparado na memória do processo atacante, podendo estar comprimido, criptografado ou ofuscado para dificultar análise estática. A escolha do processo alvo é calculada: processos com muitas instâncias em execução simultânea geram menos suspeita.
**2. Execução**
O processo alvo é criado em estado suspenso com `CreateProcess(..., CREATE_SUSPENDED, ...)`. O conteúdo original do executável legítimo é removido da memória do processo com `ZwUnmapViewOfSection`. O código malicioso é alocado e escrito no espaço de memória liberado via `VirtualAllocEx` e `WriteProcessMemory`. O contexto do thread principal é modificado com `SetThreadContext` para que o registrador `EIP`/`RIP` aponte para o novo ponto de entrada do código malicioso. Finalmente, `ResumeThread` retoma a execução - o processo agora executa o código do atacante enquanto o sistema operacional o identifica como o processo legítimo original.
**3. Pós-execução**
O processo hollowed estabelece comunicação com a infraestrutura C2 do atacante, que pode incluir [[t1090-003-multi-hop-proxy|Multi-hop Proxy]] para ocultar a origem. Ferramentas como [[s0154-cobalt-strike|Cobalt Strike]] usam extensivamente Process Hollowing para carregar seus beacons em processos legítimos. O processo malicioso pode criar threads adicionais, mapear DLLs maliciosas ou realizar movimentação lateral, tudo sob a identidade do processo hospedeiro legítimo. Logs de auditoria e ferramentas de monitoramento registram apenas o nome do processo legítimo, não o código real em execução.
## Detecção
**Event IDs relevantes (Windows):**
| Event ID | Fonte | Descrição |
|----------|-------|-----------|
| 4688 | Security | Criação de processo - analisar processos criados com flags de suspensão, especialmente por processos pai inesperados |
| Microsoft-Windows-Sysmon/Operational (ID 8) | Sysmon | `CreateRemoteThread` - criação de thread em processo remoto |
| Microsoft-Windows-Sysmon/Operational (ID 10) | Sysmon | `ProcessAccess` - acesso a processos com direitos `PROCESS_VM_WRITE` e `PROCESS_VM_READ` |
| Microsoft-Windows-Sysmon/Operational (ID 25) | Sysmon | `ProcessTampering` - Sysmon 13+ detecta alteração de imagem de processo em memória |
| 4663 | Security | Acesso a objeto - tentativas de leitura/escrita em espaço de memória de processos do sistema |
**Sigma Rule:**
```yaml
title: Process Hollowing via Suspicious Memory Write
id: b2c4d6e8-1a3f-5b7c-9d0e-2f4a6b8c0d1e
status: experimental
description: Detecta padrões de Process Hollowing por acesso suspeito a memória de processos com subsequente modificação de contexto de thread
references:
- https://attack.mitre.org/techniques/T1055/012/
logsource:
product: windows
category: process_access
detection:
selection_hollow_access:
GrantedAccess|contains:
- '0x1fffff'
- '0x1f0fff'
- '0x143a'
TargetImage|endswith:
- '\svchost.exe'
- '\explorer.exe'
- '\notepad.exe'
- '\msiexec.exe'
- '\regsvr32.exe'
filter_legitimate:
SourceImage|startswith:
- 'C:\Windows\System32\'
- 'C:\Program Files\'
condition: selection_hollow_access and not filter_legitimate
falsepositives:
- Ferramentas legítimas de segurança e monitoramento (EDR, AV) que inspecionam memória de processos
level: high
tags:
- attack.defense_evasion
- attack.privilege_escalation
- attack.t1055.012
```
## Mitigação
| Controle | Implementação Prática | Prioridade |
|----------|-----------------------|------------|
| EDR com detecção comportamental | Implantar solução EDR com capacidade de detectar sequências de chamadas de API suspeitas (CreateProcess + ZwUnmapViewOfSection + WriteProcessMemory + ResumeThread) | Alta |
| Proteção de memória (M1040) | Habilitar [[m1040-behavior-prevention-on-endpoint\|M1040 - Behavior Prevention on Endpoint]] - soluções como Windows Defender Credential Guard e Exploit Protection dificultam a escrita em memória de processos do sistema | Alta |
| Sysmon - ProcessTampering | Configurar Sysmon versão 13+ com detecção de `ProcessTampering` (Event ID 25) habilitada para alertar em tempo real sobre modificações de imagem de processo | Alta |
| Restrição de chamadas de API | Habilitar políticas de Attack Surface Reduction (ASR) no Microsoft Defender para bloquear comportamentos de injeção de código | Média |
| Monitoramento de hierarquia de processos | Alertar para processos do sistema (`svchost.exe`, `lsass.exe`) criados por pais inesperados - ex: `Word.exe` criando `svchost.exe` | Média |
| Isolamento de aplicações | Usar Windows Sandbox ou containers para executar documentos e arquivos de fontes não confiáveis, limitando o escopo de qualquer injeção | Baixa |
## Threat Actors que Usam
- [[g0078-gorgon-group|Gorgon Group]] - grupo paquistanês que usa Process Hollowing em campanhas de phishing contra governos e empresas, com alvos documentados na América do Sul
- [[g0027-threat-group-3390|Threat Group-3390]] - APT chinês que emprega a técnica como parte de sua cadeia de infecção multi-estágio em operações de espionagem prolongadas
- [[g0040-patchwork|Patchwork]] - grupo de espionagem sul-asiático que usa Process Hollowing para carregar [[s1065-woody-rat|Woody RAT]] e outros implantes de forma encoberta
- [[g1043-blackbyte|BlackByte]] - operador de ransomware com ataques documentados no Brasil, usa a técnica para evadir EDRs durante a fase de implantação do ransomware
- [[g1018-ta2541|TA2541]] - grupo de crimes financeiros que distribui RATs via [[s1086-snip3|Snip3]] usando Process Hollowing para evasão em campanhas de phishing massivo
- [[g0045-apt10|menuPass]] - APT chinês (APT10) que usa a técnica para carregar implantes em processos legítimos durante operações de espionagem de longa duração
- [[g0094-kimsuky|Kimsuky]] - grupo norte-coreano de espionagem que emprega Process Hollowing em campanhas direcionadas a organizações de pesquisa e governo
## Software Associado
- [[s0483-icedid|IcedID]] - trojan bancário que usa Process Hollowing para injetar seus módulos em processos do navegador e interceptar transações financeiras online
- [[s1207-xloader|XLoader]] - malware de roubo de informações que usa a técnica para se esconder em processos legítimos do Windows durante coleta de credenciais
- [[s0662-rcsession|RCSession]] - RAT atribuído ao grupo [[g0027-threat-group-3390|Threat Group-3390]] que utiliza Process Hollowing como mecanismo primário de evasão
- [[s0354-denis|Denis]] - backdoor de múltiplos estágios que usa injeção em processos legítimos para persistir em ambientes comprometidos
- [[s1065-woody-rat|Woody RAT]] - RAT sofisticado atribuído ao grupo [[g0040-patchwork|Patchwork]] que implementa Process Hollowing para carregar payloads adicionais
- [[s0344-azorult|Azorult]] - stealer amplamente distribuído que usa a técnica para injetar seu código em processos do sistema antes de exfiltrar credenciais
- [[s0650-qakbot|QakBot]] - trojan bancário historicamente muito prevalente no Brasil, usa Process Hollowing para injetar módulos em `explorer.exe` e processos de browsers
- [[s0154-cobalt-strike|Cobalt Strike]] - framework de ataque ofensivo cujos beacons usam extensivamente Process Hollowing para carregar em processos legítimos como `svchost.exe`
- [[s0447-lokibot|Lokibot]] - stealer de senhas que usa a técnica para evadir soluções antivírus durante a fase de coleta de credenciais
- [[s1086-snip3|Snip3]] - loader que usa Process Hollowing para carregar RATs em processos legítimos, amplamente distribuído em campanhas de phishing contra empresas latino-americanas
---
*Fonte: [MITRE ATT&CK - T1055.012](https://attack.mitre.org/techniques/T1055/012)*