# T1134.004 - Parent PID Spoofing ## Técnica Pai Sub-técnica de [[t1134-access-token-manipulation|T1134 - Access Token Manipulation]], que abrange todas as formas de manipulação de tokens de acesso no Windows para evasão de defesas e elevação de privilégios. ## Descrição Adversários podem falsificar o identificador do processo pai (PPID - *Parent Process Identifier*) de um novo processo para contornar defesas de monitoramento de processos ou para elevar privilégios no sistema comprometido. No Windows, todo processo nasce de um processo pai, formando uma árvore hierárquica que ferramentas de EDR e SIEM monitoram para detectar comportamentos anômalos. Normalmente, um processo filho herda o contexto e o token de acesso do pai. A API `CreateProcess` aceita uma estrutura `STARTUPINFOEX` que permite específicar explicitamente qual processo deve figurar como pai, independentemente de quem realmente criou o novo processo. Essa funcionalidade existe legitimamente no Windows - o [[t1548-002-bypass-user-account-control|User Account Control (UAC)]], por exemplo, a utiliza para que processos elevados apareçam como filhos do `svchost.exe` ou `consent.exe`, e não do processo original do usuário. Adversários abusam dessa mesma capacidade para mascarar a origem real de um processo malicioso. Um cenário clássico de abuso é falsificar o PPID do [[t1059-001-powershell|PowerShell]] ou do [[t1218-011-rundll32|Rundll32]] para que pareçam filhos do `explorer.exe`, quando na realidade foram criados por um documento Office malicioso entregue via [[t1566-001-spearphishing-attachment|Spearphishing Attachment]]. Regras de detecção que monitoram relações pai-filho suspeitas (como `WINWORD.EXE → powershell.exe`) são completamente contornadas. Além da evasão, a técnica pode ser usada para elevação de privilégios: um adversário com acesso de administrador pode criar um processo e definir como pai um processo privilegiado (como `lsass.exe`), fazendo o novo processo herdar um token de acesso com nível SYSTEM. ## Como Funciona A execução do PPID Spoofing envolve três passos principais via [[t1106-native-api|Native API]] do Windows: 1. **Abrir o processo-alvo como pai:** O adversário usa `OpenProcess` com permissão `PROCESS_ALL_ACCESS` ou `PROCESS_CREATE_PROCESS` para obter um handle para o processo que será designado como pai falso (ex.: `explorer.exe`). 2. **Preparar atributos do processo:** Uma estrutura `STARTUPINFOEX` é inicializada com `InitializeProcThreadAttributeList` e preenchida via `UpdateProcThreadAttribute` com o atributo `PROC_THREAD_ATTRIBUTE_PARENT_PROCESS`, apontando para o handle obtido no passo anterior. 3. **Criar o processo com PPID falsificado:** `CreateProcess` é chamado com a flag `EXTENDED_STARTUPINFO_PRESENT` e a estrutura `STARTUPINFOEX`, resultando em um processo filho que, nos logs e no Gerenciador de Tarefas, aparece como descendente do processo-pai escolhido pelo adversário. Este fluxo pode ser executado via [[t1059-005-visual-basic|Visual Basic]] embutido em macros de documentos Office, por código C/C++ compilado em um stager, ou por loaders como o [[s0154-cobalt-strike|Cobalt Strike]], que implementa essa funcionalidade nativamente em seus beacons. ## Attack Flow ```mermaid graph TB A["Acesso Inicial<br/>(Documento malicioso / Stager)"] --> B["Obter handle do processo-pai<br/>OpenProcess(PROCESS_CREATE_PROCESS)"] B --> C["Inicializar atributos<br/>InitializeProcThreadAttributeList<br/>UpdateProcThreadAttribute<br/>PROC_THREAD_ATTRIBUTE_PARENT_PROCESS"] C --> D["Criar processo filho<br/>CreateProcess com EXTENDED_STARTUPINFO_PRESENT"] D --> E{"Objetivo"} E --> F["Evasão de Defesa<br/>PPID falso: explorer.exe<br/>Contorna regras pai-filho de EDR"] E --> G["Elevação de Privilégio<br/>PPID falso: lsass.exe<br/>Herda token SYSTEM"] F --> H["Execução furtiva de<br/>PowerShell / Rundll32 / shellcode"] G --> H ``` ## Exemplos de Uso **Cobalt Strike - Beacon com PPID Spoofing** O [[s0154-cobalt-strike|Cobalt Strike]] possui configuração nativa de PPID (`ppid` no perfil Malleable C2). Operadores definem `explorer.exe` como pai falso para que os beacons filhos não apareçam vinculados a processos de Office ou navegadores, tornando ineficazes as regras de detecção baseadas em árvore de processos. **DarkGaté - Loader com falsificação de pai** O [[darkgaté|DarkGaté]] utiliza PPID Spoofing em conjunto com [[t1055-process-injection|injeção de processo]] para lançar payloads que parecem filhos legítimos de processos do sistema, como `RuntimeBroker.exe` ou `sihost.exe`. **KONNI - Campanha de espionagem norte-coreana** O malware [[konni|KONNI]], associado a atores norte-coreanos, emprega PPID Spoofing para ocultar a execução de implantes, fazendo-os parecer subprocessos de aplicações legítimas do Windows durante fases de persistência pós-comprometimento. **PipeMon - Framework de ataque modular** O [[s0501-pipemon|PipeMon]] adota a técnica para garantir que módulos carregados dinâmicamente não gerem relações pai-filho detectáveis por soluções de segurança endpoint. ## Detecção A detecção eficaz requer correlação entre o PPID reportado pelo sistema operacional e a cadeia real de criação de processos: - **ETW (Event Tracing for Windows):** O evento `Microsoft-Windows-Kernel-Process/ProcessStart` registra o PPID real e o PPID reportado separadamente, permitindo identificar discrepâncias. - **Sysmon (Event ID 1):** Registra `ParentProcessId` e `ParentImage`. Correlacionar com o PPID real obtido via ETW revela spoofing. - **Detecção comportamental:** Processos como `powershell.exe` ou `cmd.exe` com PPID de `explorer.exe`, mas sem jánela visível e criados fora do contexto de interação de usuário, são altamente suspeitos. - **Chamadas de API:** Monitorar uso de `UpdateProcThreadAttribute` com `PROC_THREAD_ATTRIBUTE_PARENT_PROCESS` via hooking ou ETW/WMI. ```yaml title: Possível PPID Spoofing via CreateProcess com Atributo Customizado status: experimental logsource: category: process_creation product: windows detection: selection_target: Image|endswith: - '\powershell.exe' - '\cmd.exe' - '\rundll32.exe' - '\mshta.exe' - '\wscript.exe' - '\cscript.exe' filter_expected_parents: ParentImage|endswith: - '\explorer.exe' - '\svchost.exe' - '\services.exe' selection_discrepancy: # PPID declarado != processo que realmente chamou CreateProcess # Requer correlação com ETW Microsoft-Windows-Kernel-Process IntegrityLevel: 'High' ParentImage|endswith: '\explorer.exe' CommandLine|contains: - '-enc ' - '-EncodedCommand' - '-nop' - 'IEX' condition: selection_target and selection_discrepancy and not filter_expected_parents falsepositives: - UAC elevation legítima (svchost.exe → processo elevado) - Processos de automação corporativa level: high tags: - attack.defense_evasion - attack.privilege_escalation - attack.t1134.004 ``` ## Mitigação | ID | Mitigação | Descrição | |----|-----------|-----------| | - | Monitoramento de comportamento em endpoint | Soluções de EDR com análise de cadeia de processos (Crowdstrike Falcon, Microsoft Defender for Endpoint) detectam discrepâncias de PPID em tempo real | | - | Princípio do menor privilégio | Reduzir contas com direitos de administrador limita a capacidade de abrir handles para processos privilegiados como `lsass.exe` | | - | Auditoria de chamadas de API sensíveis | Monitorar `OpenProcess` com permissões elevadas e `UpdateProcThreadAttribute` via ETW ou ferramentas de instrumentação | | - | ASR (Attack Surface Reduction) | Regras ASR do Microsoft Defender bloqueiam Office de criar processos filhos (`Block Office applications from creating child processes`) | > **Nota:** Não há mitigações M-series do MITRE específicas para T1134.004. A defesa primária é detecção comportamental. ## Contexto Brasil/LATAM O PPID Spoofing é amplamente utilizado por grupos que operam na região como técnica de **anti-forense e evasão de EDR**. Nos ambientes corporativos brasileiros, onde a adoção de EDRs avançados com análise comportamental ainda é parcial em PMEs, a técnica tem alto potencial de sucesso. Grupos de [[ransomware]] que atacam o setor financeiro e de saúde no Brasil - incluindo operadores afiliados ao [[lockbit|LockBit]] e [[blackcat|ALPHV]] - utilizam loaders com PPID Spoofing integrado (especialmente via [[s0154-cobalt-strike|Cobalt Strike]] e variantes) durante a fase de implantação pós-comprometimento para evitar detecção antes da exfiltração de dados. Em investigações de incidentes conduzidos no Brasil, a técnica frequentemente aparece combinada com [[t1055-process-injection|injeção de processo]] e [[t1027-obfuscated-files-or-information|ofuscação de código]], formando uma cadeia de evasão que dificulta a reconstrução da linha do tempo de comprometimento. Times de [[_playbooks|resposta a incidentes]] devem incluir verificação de PPID spoofing nas etapas de análise forense de processos, especialmente ao investigar comprometimentos que envolvam documentos Office como vetor inicial. ## Referências - MITRE ATT&CK - T1134.004: Access Token Manipulation: Parent PID Spoofing - Técnicas relacionadas: [[t1134-access-token-manipulation|T1134]], [[t1055-process-injection|T1055]], [[t1059-001-powershell|T1059.001]], [[t1106-native-api|T1106]] - Malware que utiliza: [[s0154-cobalt-strike|Cobalt Strike]], [[darkgaté|DarkGaté]], [[konni|KONNI]], [[s0501-pipemon|PipeMon]] - Detecção complementar via [[t1134-001-token-impersonation|T1134.001 - Token Impersonation]] e [[t1548-002-bypass-user-account-control|T1548.002 - Bypass UAC]] *Fonte: MITRE ATT&CK - T1134.004*