# T1218.013 - Mavinject ## Técnica Pai [[t1218-system-binary-proxy-execution|T1218 - System Binary Proxy Execution]] ## Descrição Adversários podem abusar do binário legítimo `mavinject.exe` para injetar código malicioso em processos em execução, mascarando a atividade sob um executável assinado pela Microsoft. O **Mavinject** (Microsoft Application Virtualization Injector) é um componente nativo do Windows utilizado pela pilha de virtualização de aplicações **App-V** para injetar DLLs em processos-alvo como parte do seu funcionamento normal. Por ser um binário assinado digitalmente e presente em instalações padrão do Windows 10/11, seu uso costuma ser tratado como confiável por soluções de segurança baseadas em assinatura e listas de permissão. Essa característica o torna um vetor clássico de **Living-off-the-Land (LotL)** - o adversário aproveita ferramentas legítimas do sistema operacional para executar payloads sem introduzir artefatos externos óbvios. A técnica pertence à família [[t1218-system-binary-proxy-execution|T1218 - System Binary Proxy Execution]] e frequentemente é combinada com [[t1055-001-dynamic-link-library-injection|T1055.001 - Dynamic-Link Library Injection]] para execução arbitrária de código em contexto de processo privilegiado. ## Como Funciona O `mavinject.exe` aceita dois modos principais de injeção: ### Modo 1 - Injeção de DLL via `/INJECTRUNNING` ``` mavinject.exe <PID> /INJECTRUNNING <CAMINHO_DA_DLL> ``` O adversário específica o **PID** de um processo-alvo legítimo (ex.: `explorer.exe`, `svchost.exe`) e o caminho para uma DLL maliciosa. O Mavinject abre um handle para o processo remoto, aloca memória via `VirtualAllocEx`, escreve o caminho da DLL com `WriteProcessMemory` e cria uma thread remota apontando para `LoadLibraryA` - o padrão clássico de injeção de DLL via API do Windows. ### Modo 2 - Injeção de Import Descriptor via `/HMODULE` ``` mavinject.exe <PID> /HMODULE=<ENDEREÇO_BASE> <CAMINHO_DLL> <ORDINAL> ``` Nesse modo, o Mavinject insere uma entrada na **Import Address Table (IAT)** do módulo no endereço base específicado, forçando o carregamento da DLL maliciosa como dependência do módulo legítimo. Esta abordagem é mais sofisticada e de menor visibilidade, pois o carregamento da DLL ocorre como resolução de importação, não como injeção explícita. **Fluxo de execução:** 1. Adversário obtém PID do processo-alvo (ex.: via `tasklist` ou WMI) 2. Executa `mavinject.exe` com parâmetros maliciosos 3. Mavinject injeta o payload no espaço de endereçamento do processo-alvo 4. DLL maliciosa executa sob o contexto de segurança do processo legítimo 5. Atividade de rede, criação de arquivos e outras ações maliciosas são atribuídas ao processo hospedeiro ## Attack Flow ```mermaid graph TB A[Adversário com Execução Inicial no Host] --> B[Identifica PID de Processo-Alvo Legítimo<br/>explorer.exe / svchost.exe / lsass.exe] B --> C[Prepara DLL Maliciosa em Disco ou Memória] C --> D[Executa mavinject.exe com PID e Caminho da DLL<br/>Binário Assinado pela Microsoft] D --> E{Modo de Injeção} E -->|/INJECTRUNNING| F[Injeção Clássica via LoadLibrary<br/>VirtualAllocEx + WriteProcessMemory] E -->|/HMODULE| G[Injeção via Import Descriptor<br/>Modifica IAT do Módulo-Alvo] F --> H[DLL Maliciosa Carregada no Processo Legítimo] G --> H H --> I[Execução de Payload sob Contexto do Processo Hospedeiro] I --> J[Evasão de EDR / AV<br/>Atividade Mascarada como Processo Legítimo] J --> K[C2, Exfiltração, Movimentação Lateral] ``` ## Exemplos de Uso - **TONESHELL** (malware atribuído ao grupo [[g0129-mustang-panda|Mustang Panda]] / TA416): utiliza `mavinject.exe` para injetar sua DLL principal em processos Windows legítimos, dificultando detecção por soluções de segurança baseadas em assinatura de processo. Campanhas documentadas contra entidades governamentais e ONG no Sudeste Asiático e Europa. - **Operações de Red Team e ataques pós-exploração**: Frameworks como Cobalt Strike e Metasploit incluem módulos que invocam `mavinject.exe` como alternativa para injeção de Beacon em ambientes com controles de application whitelisting (AppLocker, WDAC). - **Ataques a ambientes com App-V ativo**: Em organizações que utilizam Microsoft App-V (comum em ambientes corporativos Windows com empacotamento de aplicações legadas), o binário está presente e seu uso pode se perder no ruído operacional normal. ## Detecção O principal sinal de detecção é a invocação de `mavinject.exe` com parâmetros que apontam para caminhos incomuns ou por processos pai inesperados. Em ambientes que não utilizam App-V, qualquer execução de `mavinject.exe` deve ser tratada como suspeita. ```yaml title: Uso Suspeito de mavinject.exe para Injeção de Código status: experimental logsource: category: process_creation product: windows detection: selection_base: Image|endswith: '\mavinject.exe' CommandLine|contains: - '/INJECTRUNNING' - '/HMODULE' filter_legitimate_parent: ParentImage|endswith: - '\AppVClient.exe' - '\AppVClientService.exe' condition: selection_base and not filter_legitimate_parent level: high tags: - attack.defense_evasion - attack.t1218.013 - attack.t1055.001 ``` **Estrategias complementares de detecção:** - **Sysmon Event ID 8** (CreateRemoteThread): registra threads criadas em processos remotos - detecta o mecanismo de injeção clássico do Mavinject - **Sysmon Event ID 7** (ImageLoaded): monitora DLLs carregadas em processos críticos; DLLs fora de caminhos esperados em processos como `svchost.exe` são indicadores fortes - **EDR behavioral**: correlacionar `mavinject.exe` (pai) → qualquer processo filho com atividade de rede ou gravação em disco - **API monitoring**: chamadas a `VirtualAllocEx` + `WriteProcessMemory` + `CreateRemoteThread` em sequência a partir de `mavinject.exe` ## Mitigação | ID | Mitigação | Descrição | |----|-----------|-----------| | M1042 | [[m1042-disable-or-remove-feature-or-program\|M1042 - Disable or Remove Feature or Program]] | Desabilitar ou restringir o acesso ao `mavinject.exe` em sistemas que não utilizam Microsoft App-V. Em ambientes sem App-V ativo, o binário pode ser renomeado, removido ou bloqueado via ACL de arquivo | | M1038 | [[m1038-execution-prevention\|M1038 - Execution Prevention]] | Utilizar políticas de Application Control (AppLocker, WDAC/Windows Defender Application Control) para bloquear a execução de `mavinject.exe` por processos que não sejam os componentes legítimos do App-V | **Controles adicionais recomendados:** - Implementar **WDAC** com modo `Audit` inicialmente para identificar usos legítimos antes de bloquear - Habilitar **Credential Guard** e **Protected Process Light (PPL)** para impedir injeção em processos críticos como `lsass.exe` - Monitorar via **Microsoft Defender for Endpoint** a linha de comando completa de execuções de `mavinject.exe` - Considerar bloqueio via Regras de Redução de Superfície de Ataque (ASR) do Microsoft Defender ## Software Associado - [[s1239-toneshell|TONESHELL]] - malware atribuído ao [[g0129-mustang-panda|Mustang Panda]] que usa Mavinject para injeção de DLL em processos legítimos do Windows ## Contexto Brasil/LATAM A técnica T1218.013 é relevante para o Brasil principalmente no contexto de campanhas de espionagem direcionadas a entidades governamentais e grandes corporações, onde ambientes Windows corporativos são prevalentes e o App-V é comum em implantações de grande escala. **Pontos de aténção para o ambiente brasileiro:** - **Setor Público Federal**: Órgãos que utilizam Windows em larga escala (como Ministérios, TCU, CGU) frequentemente têm App-V como parte do pacote de virtualização de aplicações Windows legadas - nesses ambientes, `mavinject.exe` está presente e seu uso legítimo cria ruído que pode mascarar atividade maliciosa. - **Grupos APT com presença documentada na LATAM**: O [[g0129-mustang-panda|Mustang Panda]], grupo que usa TONESHELL com Mavinject, tem histórico de campanhas contra organizações governamentais em países vizinhos (Argentina, Chile, Peru). O Brasil, como maior economia regional, é alvo de interesse estratégico similar. - **Red Teams e pentesters**: A técnica é amplamente conhecida e utilizada em exercícios de Red Team no Brasil, sendo importante que times de Blue Team tenham detecções específicas para ela, especialmente em ambientes sem App-V. - **Correlação com [[t1055-process-injection|T1055 - Process Injection]]**: Em investigações de resposta a incidentes no Brasil, injeções de código via binários legítimos do sistema operacional (LotL) têm sido observadas com frequência crescente, refletindo a tendência global de sofisticação nos ataques. ## Referências - MITRE ATT&CK - T1218.013 Mavinject - Microsoft Documentation: Microsoft Application Virtualization (App-V) Overview - Elastic Security Research: "Mavinject Abuse for Code Injection" - TONESHELL malware analysis - atribuição ao TA416/Mustang Panda - [[t1218-system-binary-proxy-execution|T1218 - System Binary Proxy Execution]] - [[t1055-001-dynamic-link-library-injection|T1055.001 - Dynamic-Link Library Injection]] - [[t1055-process-injection|T1055 - Process Injection]] - [[g0129-mustang-panda|Mustang Panda]] - [[m1042-disable-or-remove-feature-or-program|M1042 - Disable or Remove Feature or Program]] - [[m1038-execution-prevention|M1038 - Execution Prevention]] --- *Fonte: MITRE ATT&CK - T1218.013*