# T1127 - Trusted Developer Utilities Proxy Execution ## Descrição Adversários abusam de utilitários legítimos de desenvolvimento de software para executar código malicioso de forma indireta. Essas ferramentas - fornecidas pela própria Microsoft e assinadas com certificados digitais válidos - são confiáveis pelo sistema operacional e por soluções de controle de aplicações, tornando-se vetores ideais para evasão de defesas. O mecanismo central é o **proxy de execução**: em vez de lançar diretamente um payload malicioso (que poderia ser bloqueado por [[m1038-execution-prevention|Application Control]] ou detectado por EDR), o adversário instrui um utilitário confiável a carregar e executar o código em seu nome. Para o sistema operacional, a execução parte de um binário legítimo e assinado. Esse abuso é especialmente eficaz contra o **Smart App Control** do Windows, que bloqueia aplicações sem assinatura conhecida. Como os utilitários de desenvolvimento já possuem reputação consolidada no serviço de nuvem da Microsoft, a técnica contorna essa proteção por meio de *reputation hijacking* - sequestro de reputação de aplicações legítimas. ### Por que é poderosa - Os binários são assinados pela Microsoft - difícil de bloquear por hash ou assinatura - Muitos ambientes corporativos precisam manter essas ferramentas instaladas para desenvolvimento - A execução ocorre no contexto de um processo confiável, dificultando correlação com atividade maliciosa - Pode ser encadeada com outras técnicas de [[_defense-evasion|Evasão de Defesas]] para persistência e movimentação lateral ## Sub-técnicas - [[t1127-001-msbuild|T1127.001 - MSBuild]] - [[t1127-002-clickonce|T1127.002 - ClickOnce]] - [[t1127-003-jámplus|T1127.003 - JámPlus]] ## Como Funciona A técnica segue um padrão comum independente da sub-técnica escolhida: 1. **Preparação do payload**: o adversário cria um arquivo de projeto, manifesto ou script compatível com o utilitário-alvo. O código malicioso fica embutido nesse arquivo (geralmente ofuscado ou codificado em Base64). 2. **Entrega**: o arquivo de projeto é entregue ao alvo via [[t1566-001-spearphishing-attachment|phishing]], download drive-by, ou já está presente após comprometimento inicial. 3. **Invocação do utilitário**: o adversário executa o utilitário legítimo passando o arquivo malicioso como argumento - ex.: `MSBuild.exe projeto_malicioso.csproj`. 4. **Execução proxied**: o utilitário processa o arquivo e executa o código contido nele. Para o sistema, a linha de execução parte do binário assinado. 5. **Payload em memória**: o shellcode ou assembly é carregado diretamente em memória, sem tocar o disco como executável autônomo, evitando detecção estática. ## Attack Flow ```mermaid graph TB A[Adversário prepara arquivo de projeto malicioso] --> B[Entrega ao alvo via phishing ou acesso inicial] B --> C[Executa utilitário legítimo com arquivo como argumento] C --> D{Utilitário escolhido} D --> E[MSBuild.exe - compila C# inline] D --> F[dfsvc.exe - baixa e executa manifesto ClickOnce] D --> G[JámPlus.exe - executa script Jám] E --> H[Payload carregado em memória] F --> H G --> H H --> I[Shellcode executa no contexto do processo confiável] I --> J[Bypassa AppControl e Smart App Control] J --> K[Persistência ou movimentação lateral] ``` ## Exemplos de Uso ### MSBuild com shellcode inline O padrão mais documentado envolve um arquivo `.csproj` com uma `<UsingTask>` que define uma tarefa personalizada contendo código C# arbitrário. O MSBuild compila e executa esse código durante o build, sem produzir artefato final em disco. Grupos como **Lazarus Group** e operadores de ransomware como **LockBit** já utilizaram MSBuild para carregar stagers Cobalt Strike e outros frameworks C2, particularmente em ambientes onde controles de aplicação estavam ativos. ### ClickOnce para entrega remota O ClickOnce permite que aplicações sejam entregues via URL e executadas com privilégios parcialmente elevados dependendo das permissões do manifesto. Adversários hospedam manifestos em infraestrutura própria e distribuem o link `application://` por phishing. Ao clicar, o `dfsvc.exe` do Windows faz o download e executa o payload sem alertas típicos de execução de `.exe`. ### Cadeia com [[t1027-obfuscated-files-or-information|Obfuscação]] Em campanhas mais sofisticadas, o arquivo de projeto em si é ofuscado (Base64, XOR) e o payload real é montado em memória pelo código compilado pelo MSBuild, criando dupla camada de evasão. ## Detecção A detecção eficaz foca em **comportamento anômalo** dos utilitários - argumentos incomuns, processos filhos inesperados e conexões de rede iniciadas por ferramentas de build. ```yaml title: Execução Suspeita de MSBuild com Arquivo de Projeto Externo status: experimental logsource: category: process_creation product: windows detection: selection_msbuild: Image|endswith: '\MSBuild.exe' CommandLine|contains: - '.csproj' - '.xml' - '.proj' filter_legitimate: ParentImage|contains: - '\devenv.exe' - '\vstesthost.exe' - '\msbuild.exe' condition: selection_msbuild and not filter_legitimate level: high tags: - attack.defense_evasion - attack.t1127.001 ``` ```yaml title: ClickOnce Executado Fora de Contexto de Desenvolvimento status: experimental logsource: category: process_creation product: windows detection: selection: Image|endswith: '\dfsvc.exe' filter_dev: ParentImage|contains: - '\devenv.exe' - '\msbuild.exe' condition: selection and not filter_dev level: medium tags: - attack.defense_evasion - attack.t1127.002 ``` ### Outros indicadores comportamentais - `MSBuild.exe` ou `dfsvc.exe` criando processos filhos (`cmd.exe`, `powershell.exe`, `rundll32.exe`) - `MSBuild.exe` realizando conexões de rede (porta 80/443) - altamente suspeito - `dfsvc.exe` baixando arquivos de domínios recém-registrados ou sem histórico de reputação - Presença de arquivos `.csproj` ou `.xml` em pastas temporárias (`%TEMP%`, `%APPDATA%`) - Eventos de carregamento de assembly (`System.Reflection.Assembly.Load`) a partir de processos de build ## Mitigação | ID | Mitigação | Descrição | |----|-----------|-----------| | [[m1042-disable-or-remove-feature-or-program\|M1042]] | Disable or Remove Feature or Program | Desinstalar ferramentas de desenvolvimento em workstations que não são usadas para desenvolvimento (ex.: MSBuild via RSAT Removal) | | [[m1038-execution-prevention\|M1038]] | Execution Prevention | Configurar AppLocker ou Windows Defender Application Control (WDAC) para bloquear execução de `MSBuild.exe`, `dfsvc.exe` e `JámPlus.exe` fora de contextos de build aprovados | | [[m1021-restrict-web-based-content\|M1021]] | Restrict Web-Based Content | Bloquear o protocolo `application://` no proxy e no firewall para impedir entregas ClickOnce de fontes externas não autorizadas | ## Contexto Brasil/LATAM A técnica T1127 - especialmente via [[t1127-001-msbuild|MSBuild]] - é frequentemente observada em intrusões contra empresas de tecnologia e serviços financeiros no Brasil que utilizam ambientes de desenvolvimento Windows. Como muitas organizações mantêm o Visual Studio ou o SDK do .NET instalado em máquinas de desenvolvedores e até em servidores de CI/CD, a superfície de ataque é ampla. Operadores de ransomware que atuam na América Latina, como afiliados de **Black Basta** e **RansomHub**, documentadamente utilizam utilitários de LOLBins (Living off the Land Binaries) - categoria à qual T1127 pertence - para manter persistência e executar stagers sem disparar alertas. A combinação com [[t1059-001-powershell|PowerShell]] ofuscado e [[t1027-obfuscated-files-or-information|obfuscação de payloads]] é o padrão mais comum detectado em incidentes brasileiros. Equipes de SOC no Brasil devem priorizar visibilidade sobre execução de `MSBuild.exe` em estações de trabalho que não fazem parte do pipeline de desenvolvimento, e monitorar conexões de rede originadas desses processos como indicador de alto risco. ## Referências - Documentação oficial MITRE ATT&CK: T1127 e sub-técnicas T1127.001, T1127.002, T1127.003 - Microsoft: documentação do MSBuild Inline Tasks e políticas de AppLocker/WDAC - Relatórios públicos de uso de MSBuild por operadores Cobalt Strike (Red Canary, Elastic Security) - ClickOnce security model - Microsoft Developer Network - Lolbas-project.github.io - catálogo de binários nativos abusados (MSBuild, dfsvc) --- *Fonte: MITRE ATT&CK - T1127*