# 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 - interceptando 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*