# T1218.004 - InstallUtil ## Técnica Pai [[t1218-system-binary-proxy-execution|T1218 - System Binary Proxy Execution]] ## Descrição Adversários utilizam o `InstallUtil.exe` - um utilitário legítimo da Microsoft para instalação e desinstalação de recursos do .NET Framework - para executar código malicioso por proxy, contornando controles de segurança que confiam em binários assinados digitalmente pela Microsoft. O `InstallUtil.exe` está presente em todos os sistemas Windows modernos e é assinado pela Microsoft, o que o torna um alvo atraente para técnicas de **Living off the Land (LotL)**. Ele processa binários .NET e invoca métodos de classes decoradas com o atributo `[System.ComponentModel.RunInstaller(true)]`, permitindo que um adversário empacote código malicioso em um assembly .NET aparentemente legítimo. Por ser um binário confiável do sistema, sua execução não costuma disparar alertas em soluções de segurança baseadas em reputação de processos, como Application Control mal configurado ou antivírus legado. Esta sub-técnica é parte de um padrão mais amplo de abuso de binários confiáveis do Windows, catalogado em [[t1218-system-binary-proxy-execution|T1218 - System Binary Proxy Execution]]. O utilitário está localizado em: - `C:\Windows\Microsoft.NET\Framework\v<versão>\InstallUtil.exe` (32 bits) - `C:\Windows\Microsoft.NET\Framework64\v<versão>\InstallUtil.exe` (64 bits) ## Como Funciona O mecanismo de abuso explora a funcionalidade de instalação e desinstalação de componentes .NET do `InstallUtil.exe`: 1. **Criação do payload**: O adversário desenvolve um assembly .NET (`.dll` ou `.exe`) contendo uma classe que herda de `System.Configuration.Install.Installer` e está decorada com `[System.ComponentModel.RunInstaller(true)]`. O código malicioso é inserido nos métodos `Install()`, `Uninstall()`, `Commit()` ou `Rollback()`. 2. **Transferência do payload**: O assembly é dropado no sistema-alvo, frequentemente via [[t1105-ingress-tool-transfer|T1105 - Ingress Tool Transfer]] ou embutido em documentos maliciosos. 3. **Execução via InstallUtil**: O adversário invoca o binário legítimo com flags que acionam o método desejado: - `InstallUtil.exe /logfile= /LogToConsole=false /U payload.dll` - aciona `Uninstall()` - `InstallUtil.exe /logfile= /LogToConsole=false payload.dll` - aciona `Install()` 4. **Evasão de controles**: Como o processo pai é `InstallUtil.exe` (assinado pela Microsoft), soluções que apenas verificam a assinatura do processo não detectam a execução maliciosa. 5. **Evasão de Application Control**: Ferramentas como AppLocker e WDAC em configurações baseadas em caminho ou publisher podem ser contornadas, pois o binário executor é legítimo e confiável. ## Attack Flow ```mermaid graph TB A[Acesso Inicial ao Sistema Windows] --> B[Drop do Assembly .NET Malicioso] B --> C[Assembly contém classe com<br/>RunInstaller true] C --> D{Método de acionamento} D -->|Instalar| E[InstallUtil.exe /logfile= payload.dll] D -->|Desinstalar| F[InstallUtil.exe /U /logfile= payload.dll] E --> G[CLR .NET carrega o assembly<br/>e executa Install] F --> H[CLR .NET carrega o assembly<br/>e executa Uninstall] G --> I[Payload executado sob<br/>contexto de InstallUtil.exe] H --> I I --> J{Objetivo do Payload} J -->|Persistência| K[Backdoor / Agent instalado] J -->|Execução imediata| L[Shellcode / Reverse Shell] J -->|Evasão de AppLocker| M[Bypass de Application Control] K --> N[Acesso persistente mantido] L --> O[Comando e Controle estabelecido] M --> P[Execução de código não autorizado<br/>sem alerta de política] ``` ## Exemplos de Uso **Mustang Panda** O grupo de espionagem chinês [[g0129-mustang-panda|Mustang Panda]] (também conhecido como TA416 e Bronze President) utilizou `InstallUtil.exe` em campanhas direcionadas a organizações governamentais e ONGs no Sudeste Asiático e Europa, executando stages intermediários de seu framework de malware PlugX por meio do utilitário para contornar soluções de endpoint. **menuPass** O grupo [[g0045-apt10|menuPass]] (APT10), vinculado ao Ministério da Segurança do Estado da China, empregou `InstallUtil.exe` em operações de espionagem de longo prazo contra provedores de serviços gerenciados (MSPs), utilizando o binário para executar implantes de segunda fase após acesso inicial. **Chaes** O malware [[s0631-chaes|Chaes]], com histórico de atividade significativa no Brasil voltado ao setor de e-commerce e serviços financeiros, utilizou técnicas de proxy de execução semelhantes para contornar controles de endpoint em sistemas Windows de vítimas brasileiras. **WhisperGaté** O [[whispergaté|WhisperGaté]], um wiper destrutivo utilizado em ataques contra a Ucrânia, empregou `InstallUtil.exe` como parte de sua cadeia de execução para carregar componentes maliciosos contornando defesas baseadas em reputação de processo. **Saint Bot** O downloader [[s1018-saint-bot|Saint Bot]] utilizou `InstallUtil.exe` para executar payloads de segunda fase, demonstrando o uso da técnica em operações de crime cibernético oportunista, não apenas em espionagem sofisticada. ## Detecção A detecção eficaz requer monitorar a execução de `InstallUtil.exe` em contextos anômalos, pois seu uso legítimo é extremamente raro em ambientes corporativos no dia a dia. ```yaml title: Execução Suspeita via InstallUtil.exe status: experimental logsource: category: process_creation product: windows detection: selection: Image|endswith: - '\InstallUtil.exe' filter_legitimate: ParentImage|contains: - '\msiexec.exe' - '\setup.exe' selection_flags: CommandLine|contains: - '/logfile=' - '/LogToConsole' - '/U' condition: selection and (selection_flags or not filter_legitimate) falsepositives: - Instaladores legítimos de software .NET em ambiente corporativo - Deploy de aplicações .NET via scripts de TI level: high ``` **Regra complementar - carregamento de assembly fora do diretório padrão:** ```yaml title: InstallUtil Carregando Assembly de Caminho Incomum status: experimental logsource: category: process_creation product: windows detection: selection: Image|endswith: - '\InstallUtil.exe' filter_system_paths: CommandLine|contains: - 'C:\Windows\' - 'C:\Program Files\' condition: selection and not filter_system_paths falsepositives: - Ferramentas de desenvolvimento em pastas de usuário level: medium ``` **Fontes de dados adicionais para detecção:** - **Sysmon Event ID 1**: Criação de processo - monitorar `InstallUtil.exe` com argumentos `/logfile=` e `/U` - **Windows Event ID 4688**: Criação de processo com linha de comando habilitada - **Sysmon Event ID 7**: Carregamento de imagem - assemblies .NET carregados por `InstallUtil.exe` - **ETW .NET**: Telemetria do CLR para carregamento de assemblies suspeitos - **Sysmon Event ID 11**: Criação de arquivo - assemblies .NET dropados em caminhos temporários antes da execução ## Mitigação | ID | Mitigação | Descrição | |----|-----------|-----------| | M1038 | [[m1038-execution-prevention\|M1038 - Execution Prevention]] | Implementar Application Control (AppLocker ou WDAC) com regras que bloqueiem a execução de `InstallUtil.exe` por usuários não-administrativos ou a partir de caminhos não autorizados. Configurar regras baseadas em hash ou publisher para assemblies .NET. | | M1042 | [[m1042-disable-or-remove-feature-or-program\|M1042 - Disable or Remove Feature or Program]] | Desabilitar ou remover o .NET Framework e o `InstallUtil.exe` em sistemas onde não há necessidade operacional. Em ambientes com controle rígido, considerar restringir o acesso ao binário via ACLs de sistema de arquivos. | **Controles adicionais recomendados:** - **WDAC Script Enforcement**: Habilitar controle de integridade de código para assemblies .NET, impedindo execução de código não assinado por autoridades confiáveis - **Monitoramento de linha de comando**: Garantir que logs de criação de processos incluam argumentos completos (`ProcessCreationIncludeCmdLine_Enabled`) - **EDR**: Soluções modernas de EDR com análise comportamental detectam o padrão de injeção via `InstallUtil.exe` mesmo sem regras específicas - **Desabilitar versões antigas do .NET**: Versões mais antigas do Framework têm menos controles - manter apenas versões necessárias ## Contexto Brasil/LATAM No Brasil, o abuso de `InstallUtil.exe` é observado principalmente em campanhas de malware bancário e trojans de acesso remoto (RATs) direcionados ao setor financeiro e e-commerce. O malware [[s0631-chaes|Chaes]], com origem atribuída a grupos brasileiros ou com operação concentrada no Brasil, utilizou técnicas de proxy de execução similares para contornar defesas de endpoint em sistemas de varejistas e plataformas de delivery. Grupos de crime cibernético financeiramente motivados que operam na América Latina frequentemente incorporam técnicas LotL como esta em suas cadeias de ataque, pois reduzem a dependência de ferramentas externas detectáveis e aproveitam o baixo nível de maturidade de monitoramento em muitas organizações da região. A telemetria de EDR cobrindo execução de processo com linha de comando é o principal controle preventivo para detecção dessas campanhas no contexto LATAM. A técnica também é relevante em contextos de espionagem industrial e governamental no Brasil, onde grupos como [[g0129-mustang-panda|Mustang Panda]] têm histórico de operações em países da América do Sul. ## Referências - MITRE ATT&CK - T1218.004: System Binary Proxy Execution - InstallUtil - Microsoft Docs - InstallUtil.exe (Installer Tool) - LOLBAS Project - InstallUtil.exe - Unit 42 - menuPass / APT10 TTPs - CERT.br - Campanhas de malware bancário no Brasil *Fonte: MITRE ATT&CK - T1218.004*