# T1574.009 - Interceptação de Caminho por Path Sem Aspas ## Técnica Pai Esta é uma sub-técnica de [[t1574-hijack-execution-flow|T1574 - Sequestro de Fluxo de Execução]]. ## Descrição Adversários podem executar payloads maliciosos ao explorar uma característica do Windows na resolução de caminhos de executáveis que contêm espaços e não estão entre aspas. Quando o Windows precisa iniciar um binário cujo caminho não está entre aspas - como em configurações de serviços armazenadas no Registro - ele tenta resolver o caminho de forma ambígua, testando múltiplas combinações possíveis de nome de arquivo e diretório. O mecanismo de resolução do Windows para um caminho não-aspeado como `C:\Program Files\Meu App\servico.exe` funciona da seguinte forma: o sistema testa `C:\Program.exe` primeiro, depois `C:\Program Files\Meu.exe`, e por fim `C:\Program Files\Meu App\servico.exe`. Se um adversário conseguir gravar um executável em qualquer um dos caminhos intermediários - por exemplo, criar `C:\Program.exe` - esse binário será executado no lugar do serviço legítimo, pois o Windows o encontra antes. Esse comportamento é especialmente perigoso em configurações de serviços Windows. O Registro de serviços armazena o caminho do binário em `ImagePath`; se esse valor for um caminho com espaços e sem aspas, qualquer usuário com permissão de escrita em um diretório ancestral pode plantar um executável malicioso. Uma vez que o serviço é reiniciado - sejá por reboot, sejá manualmente - o payload do adversário é executado com os privilégios configurados para aquele serviço, que muitas vezes é SYSTEM ou uma conta de domínio privilegiada. A técnica também se aplica a atalhos (`LNK files`) e outras referências de caminho sem aspas. Quando usada em combinação com serviços de alto privilégio, ela serve tanto para [[t1574-hijack-execution-flow|persistência]] quanto para escalação de privilégio - a mesma ação que garante execução recorrente também pode elevar o nível de acesso do adversário no sistema. Ferramentas de pós-exploração como [[s0194-powersploit|PowerSploit]] e [[s0363-empire|Empire]] incluem módulos específicos para enumerar e explorar serviços vulneráveis a essa técnica. **Contexto Brasil/LATAM:** Caminhos sem aspas em serviços Windows são encontrados em larga escala em ambientes corporativos brasileiros, especialmente em softwares de gestão empresarial (ERPs), sistemas de automação industrial e ferramentas de segurança legadas amplamente utilizadas no Brasil. A combinação de permissões de sistema de arquivos mal configuradas com caminhos de instalação padrão que incluem espaços - como `C:\Arquivos de Programas\` - cria condições ideais para exploração. Setores de [[industria]], [[financial]] e [[healthcare]] são os mais expostos dado o volume de software de terceiros instalado em seus ambientes Windows. ## Attack Flow ```mermaid graph TB A[Acesso Inicial ao Sistema] --> B[Enumeração de Serviços com Path Sem Aspas] B --> C{Permissão de Escrita em Diretório Ancestral?} C -->|Sim| D[ESTA TÉCNICA - T1574.009] C -->|Não| E[Buscar Outro Vetor] D --> F[Criação de Executável Malicioso no Caminho Interceptado] F --> G[Aguardar Reinício do Serviço ou Induzir Falha] G --> H[Execução do Payload com Privilégio do Serviço] H --> I[Persistência e/ou Escalação de Privilégio] ``` ## Como Funciona 1. **Enumeração** - O adversário lista serviços com caminhos sem aspas usando `wmic`, `sc qc`, ou scripts [[t1059-001-powershell|PowerShell]] especializados. O módulo `Get-ServiceUnquotedPath` do PowerSploit automatiza essa etapa. 2. **Verificação de permissões** - Para cada serviço vulnerável, o adversário verifica se tem permissão de escrita em algum dos diretórios intermediários do caminho. Isso é feito com `icacls` ou `accesschk.exe`. 3. **Plantio do payload** - O adversário cria um executável malicioso no diretório intermediário com o nome que o Windows testará primeiro (ex: `C:\Program.exe` para o caminho `C:\Program Files\App\app.exe`). 4. **Ativação** - O serviço é reiniciado - por reboot do sistema, manualmente pelo adversário (se tiver permissão), ou aguardando reinicialização agendada. 5. **Execução privilegiada** - O Windows resolve o caminho ambíguo, encontra o executável malicioso antes do legítimo e o executa com o privilégio do serviço (frequentemente SYSTEM). **Exemplo - Identificação de serviço vulnerável:** ```powershell # Artefato de detecção: comando de enumeração frequentemente observado # wmic service get name,displayname,pathname,startmode | # findstr /i "auto" | findstr /i /v "c:\windows\\" | findstr /i /v """ # # Resultado esperado: serviços com caminhos como # C:\Program Files\Vendor Name\Service\service.exe (sem aspas) # # Event ID 4688 (Process Creation) com: # CommandLine contendo: wmic service get pathname # ou: sc qc <nome_servico> ``` ## Detecção **Fontes de dados:** Logs de criação de processo (Event ID 4688 / Sysmon ID 1), alertas de EDR para criação de executáveis em diretórios raiz ou `C:\Program Files`, análise de configuração de serviços via baseline, logs de inicialização de serviços (Event ID 7045). ```yaml title: Criação de Executável em Caminho de Interceptação Não-Aspeado id: c5a9b3f7-28d4-4e1c-9f06-1847293650de status: experimental description: > Detecta criação de executável em diretórios raiz ou de programa que podem ser usados para interceptação de caminho sem aspas - T1574.009. logsource: category: file_event product: windows detection: selection_root_exe: TargetFilename|re: '^[A-Z]:\\[^\\]+\.exe selection_program_files: TargetFilename|startswith: - 'C:\Program Files\' - 'C:\Program Files (x86)\' TargetFilename|endswith: '.exe' TargetFilename|contains: ' ' filter_legitimate_installers: Image|contains: - '\msiexec.exe' - '\setup.exe' - '\installer.exe' condition: (selection_root_exe or selection_program_files) and not filter_legitimate_installers falsepositives: - Instaladores legítimos que criam executáveis em diretórios raiz - Software portátil instalado manualmente pelo usuário level: high tags: - attack.persistence - attack.privilege-escalation - attack.t1574.009 ``` ## Mitigação | Mitigação | Recomendação Prática | |-----------|---------------------| | [[m1047-audit\|M1047 - Audit]] | Auditar periodicamente todos os serviços Windows em busca de caminhos sem aspas. Usar scripts de baseline para detectar desvios. | | [[m1038-execution-prevention\|M1038 - Execution Prevention]] | Implementar AppLocker ou WDAC para bloquear execução de binários não assinados em diretórios fora do padrão corporativo. | | [[m1022-restrict-file-and-directory-permissions\|M1022 - Restrict File and Directory Permissions]] | Restringir permissões de escrita em `C:\`, `C:\Program Files\` e subdiretórios para usuários não administrativos. Revisar ACLs com `icacls`. | ## Referências *Fonte: [MITRE ATT&CK - T1574.009](https://attack.mitre.org/techniques/T1574/009)*