# T1574.008 - Interceptação de Caminho por Sequestro de Ordem de Busca ## Técnica Pai [[t1574-hijack-execution-flow|T1574 - Sequestro de Fluxo de Execução]] ## Descrição Adversários exploram a lógica de busca de executáveis do Windows para fazer com que o sistema operacional carregue um payload malicioso no lugar de um programa legítimo. Quando um processo chama outro programa sem específicar o caminho completo, o Windows percorre uma sequência predefinida de diretórios em busca do executável - e o adversário aproveita essa sequência para posicionar um arquivo malicioso antes do binário legítimo nessa ordem de busca. A ordem padrão de busca do Windows para `cmd.exe /C programa.exe` começa pelo diretório do programa chamador, depois os diretórios do sistema (`System32`, `SysWOW64`), o diretório do Windows e, por fim, os diretórios listados na variável `%PATH%`. Um adversário que identifica um programa que chama outro sem caminho absoluto pode colocar um executável malicioso com o mesmo nome no diretório do programa chamador - e o Windows o executará automaticamente, com os mesmos privilégios do processo pai. Uma variação adicional explora a variável de ambiente `PATHEXT`, que define a ordem de prioridade das extensões de arquivo. Quando um comando é chamado sem extensão, o Windows busca por `.COM` antes de `.EXE`. Um adversário pode criar `programa.com` no mesmo diretório onde existe `programa.exe`, e o `.com` será executado primeiro - sem que o usuário ou o software chamador perceba a diferença. Esta técnica está documentada no contexto de ferramentas como [[s0363-empire|Empire]] e [[s0194-powersploit|PowerSploit]], frequentemente utilizadas em fases de pós-exploração por grupos como [[g0032-lazarus-group|Lazarus Group]] e [[g0046-fin7|FIN7]]. No contexto Brasil e LATAM, esta técnica é particularmente relevante em ambientes corporativos com software legado - sistemas desenvolvidos internamente ou ERPs regionais que frequentemente chamam utilitários do sistema sem específicar caminhos absolutos. A combinação de software antigo, diretórios de instalação com permissões relaxadas e ausência de monitoramento de criação de arquivos em diretórios de programas cria condições ideais para o sequestro de ordem de busca. Equipes de red team em exercícios no Brasil frequentemente identificam essa vulnerabilidade em softwares de automação industrial e sistemas bancários legados. ## Attack Flow ```mermaid graph TB A["Acesso Inicial ou<br/>Movimentação Lateral"] --> B["Reconhecimento de<br/>Processos Vulneráveis<br/>(sem caminho absoluto)"] B --> C["Criação de Executável<br/>Malicioso no Diretório Alvo"] C --> D["T1574.008 - SEQUESTRO DE<br/>ORDEM DE BUSCA<br/>(payload carregado no lugar do legítimo)"] D --> E1["Persistência<br/>(executado a cada invocação do programa pai)"] D --> E2["Escalada de Privilégios<br/>(se o processo pai roda como SYSTEM)"] E1 --> F["Execução Recorrente<br/>do Payload Malicioso"] E2 --> F ``` ## Como Funciona 1. **Preparação** - O adversário identifica um programa que chama um utilitário ou executável sem específicar o caminho completo. Ferramentas como `Process Monitor` (ProcMon) com filtro `NAME NOT FOUND` revealam essas chamadas vulneráveis. O adversário também verifica se tem permissão de escrita no diretório do programa chamador - condição necessária para a técnica funcionar. 2. **Execução** - Um payload malicioso é colocado no diretório do programa chamador, com o nome exato do executável que será buscado. Quando o programa legítimo executa e chama o utilitário, o Windows encontra o arquivo malicioso primeiro na ordem de busca e o executa. O payload pode ser um binário PE simples, um script wrapper que executa o programa legítimo após suas próprias ações (evitando alertas do usuário), ou uma DLL renomeada como `.exe`. 3. **Pós-execução** - O payload é executado com os mesmos privilégios do processo chamador. Se o programa pai roda como administrador ou SYSTEM (como um serviço Windows), o payload obtém esses privilégios automaticamente, configurando também um vetor de escalada de privilégios via [[t1574-hijack-execution-flow|T1574]]. O adversário mantém persistência enquanto o programa pai continuar sendo invocado pelo sistema ou pelos usuários. **Exemplo - identificação de chamada vulnerável e criação de payload:** ```cmd :: Identificar chamadas sem caminho absoluto via ProcMon (filtro NAME NOT FOUND) :: Programa vulnerável: C:\SoftwareLegado\app.exe chama "net.exe" sem caminho :: Adversário cria payload no diretório do programa vulnerável copy malware.exe "C:\SoftwareLegado\net.exe" :: Quando app.exe executar "net user", o Windows carrega C:\SoftwareLegado\net.exe :: antes de C:\Windows\System32\net.exe (ordem de busca padrão) ``` ## Detecção ```yaml title: Executável Criado em Diretório de Aplicação - Possível Search Order Hijacking status: experimental logsource: category: file_event product: windows detection: selection_suspicious_path: TargetFilename|contains: - '\Program Files\' - '\Program Files (x86)\' TargetFilename|endswith: - '.exe' - '.com' - '.bat' - '.cmd' filter_legitimate: Image|endswith: - '\msiexec.exe' - '\setup.exe' - '\installer.exe' - '\MicrosoftEdgeUpdaté.exe' selection_process_creation: ParentImage|contains: - '\Program Files\' Image|contains: - '\Program Files\' Image|endswith: - '\net.exe' - '\cmd.exe' - '\powershell.exe' condition: (selection_suspicious_path and not filter_legitimate) or selection_process_creation falsepositives: - Atualizações legítimas de software que instalam novos executáveis - Instaladores de patches que colocam binários temporários - Ferramentas de desenvolvimento com build in-place level: medium tags: - attack.persistence - attack.privilege_escalation - attack.defense_evasion - attack.t1574.008 ``` ## Mitigação | Mitigação | Orientação Prática | |-----------|-------------------| | [[m1022-restrict-file-and-directory-permissions\|M1022 - Restringir Permissões de Arquivos e Diretórios]] | Remover permissão de escrita de usuários não administradores nos diretórios de instalação de programas (`Program Files`, diretórios customizados); auditar ACLs regularmente e corrigir permissões excessivas em softwares legados | | [[m1038-execution-prevention\|M1038 - Prevenção de Execução]] | Implementar AppLocker ou Windows Defender Application Control (WDAC) com regras de allowlist baseadas em caminho e publisher; bloquear execução de binários fora de caminhos aprovados | | [[m1047-audit\|M1047 - Auditoria]] | Monitorar criação de arquivos executáveis em diretórios de programas por processos não autorizados; comparar baseline de executáveis em diretórios críticos e alertar para novos arquivos `.exe` e `.com` | ## Software Associado - [[s0363-empire|Empire]] - framework de pós-exploração com módulos para identificar e explorar search order hijacking - [[s0194-powersploit|PowerSploit]] - coleção de scripts PowerShell com funcionalidades para exploração de sequestro de caminho ## Referências *Fonte: [MITRE ATT&CK - T1574.008](https://attack.mitre.org/techniques/T1574/008)*