# T1574.007 - Path Interception by PATH Environment Variable ## Técnica Pai [[t1574-hijack-execution-flow|T1574 - Hijack Execution Flow]] ## Descrição Adversários podem executar payloads maliciosos ao envenenar variáveis de ambiente responsáveis por indicar ao sistema operacional onde procurar executáveis. A variável `PATH` contém uma lista ordenada de diretórios - o SO percorre essa lista sequencialmente até encontrar o binário solicitado pelo nome. Ao inserir um diretório controlado pelo adversário em posição anterior ao diretório legítimo, o sistema executa o binário malicioso no lugar do original, sem qualquer indicação visual para o usuário. Essa sub-técnica é uma das três formas de Path Interception documentadas pelo MITRE, sendo a mais portátil: funciona no Windows, macOS e Linux sem exigir privilégios administrativos em todos os cenários. O impacto vai além da persistência - permite evasão de controles de aplicação, pois o binário malicioso é executado no mesmo contexto de um processo confiável que o invocou. A técnica se beneficia de um padrão de desenvolvimento inseguro muito comum: scripts e automações corporativas que chamam binários pelo nome curto (ex: `python`, `git`, `curl`) sem específicar o caminho absoluto. Cada uma dessas chamadas representa um ponto de interceptação potencial para um adversário que consiga controlar o conteúdo de um diretório com prioridade alta no `PATH`. ## Como Funciona ### Windows No Windows, quando um comando é chamado sem caminho absoluto (ex: `net` em vez de `C:\Windows\System32\net.exe`), o SO percorre os diretórios listados em `PATH` na ordem configurada. A variável `PATH` do sistema é armazenada no Registro em `HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment`, enquanto a variável de usuário fica em `HKCU\Environment`. Um adversário que consiga colocar um arquivo `net.exe` em um diretório que aparece antes de `C:\Windows\System32\` fará com que seu binário malicioso sejá executado. Situações comuns que criam vulnerabilidade no Windows: - Instalação de ferramentas de desenvolvimento (Python, Node.js, Git) que adicionam seus diretórios no início do PATH - Scripts de automação e DevOps que chamam comandos pelo nome curto - Diretórios de usuário com permissão de escrita incluídos no PATH do sistema ### Linux e macOS Em ambientes Unix, a variável `$PATH` pode ser modificada diretamente via linha de comando ou via arquivos de configuração de shell, relacionando-se com [[t1546-004-unix-shell-configuration-modification|T1546.004 - Unix Shell Configuration Modification]] ao editar `~/.bashrc`, `~/.zshrc` ou `/etc/profile`. No macOS, o adversário pode também manipular a variável `$HOME` para redirecionar a busca de binários, ou inserir entradas em `/etc/paths.d/` para afetar todos os usuários do sistema. Ferramentas de pós-exploração como [[s0194-powersploit|PowerSploit]] e frameworks como [[s0363-empire|Empire]] incluem módulos para enumerar vulnerabilidades de PATH e automatizar a inserção de binários maliciosos em diretórios com alta prioridade na variável de ambiente. ## Attack Flow ```mermaid graph TB A[Adversário obtém<br/>acesso inicial ao sistema] --> B[Enumera variável PATH<br/>e permissões de diretórios] B --> C{Vetor de abuso} C --> D[Insere diretório malicioso<br/>no início do PATH] C --> E[Sobrescreve PATH via<br/>shell config ou registro] C --> F[macOS: modifica /etc/paths.d<br/>ou manipula HOME] D --> G[Cria binário com nome<br/>idêntico ao alvo legítimo] E --> G F --> G G --> H[Usuário ou script<br/>invoca comando por nome curto] H --> I[SO percorre PATH e encontra<br/>binário malicioso primeiro] I --> J[Payload executado no contexto<br/>do processo confiável] J --> K[Persistência + Evasão<br/>de controles de aplicação] ``` ## Exemplos de Uso ### APT41 - Operações de Espionagem Híbrida O [[g0096-apt41|APT41]] utiliza PATH hijacking como parte de sua cadeia de persistência em ambientes corporativos Windows e Linux. O grupo tipicamente combina essa técnica com DLL sideloading e [[t1574-002-dll-side-loading|T1574.002]], colocando variantes do [[s0154-cobalt-strike|Cobalt Strike]] Beacon em diretórios com prioridade no PATH de servidores comprometidos. A abordagem permite que o payload sejá ativado sempre que scripts de administração chamam utilitários do sistema por nome curto - padrão especialmente comum em servidores de build e pipelines de CI/CD. ### Lazarus Group - Persistência em Ambientes de Desenvolvimento O [[g0032-lazarus-group|Lazarus Group]] explora ambientes de desenvolvimento de software, onde variáveis PATH frequentemente incluem diretórios de projetos com permissão de escrita para o usuário. O grupo deposita executáveis maliciosos com nomes de ferramentas comuns (`python3`, `node`, `npm`) em repositórios ou diretórios de projeto comprometidos. Quando desenvolvedores executam tarefas de build, o PATH do projeto é consultado antes do PATH do sistema, ativando o payload sem alertas visíveis. ### DarkGaté - Cadeia de Infecção Multiplataforma O malware [[darkgaté|DarkGaté]] documenta o uso de PATH modificado como estágio de sua cadeia de infecção multiplataforma. Em sistemas comprometidos via phishing, o loader modifica o PATH do usuário para incluir um diretório temporário que contém um binário `python.exe` ou `pythonw.exe` malicioso - intercep­tando qualquer execução subsequente de scripts Python pelo usuário ou por automações agendadas. ## Detecção ```yaml title: Detecção de PATH Environment Variable Hijacking status: experimental logsource: category: process_creation product: windows detection: selection_suspicious_path: Image|contains: - '\AppData\' - '\Temp\' - '\Downloads\' OriginalFileName|endswith: - 'net.exe' - 'cmd.exe' - 'powershell.exe' - 'python.exe' - 'git.exe' filter_legitimate: Image|startswith: - 'C:\Windows\System32\' - 'C:\Windows\SysWOW64\' - 'C:\Program Files\' condition: selection_suspicious_path and not filter_legitimate level: high tags: - attack.persistence - attack.t1574.007 ``` ## Mitigação | ID | Mitigação | Descrição | |----|-----------|-----------| | [[m1022-restrict-file-and-directory-permissions\|M1022]] | Restrict File and Directory Permissions | Restringir permissão de escrita em diretórios que aparecem antes das pastas do sistema no PATH; usuários não devem ter escrita em diretórios do PATH do sistema | | [[m1038-execution-prevention\|M1038]] | Execution Prevention | Implementar allowlisting (AppLocker, WDAC) para bloquear execução de binários não assinados ou fora de caminhos aprovados | | [[m1047-audit\|M1047]] | Audit | Auditar periodicamente o conteúdo e a ordem da variável PATH em todos os endpoints; monitorar alterações no Registro em `HKLM\SYSTEM\...\Environment` | ## Contexto Brasil/LATAM No Brasil, a técnica é relevante em ambientes corporativos que utilizam scripts de automação legados - prática comum em instituições financeiras, operadoras de telecomúnicações e empresas de manufatura que mantêm sistemas Windows com scripts `.bat` e `.cmd` desenvolvidos há décadas sem uso de caminhos absolutos. O setor [[_sectors|financeiro]] e [[government|governo]] são os mais expostos por combinarem ambientes heterogêneos (Windows + Linux) com alta dependência de automação interna. Grupos como o [[g0096-apt41|APT41]] e atores de ransomware que atuam na região - como operadores do [[lockbit|LockBit]] - identificam sistematicamente essa exposição em fases de reconhecimento pós-comprometimento. Em ambientes de desenvolvimento de software brasileiro, onde stacks mistas (Python, Node.js, Java) são comuns e variáveis PATH são frequentemente expandidas por IDEs e gerenciadores de pacotes, a superfície de ataque é significativa. ## Referências - [[t1574-hijack-execution-flow|T1574 - Hijack Execution Flow]] - técnica pai - [[t1574-002-dll-side-loading|T1574.002 - DLL Side-Loading]] - variante relacionada de sequestro de execução - [[t1546-004-unix-shell-configuration-modification|T1546.004 - Unix Shell Configuration Modification]] - vetor de modificação do PATH em Unix - [[m1022-restrict-file-and-directory-permissions|M1022 - Restrict File and Directory Permissions]] - mitigação principal - [[m1038-execution-prevention|M1038 - Execution Prevention]] - controle de allowlisting - [[m1047-audit|M1047 - Audit]] - auditoria de PATH - [[g0096-apt41|APT41]] - grupo que utiliza esta técnica - [[g0032-lazarus-group|Lazarus Group]] - grupo que utiliza esta técnica - [[s0194-powersploit|PowerSploit]] - ferramenta com módulo de exploração de PATH - [[darkgaté|DarkGaté]] - malware com uso documentado de PATH hijacking *Fonte: MITRE ATT&CK - T1574.007 Path Interception by PATH Environment Variable, v16.2*