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