# T1055 - Process Injection ## Descrição **Process Injection** é uma das técnicas mais prevalentes e versáteis do arsenal de adversários modernos. Ela consiste em injetar e executar código arbitrário no espaço de memória de um processo legítimo em execução, permitindo ao adversário: - **Evasão de defesas:** A execução ocorre sob a identidade de um processo confiável (ex: `svchost.exe`, `explorer.exe`, `lsass.exe`), mascarando atividade maliciosa de ferramentas de segurança baseadas em processo - **Escalada de privilégios:** Injetar em um processo com privilégios mais elevados concede ao adversário esses mesmos privilégios de forma eficaz - **Acesso a recursos protegidos:** O código injetado herda o contexto de segurança do processo alvo, incluindo tokens de acesso, credenciais em memória e conexões de rede estabelecidas - **Persistência encoberta:** Código malicioso rodando dentro de processos legítimos é muito mais difícil de identificar e remover A técnica é implementada de múltiplas formas - cada sub-técnica explora diferentes APIs, mecanismos do SO e vetores de execução. Todas compartilham o princípio fundamental: o código malicioso executa sob o contexto de outro processo para ocultar sua presença. Process Injection é uma técnica **técnica pai** com 12 sub-técnicas documentadas no MITRE ATT&CK, cada uma representando um vetor distinto de injeção: | Sub-técnica | Mecanismo Principal | Plataforma | |-------------|---------------------|-----------| | [[t1055-001-dynamic-link-library-injection\|T1055.001 - DLL Injection]] | `LoadLibrary` / `CreateRemoteThread` | Windows | | [[t1055-002-portable-executable-injection\|T1055.002 - PE Injection]] | Aloca e escreve PE em processo remoto | Windows | | [[t1055-003-thread-execution-hijacking\|T1055.003 - Thread Execution Hijacking]] | Suspende thread, sobrescreve contexto | Windows | | [[t1055-004-asynchronous-procedure-call\|T1055.004 - APC Injection]] | `QueueUserAPC` / NtQueueApcThread | Windows | | [[t1055-005-thread-local-storage\|T1055.005 - Thread Local Storage]] | TLS callbacks no PE carregado | Windows | | [[t1055-008-ptrace-system-calls\|T1055.008 - Ptrace System Calls]] | `ptrace()` syscall | Linux | | [[t1055-009-proc-memory\|T1055.009 - Proc Memory]] | `/proc/PID/mem` write | Linux | | [[t1055-011-extra-window-memory-injection\|T1055.011 - EWM Injection]] | `SetWindowLong` / window memory | Windows | | [[t1055-012-process-hollowing\|T1055.012 - Process Hollowing]] | Cria processo suspenso, substitui imagem | Windows | | [[t1055-013-process-doppelgnging\|T1055.013 - Process Doppelgänging]] | TxF (transações NTFS) para bypass AV | Windows | | [[t1055-014-vdso-hijacking\|T1055.014 - VDSO Hijacking]] | Modifica mapeamento vDSO | Linux | | [[t1055-015-listplanting\|T1055.015 - ListPlanting]] | Corrompe listas de callbacks de jánelas | Windows | > Esta é a **técnica pai**. Para análise de vetores específicos, consulte as sub-técnicas acima. --- ## Como Funciona ### Primitivas fundamentais de injeção no Windows A maioria das técnicas de process injection no Windows compartilha um conjunto de primitivas de API do sistema: **Fase de Acesso ao Processo Alvo** O adversário seleciona um processo alvo - tipicamente um processo com alta credibilidade, como `svchost.exe` (hospeda serviços do Windows), `explorer.exe` (interface do usuário), `lsass.exe` (autenticação - acesso exige SYSTEM), ou `spoolsv.exe` (spooler de impressão). A seleção depende do objetivo: evasão vs. acesso a credenciais vs. elevação de privilégios. **Fase de Alocação de Memória** O adversário aloca espaço de memória no processo remoto com permissões de leitura, escrita e execução (RWX). APIs como `VirtualAllocEx` são a abordagem clássica; técnicas mais evasivas usam `NtMapViewOfSection` (seção compartilhada) ou alocação via `WriteProcessMemory` em regiões já existentes. **Fase de Escrita do Payload** O shellcode ou DLL/PE é copiado para a região alocada usando `WriteProcessMemory` ou via mapeamento de seção (`NtMapViewOfSection`). Payloads frequentemente são cifrados/ofuscados em memória até o momento da injeção para evitar detecção por scanners de memória. **Fase de Execução** O código injetado é executado no contexto do processo alvo por um dos vários mecanismos: criação de thread remota (`CreateRemoteThread`, `NtCreateThreadEx`), sequestro de thread existente, ou enfileiramento de chamada de procedimento assíncrono (APC). ### Primitivas no Linux/macOS No Linux, as técnicas de injeção exploram o subsistema `ptrace` - que permite a um processo pai inspecionar e modificar a memória e registros de um processo filho. O adversário usa `ptrace(PTRACE_ATTACH)` para se anexar a um processo, modifica registros e memória, e então usa `ptrace(PTRACE_DETACH)`. Alternativamente, `/proc/PID/mem` pode ser escrito diretamente se o processo tiver permissões suficientes. --- ## Attack Flow ```mermaid graph TB A["🎯 Código Malicioso<br/>Shellcode / DLL / PE<br/>pronto para injeção"] --> B["🔍 Seleção do Processo Alvo<br/>svchost, explorer, lsass<br/>alto trust / baixa visibilidade"] B --> C["🔑 Obter Handle<br/>OpenProcess com<br/>PROCESS_ALL_ACCESS"] C --> D["💾 Alocar Memória Remota<br/>VirtualAllocEx RWX<br/>no espaço do processo alvo"] D --> E["✍️ Escrever Payload<br/>WriteProcessMemory<br/>copia shellcode/DLL"] E --> F{"Método de<br/>Execução"} F -->|"Thread Remota"| G["🧵 CreateRemoteThread<br/>NtCreateThreadEx<br/>thread executa payload"] F -->|"APC"| H["📬 QueueUserAPC<br/>enfileira chamada<br/>para thread alerta"] F -->|"Hollowing"| I["🕳️ NtUnmapViewOfSection<br/>vazia processo legítimo<br/>substitui por malware"] F -->|"Doppelgänging"| J["📄 TxF Transaction<br/>cria processo via NTFS<br/>transaction - evade AV"] G --> K["🎭 Execução Mascarada<br/>Malware roda como<br/>processo legítimo confiado"] H --> K I --> K J --> K K --> L["📡 C2 Commúnication<br/>Tráfego de rede sai<br/>do processo legítimo"] K --> M["🔐 Credential Access<br/>Leitura de memória lsass<br/>dump de credenciais"] K --> N["↔️ Lateral Movement<br/>Pass-the-Hash / Token<br/>Impersonation"] style A fill:#c0392b,color:#fff style K fill:#8e44ad,color:#fff style L fill:#2c3e50,color:#fff style M fill:#2c3e50,color:#fff style N fill:#2c3e50,color:#fff ``` --- ## Exemplos de Uso ### APT38 / Lazarus Group - Campanhas Financeiras O grupo norte-coreano [[g0082-apt38|APT38]], responsável por roubos bilionários do sistema SWIFT e ataques a exchanges de criptomoedas (incluindo o [[bybit-heist-2025|Bybit Heist de 2025]], com USD 1,5 bilhão roubados), utiliza extensivamente process injection em suas campanhas: - O malware [[s0520-blindingcan|BLINDINGCAN]] injeta em processos do navegador para interceptar credenciais bancárias - Ferramentas de pós-exploração do grupo usam Process Hollowing para executar backdoors sob aparência de processos Windows legítimos - O grupo usa [[t1055-012-process-hollowing|T1055.012 - Process Hollowing]] específicamente em alvos financeiros para evadir EDR ### Cobalt Group - Ataques a Bancos LATAM O [[g0080-cobalt-group|Cobalt Group]] (também conhecido como Cobalt Spider) realizou múltiplos ataques contra bancos na América Latina, incluindo instituições brasileiras. O grupo usa Cobalt Strike com técnicas avançadas de injeção: - **Beacon** do [[s0154-cobalt-strike|Cobalt Strike]] injeta em `svchost.exe` por padrão para mascarar tráfego C2 - DLL Injection via [[t1055-001-dynamic-link-library-injection|T1055.001]] é o vetor primário de implantação persistente - APC Injection via [[t1055-004-asynchronous-procedure-call|T1055.004]] é usado para evasão de produtos EDR específicos ### APT32 (OceanLotus) - Espionagem no Sudeste Asiático e LATAM O grupo vietnamita [[g0050-apt32|APT32]] (OceanLotus) usa process injection sofisticado em campanhas de espionagem contra governos e empresas em múltiplos países, incluindo presença crescente em LATAM: - Process injection em processos do Microsoft Office para executar macros maliciosas invisíveis - Injeção em processos de segurança para obter visibilidade de configurações defensivas ### Wizard Spider - Operações Ryuk/Conti no Brasil O [[g0102-conti-group|Wizard Spider]] tem histórico de ataques a organizações brasileiras nos setores de saúde, governo e manufatura. Suas ferramentas ([[s0534-bazar|Bazar]], [[conti|Conti]]) utilizam process injection como elemento central: - [[s0534-bazar|BazarLoader]] / [[s0534-bazar|BazarBackdoor]] inject em `svchost.exe` e `explorer.exe` via APC injection - O estágio final Ryuk usa múltiplas formas de injeção para migrar para processos com maiores privilégios antes de iniciar encriptação ### Kimsuky - Espionagem de Estado Norte-Coreano O grupo [[g0094-kimsuky|Kimsuky]], também norte-coreano, usa técnicas de injeção para espionagem de longo prazo: - Process injection para instalar keyloggers e screen capturers em processos de produtividade - Uso de [[t1055-003-thread-execution-hijacking|T1055.003 - Thread Execution Hijacking]] para evasão de soluções EDR modernas ### Ferramentas de Red Team Amplamente Abusadas | Ferramenta | Técnicas de Injeção | Uso por Adversários | |-----------|---------------------|---------------------| | [[s0154-cobalt-strike\|Cobalt Strike]] | DLL, APC, Hollowing, Reflective | APT38, Cobalt Group, TA505, FIN7 | | [[s0633-sliver\|Sliver]] | Shellcode injection, DLL | Grupos ransomware emergentes | | [[metasploit\|Metasploit]] | Multiple (migraté, getsystem) | Amplo espectro | | [[s0534-bazar\|BazarLoader]] | APC, Remote Thread | Wizard Spider | | [[s0331-agent-tesla\|Agent Tesla]] | Process injection para evasão | Grupos de fraud e espionagem | | [[s0398-hyperbro\|HyperBro]] | Reflective DLL injection | APT41, LuckyMouse | --- ## Detecção ### Fontes de dados críticas | Fonte | Evento/API | O que detecta | |-------|-----------|---------------| | Sysmon | Event ID 8 (CreateRemoteThread) | Thread remota criada em processo alvo | | Sysmon | Event ID 10 (ProcessAccess) | Acesso a processo com permissões suspeitas | | Windows ETW | `Microsoft-Windows-Kernel-Process` | VirtualAllocEx, WriteProcessMemory | | EDR hooks | API hooking em ntdll.dll | Chamadas diretas de syscall (SSDT bypass) | | Memory scanning | Yara em memória de processos | Shellcode signatures, PE em memória sem arquivo | | Network | Tráfego C2 de processos inesperados | svchost.exe abrindo conexões externas | ### Regra Sigma - CreateRemoteThread Suspeito ```yaml title: Suspicious CreateRemoteThread - Process Injection Indicator id: e1f7a3b5-6c8d-6e0f-1a2b-3c4d5e6f7a8b status: experimental description: > Detecta criação de thread remota em processos sensíveis do Windows - indicador primário de Process Injection (T1055). Foco em injeções em processos de alta credibilidade usados por adversários para evasão. author: RunkIntel daté: 2026-03-25 references: - https://attack.mitre.org/techniques/T1055/ - https://github.com/SigmaHQ/sigma/blob/master/rules/windows/creaté_remote_thread/ logsource: product: windows category: creaté_remote_thread detection: selection: TargetImage|endswith: - '\svchost.exe' - '\explorer.exe' - '\lsass.exe' - '\spoolsv.exe' - '\winlogon.exe' - '\csrss.exe' - '\services.exe' filter_legit_sources: SourceImage|startswith: - 'C:\Windows\System32\' - 'C:\Windows\SysWOW64\' condition: selection and not filter_legit_sources falsepositives: - Algumas soluções de segurança legítimas injetam em processos para monitoramento - Softwares de acessibilidade podem injetar em processos de UI level: high tags: - attack.defense_evasion - attack.privilege_escalation - attack.t1055 ``` ### Regra Sigma - Acesso a Processo LSASS (Credential Dumping via Injection) ```yaml title: LSASS Memory Access - Process Injection for Credential Dumping id: f2a8b4c6-7d9e-7f1a-2b3c-4d5e6f7a8b9c status: experimental description: > Detecta acesso à memória do processo lsass.exe com permissões que permitem leitura de memória - típico de Process Injection para dump de credenciais. Combinação de T1055 com T1003.001 (LSASS Memory). author: RunkIntel daté: 2026-03-25 logsource: product: windows category: process_access detection: selection: TargetImage|endswith: '\lsass.exe' GrantedAccess|contains: - '0x1010' - '0x1410' - '0x147a' - '0x143a' filter_legit: SourceImage|startswith: - 'C:\Windows\System32\csrss.exe' - 'C:\Windows\System32\wininit.exe' condition: selection and not filter_legit falsepositives: - Software antivírus e EDR acessando lsass para proteção - Ferramentas de diagnóstico de suporte Microsoft level: critical tags: - attack.credential_access - attack.defense_evasion - attack.t1055 - attack.t1003.001 ``` --- ## Sub-técnicas - [[t1055-001-dynamic-link-library-injection|T1055.001 - Dynamic-link Library Injection]] - [[t1055-002-portable-executable-injection|T1055.002 - Portable Executable Injection]] - [[t1055-003-thread-execution-hijacking|T1055.003 - Thread Execution Hijacking]] - [[t1055-004-asynchronous-procedure-call|T1055.004 - Asynchronous Procedure Call]] - [[t1055-005-thread-local-storage|T1055.005 - Thread Local Storage]] - [[t1055-008-ptrace-system-calls|T1055.008 - Ptrace System Calls]] - [[t1055-009-proc-memory|T1055.009 - Proc Memory]] - [[t1055-011-extra-window-memory-injection|T1055.011 - Extra Window Memory Injection]] - [[t1055-012-process-hollowing|T1055.012 - Process Hollowing]] - [[t1055-013-process-doppelgnging|T1055.013 - Process Doppelgänging]] - [[t1055-014-vdso-hijacking|T1055.014 - VDSO Hijacking]] - [[t1055-015-listplanting|T1055.015 - ListPlanting]] ## Mitigação | ID | Mitigação | Descrição Detalhada | |----|-----------|---------------------| | [[m1040-behavior-prevention-on-endpoint\|M1040 - Behavior Prevention on Endpoint]] | **EDR com Prevenção Comportamental** | Soluções EDR modernas (CrowdStrike Falcon, Microsoft Defender for Endpoint, SentinelOne) detectam e bloqueiam process injection em tempo real via hooking de API e análise comportamental. Garantir que proteção comportamental (não apenas assinaturas) estejá ativa e não bypassada. | | [[m1026-privileged-account-management\|M1026 - Privileged Account Management]] | **Gestão de Privilégios** | Limitar quais processos têm o privilégio `SeDebugPrivilege` - necessário para `OpenProcess` com acesso completo a processos de outros usuários. Remover SeDebugPrivilege de contas não administrativas. Usar grupos de administração separados para operações sensíveis. | | Credential Guard | **Windows Credential Guard** | Habilitar Windows Credential Guard (via Hyper-V Virtualization Based Security) para proteger hashes de credenciais em `lsass.exe` contra dump via process injection - bloqueia T1055 + T1003.001 combinados. | | Sysmon | **Monitoramento de Processo** | Configurar Sysmon com regras para Event ID 8 (CreateRemoteThread), Event ID 10 (ProcessAccess com GrantedAccess suspeito) e Event ID 25 (ProcessTampering). Enviar para SIEM com alertas de alta fidelidade. | | WDAC/AppLocker | **Controle de Aplicações** | Windows Defender Application Control pode bloquear carregamento de DLLs não assinadas e restringir injeção de código não autorizado em processos protegidos. | | PPL | **Protected Processes Light** | Configurar processos críticos (lsass.exe) como Protected Process Light (PPL) para impedir acesso mesmo por processos com privilégios de administrador. Habilita via `RunAsPPL` no registro. | --- ## Contexto Brasil/LATAM ### Prevalência em Ataques ao Brasil Process Injection é uma das técnicas mais frequentemente observadas em incidentes de segurança no Brasil, especialmente em: **Trojans bancários LATAM** O ecossistema de trojans bancários brasileiro - [[s0531-grandoreiro|Grandoreiro]], Mekotio, Casbaneiro, [[guildma|Guildma]] (Astaroth) - utiliza process injection extensivamente. O [[s0531-grandoreiro|Grandoreiro]], em particular, injeta em processos de navegadores (Chrome, Firefox, Edge) para interceptar transações bancárias online. Estas famílias representam uma ameaça endêmica ao setor financeiro brasileiro, com o Banco Central e CERT.br emitindo alertas recorrentes. **Cobalt Strike em ataques a bancos** O uso de [[s0154-cobalt-strike|Cobalt Strike]] por grupos criminosos atacando bancos brasileiros foi documentado em múltiplos incidentes. O Beacon do Cobalt Strike usa process injection como mecanismo padrão de persistência, injetando em `svchost.exe` por padrão. Grupos como [[g0080-cobalt-group|Cobalt Group]] têm histórico de operações contra instituições financeiras da América Latina. **Ransomware em hospitais e governo estadual** Ataques ransomware contra hospitais públicos e secretarias de estado no Brasil (São Paulo, Rio de Janeiro, Minas Gerais) frequentemente utilizam process injection como etapa de pós-exploração antes da encriptação. O uso de Cobalt Strike e ferramentas derivadas de Conti em incidentes brasileiros foi documentado pelo CERT.br e pesquisadores independentes. ### Ferramentas EDR no Mercado Brasileiro A adoção de EDR no Brasil ainda é concentrada em grandes empresas e bancos. PMEs e setor público frequentemente dependem de antivírus tradicionais baseados em assinatura, que têm eficácia limitada contra process injection moderno (especialmente técnicas como Process Doppelgänging e VDSO Hijacking que evitam APIs monitoradas). ### Setores mais afetados - [[financial|Setor Financeiro]] - trojans bancários com injeção em navegadores - [[setor-saude|Saúde]] - ransomware pós-exploração em hospitais públicos - [[government|Governo Estadual]] - campanhas de espionagem e ransomware oportunistas - [[setor-telecomúnicacoes|Telecomúnicações]] - espionagem de estado via APT com persistence em longo prazo --- ## Software Associado - [[s0331-agent-tesla|Agent Tesla]] (malware) - RAT com injeção em processos de navegador para credential theft - [[s0681-lizar|Lizar]] (malware) - toolkit modular do Silence Group com múltiplos injectors - [[slothfulmedia|SLOTHFULMEDIA]] (malware) - backdoor com injeção em processos do sistema - [[s0581-ironnetinjector|IronNetInjector]] (ferramenta) - ferramenta dedicada de injeção de código - [[s1159-dusttrap|DUSTTRAP]] (malware) - implante APT com injeção em processos de serviço - [[badhatch|BADHATCH]] (malware) - backdoor FIN8 com process injection para evasão EDR - [[s0398-hyperbro|HyperBro]] (malware) - backdoor APT41/LuckyMouse com reflective DLL injection - [[s0633-sliver|Sliver]] (ferramenta) - C2 open-source com múltiplos módulos de injeção - [[s0534-bazar|Bazar]] (malware) - Wizard Spider - BazarLoader com APC injection - [[s0436-tscookie|TSCookie]] (malware) - backdoor APT10 com process injection para persistência --- ## Referências - [MITRE ATT&CK - T1055](https://attack.mitre.org/techniques/T1055/) - [Elastic - Process Injection Techniques Explained](https://www.elastic.co/blog/ten-process-injection-techniques-technical-survey-common-and-trending-process) - [Mandiant - In-Memory Evasion](https://www.mandiant.com/resources/blog/in-memory-evasion) - [Checkpoint Research - Process Injection Techniques](https://research.checkpoint.com/2019/finspy-surveillance-tool-modular-and-evolving/) - [CERT.br - Análise de Trojans Bancários com Injeção](https://www.cert.br/docs/) - [SigmaHQ - Process Injection Detection Rules](https://github.com/SigmaHQ/sigma/tree/master/rules/windows/creaté_remote_thread) - [Windows Internals - Chapter 8: Security](https://docs.microsoft.com/en-us/sysinternals/resources/windows-internals) - [[t1003-001-lsass-memory|T1003.001 - LSASS Memory]] - [[t1134-access-token-manipulation|T1134 - Access Token Manipulation]] - [[t1068-exploitation-for-privilege-escalation|T1068 - Exploitation for Privilege Escalation]]