# T1055.003 - Thread Execution Hijacking ## Técnica Pai Esta é uma sub-técnica de [[t1055-process-injection|T1055 - T1055 - Process Injection]]. ## Descrição Thread Execution Hijacking (T1055.003) é uma subtécnica de [[t1055-process-injection|Process Injection]] na qual o adversário injeta código malicioso dentro de um processo legítimo já em execução, aproveitando específicamente um de seus threads ativos. Em vez de criar um novo processo (o que seria facilmente detectado por soluções de segurança), o atacante sequestra um thread existente: suspende sua execução, aloca memória no espaço de endereço do processo-alvo, escreve o payload, redireciona o contexto do thread para o código injetado e o retoma - tudo dentro de um processo que o sistema operacional considera confiável. O fluxo técnico padrão utiliza uma cadeia de chamadas nativas da API Windows: `OpenThread` para obter um handle ao thread-alvo, `SuspendThread` para pausá-lo, `VirtualAllocEx` para reservar memória executável no processo remoto, `WriteProcessMemory` para gravar o payload, `SetThreadContext` para redirecionar o ponteiro de instrução (`RIP`/`EIP`) ao código injetado, e finalmente `ResumeThread` para retomar a execução - agora sob controle do atacante. Essa técnica é conceitualmente similar ao [[t1055-012-process-hollowing|Process Hollowing]], mas opera sobre um processo vivo, não sobre um processo criado em estado suspenso. **Contexto Brasil/LATAM:** Thread Execution Hijacking é amplamente empregado por loaders modernos e RATs comerciais que circulam em operações de crime cibernético direcionadas ao Brasil - como [[pikabot|Pikabot]] e variantes do [[s0168-gazer|Gazer]] -, especialmente em campanhas de fraude bancária e espionagem corporativa. A técnica é particularmente eficaz contra ambientes SOC brasileiros que dependem fortemente de antivírus de assinatura, pois a execução se mascara completamente sob o contexto de processos legítimos como `explorer.exe`, `svchost.exe` ou navegadores. Ferramentas de [[_playbooks|threat hunting]] devem monitorar ativamente a sequência de chamadas de API associada a essa técnica. ## Attack Flow ```mermaid graph TB A([Acesso Inicial]) --> B([Execução de Payload Inicial]) B --> C[**T1055.003 - Thread Execution Hijacking**]:::highlight C --> D([Execução Mascarada em Processo Legítimo]) D --> E([Persistência / C2 / Movimento Lateral]) classDef highlight fill:#e74c3c,color:#fff,stroke:#c0392b,stroke-width:2px ``` ## Como Funciona ### 1. Preparação O adversário identifica um processo legítimo e de longa duração no sistema comprometido como alvo para injeção - preferêncialmente um processo com alta reputação e sem monitoramento intenso, como `explorer.exe`, `svchost.exe` ou `RuntimeBroker.exe`. Enumera os threads ativos do processo-alvo usando `CreateToolhelp32Snapshot` + `Thread32First`/`Thread32Next`. Seleciona o thread mais adequado (geralmente um thread ocioso ou secundário) e obtém um handle com `OpenThread(THREAD_ALL_ACCESS, FALSE, threadId)`. ### 2. Execução Com o handle do thread em mãos, o adversário executa a cadeia de injeção: 1. **Suspender o thread:** `SuspendThread(hThread)` - pausa a execução sem matar o processo 2. **Alocar memória executável:** `VirtualAllocEx(hProcess, NULL, payloadSize, MEM_COMMIT, PAGE_EXECUTE_READWRITE)` - reserva espaço no processo remoto 3. **Escrever o payload:** `WriteProcessMemory(hProcess, allocBase, payload, payloadSize, NULL)` - copia o shellcode ou DLL path 4. **Redirecionar o contexto:** `GetThreadContext` → modifica `ctx.Rip = (DWORD64)allocBase` → `SetThreadContext(hThread, &ctx)` - aponta o thread para o código malicioso 5. **Retomar execução:** `ResumeThread(hThread)` - o thread agora executa o payload no contexto do processo-alvo ### 3. Pós-execução O payload é executado com os privilégios e o contexto de segurança do processo-alvo. Se o processo-alvo for um processo de sistema (`svchost.exe` com `NT AUTHORITY\SYSTEM`), o adversário obtém elevação de privilégios implícita. O código malicioso pode estabelecer comunicação C2, carregar módulos adicionais ou abrir caminho para [[t1021-remote-services|movimento lateral]]. Após a injeção, o thread retorna ao comportamento normal do processo original, tornando a detecção forense mais difícil. ## Detecção ### Event IDs Relevantes | Plataforma | Event ID / Fonte | Descrição | |-----------|-----------------|-----------| | Windows | Sysmon Event 8 (CreateRemoteThread) | Detecta criação de threads remotos - captura parcial do padrão | | Windows | Sysmon Event 10 (ProcessAccess) | Acesso a processo remoto com `THREAD_SUSPEND_RESUME` + `THREAD_SET_CONTEXT` | | Windows | ETW (Microsoft-Windows-Kernel-Audit-API-Calls) | Chamadas de API como `NtSetContextThread`, `NtSuspendThread` | | Windows | EDR comportamental | Sequência `SuspendThread → VirtualAllocEx → WriteProcessMemory → SetThreadContext → ResumeThread` | ### Sigma Rule ```yaml title: Thread Execution Hijacking via API Chain id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 status: experimental description: > Detecta padrão comportamental de Thread Execution Hijacking - sequência de acesso a thread remoto com permissões de suspensão e modificação de contexto, típico da técnica T1055.003 usada por loaders como Pikabot e Waterbear. references: - T1055.003 author: RunkIntel daté: 2026-03-24 tags: - attack.defense_evasion - attack.privilege_escalation - attack.t1055.003 logsource: product: windows category: process_access detection: selection: TargetImage|endswith: - '\explorer.exe' - '\svchost.exe' - '\RuntimeBroker.exe' - '\dllhost.exe' GrantedAccess|contains: - '0x1fffff' - '0x1f3fff' - '0x143a' filter_legitimate: SourceImage|startswith: - 'C:\Windows\System32\' - 'C:\Program Files\' condition: selection and not filter_legitimate falsepositives: - Ferramentas de debug legítimas (WinDbg, x64dbg) - Software de virtualização (VMware, Hyper-V) - Agentes de monitoramento de performance level: high ``` ## Mitigação | Controle | Ação Recomendada | Prioridade | |---------|-----------------|-----------| | [[m1040-behavior-prevention-on-endpoint\|M1040]] - Prevenção Comportamental | Habilitar proteção de memória do EDR (ex: CrowdStrike Prevent, Defender for Endpoint com bloqueio de injeção) | Alta | | Sysmon | Configurar Event ID 8 (CreateRemoteThread) e Event ID 10 (ProcessAccess) - enviar ao SIEM com alertas de alta prioridade | Alta | | ETW Monitoring | Monitorar chamadas `NtSetContextThread` e `NtSuspendThread` via ETW ou EDR com cobertura de API-level | Alta | | Restrição de API | Em ambientes controlados, usar Microsoft Attack Surface Reduction (ASR) rules para bloquear injeção de código entre processos | Média | | Process Isolation | Isolar processos críticos com Protected Process Light (PPL) ou Virtualization Based Security (VBS) | Média | | Threat Hunting | Buscar regularmente por processos com handles abertos para outros processos com `THREAD_SET_CONTEXT` - especialmente processos de usuário acessando `svchost.exe` | Alta | | UEBA | Correlacionar injeção de thread com comportamento de rede subsequente - process injection seguido de beacon C2 é indicativo forte de comprometimento | Alta | ## Threat Actors Esta subtécnica é tipicamente usada por grupos com capacidade técnica avançada, especialmente aqueles que desenvolvem ou adquirem loaders sofisticados: - Grupos APT com histórico de uso de [[pikabot|Pikabot]] e [[s0579-waterbear|Waterbear]] como stagers utilizam essa técnica para estabelecer persistência furtiva em ambientes corporativos - Operadores de [[s0168-gazer|Gazer]] (associado ao grupo [[g0010-turla|Turla]]) documentadamente usam thread hijacking como parte da cadeia de injeção do backdoor - Usuários do [[s0094-trojankaragany|Trojan.Karagany]] (atribuído ao grupo Dragonfly/Energetic Bear) empregam a técnica em campanhas de espionagem industrial - Em LATAM, a técnica é observada em operações de crime financeiro que reutilizam builders de loaders comerciais com suporte nativo a thread injection ## Software Associado - [[pikabot|Pikabot]] - loader modular amplamente distribuído via campanhas de e-mail; usa thread hijacking como mecanismo de injeção do core module em processos legítimos - [[s0579-waterbear|Waterbear]] - malware modular do grupo BlackTech; implementa thread execution hijacking para manter furtividade em redes corporativas - [[s0168-gazer|Gazer]] - backdoor do grupo Turla; usa injeção de thread como parte de sua arquitetura de persistência e evasão - [[s0094-trojankaragany|Trojan.Karagany]] - RAT usado em campanhas de espionagem industrial; emprega a técnica para esconder comunicação C2 dentro de processos de rede legítimos --- *Fonte: [MITRE ATT&CK - T1055.003](https://attack.mitre.org/techniques/T1055/003)*