Has injected its malicious payload into a running process through Windows utility Microsoft Application Virtualization Injector MAVInject.exe.1
- Tactic
- Stealth
- Platform
- Windows
- Version
- 3.0
- Created
- 22 September 2021
- Last modified
- 12 May 2026
Adversaries may abuse mavinject.exe to proxy execution of malicious code. Mavinject.exe is the Microsoft Application Virtualization Injector, a Windows utility that can inject code into external processes as part of Microsoft Application Virtualization (App-V).[1]
Mavinject MITRE reference T1218.013
1 software entry is documented implementing this technique. MITRE files each as a tool or as malware; newest first, then by how many groups carry them.
All 1 software entries for this technique
Offense vs defense T1218.013
Is defensive coverage keeping up with adversary use? Eight counts, each ranked against all 697 ATT&CK techniques. Attack sits left, defense right, so a shape leaning left means adversaries are better documented here than defenders are equipped. Hover any spoke for its percentile and the share of techniques that have more. The timeline below shows when each side arrived.
How it got here
Adversary activity (campaign spans) over cumulative rule output. Each source is plotted independently from zero, so neither line includes the other. Campaign dates are year-granularity.
Mavinject detection strategy DET0433
MITRE names one behaviour worth catching for this technique and breaks it into 1 analytic, one per platform. Each carries the log sources it needs and the fields you tune per environment.
Detecting Code Injection via mavinject.exe (App-V Injector)
AN1207 · Windows
Abuse of mavinject.exe to inject DLLs or import descriptors into another running process. Chain: (1) mavinject.exe starts with /INJECTRUNNING or /HMODULE → (2) mavinject obtains high-access handles to a target process (VM_WRITE/CREATE_THREAD) → (3) target process loads attacker DLL (module load) → (4) optional follow-on child activity or network egress from the target process.
Log sources
The data this analytic draws on. You do not need every component — each one you already collect covers part of it. Each links to its ATT&CK record.
| Data component | Name | Channel |
|---|---|---|
| Module LoadDC0016 | WinEventLog:Sysmon | EventCode=7 |
| Process CreationDC0032 | WinEventLog:Security | EventCode=4688 |
| Process AccessDC0035 | WinEventLog:Sysmon | EventCode=10 |
| File CreationDC0039 | WinEventLog:Sysmon | EventCode=11 |
| Command ExecutionDC0064 | WinEventLog:PowerShell | EventCode=4103, 4104, 4105, 4106 |
| Network Connection CreationDC0082 | WinEventLog:Sysmon | EventCode=3, 22 |
Tunable fields
MITRE calls these the analytic’s mutable elements: the thresholds and filters you set for your own environment.
| Field | What you tune |
|---|---|
| TimeWindow | Correlation interval (e.g., 5–10 minutes) linking mavinject start → ProcessAccess → module load/network from the target process. |
| DLLPathRegex | Patterns for suspicious DLL locations (e.g., %TEMP%, Downloads, UNC shares) to reduce noise from legitimate injections. |
| TargetProcessAllowList | Common legitimate targets for App-V (if used) to suppress; flag unusual targets like browsers, LSASS, Winlogon, EDR processes. |
| MinGrantedAccessSet | Set of access rights that imply injection (VM_WRITE, VM_OPERATION, CREATE_THREAD). Tune for your EDR/sysmon formatting. |
| ParentProcessFilter | Legitimate parents starting mavinject (e.g., App-V services) vs. suspicious parents (Office, script hosts, browsers). |
| ExternalIPAllowlist | Known enterprise update/CDN ranges to exclude when correlating post-injection network activity. |
| SignedToUnsignedTransition | Alerting when Microsoft-signed mavinject leads to loading unsigned DLLs in a target process. |
Consider removing mavinject.exe if Microsoft App-V is not used within a given environment.
Use application control configured to block execution of mavinject.exe if it is not required for a given system or network to prevent potential misuse by adversaries.