ATT&CK coverage › Technique

Process Injection T1055

Adversaries may inject code into processes in order to evade process-based defenses as well as possibly elevate privileges. Process injection is a method of executing arbitrary code in the address space of a separate live process. Running code in the context of another process may allow access to the process's memory, system/network resources, and possibly elevated privileges. Execution via process injection may also evade detection from security products since the execution is masked under a legitimate process.

Events covered

12 catalog events are tagged with this technique by at least one rule.

ProviderEvent IDTitle
Sysmon1Process creation
Sysmon3Network connection
Sysmon7Image loaded
Sysmon8CreateRemoteThread
Sysmon10ProcessAccess
Sysmon11FileCreate
Sysmon17PipeEvent (Pipe Created)
Sysmon18PipeEvent (Pipe Connected)
Security-Auditing4688A new process has been created.
Security-Auditing5145A network share object was checked to see whether client can be granted desired access.
Defender-DeviceEvents9007006Named pipe event
PowerShell4104Creating Scriptblock text (MessageNumber of MessageTotal).

Authoring guide

Patterns shared across the 43 rules above: which fields they filter on, what specific values they look for, and what they exclude. Field names are normalized across vendors so Sigma's Image, Elastic's process.name, and Splunk's process_name collapse into one row. Each rule contributes at most once per row.

Fields filtered most (23 distinct)

The fields most rules look at when detecting this technique. The How column shows the operators authors use (eq, wildcard, regex_match, match) and how often each appears. Sample values are concrete examples to start from, not an exhaustive list.

FieldRulesHowSample values
Image18ends_with 15, eq 4, match 3, starts_with 1, is_null 1\mobsync.exe, \svchost.exe, "*\\rundll32.exe", :\Program Files\Websense\, :\Program Files (x86)\Websense\
CommandLine12match 7, is_null 3, eq 3, regex_match 2, in 2, ends_with 1svchost.exe, dllhost, dllhost.exe, --exploitId , /password
EventID10eq 8, in 217, 18, 8, 4104
PipeName8match 4, starts_with 3, eq 3, regex_match 2, ends_with 1[a-fA-F0-9]{2,10}$, CobaltStrikeMallable, CobaltStrikeDefaults, -server, \status_
TargetImage7eq 4, in 3, starts_with 2, ends_with 1, is_null 1, match 1?:\WINDOWS\system32\lsass.exe, C:\Program Files\, C:\Windows\System32\svchost.exe, C:\Windows\explorer.exe, C:\Windows\System32\LogonUI.exe
ParentImage5ends_with 5\msra.exe, \rpcnetp.exe, \rpcnet.exe, \wermgr.exe, \userinit.exe
process_name4eq 4MSBuild.exe, dllhost.exe, gpupdate.exe, searchprotocolhost.exe
DestinationPort4ne 3, eq 10, 9100
tool4is_not_null 4
OriginalFileName3eq 3explorer.exe, dllhost.exe, searchprotocolhost.exe
parent_process_name2eq 1, in 1regsvr32.exe, fltldr.exe, msxsl.exe, "powershell.exe", "powershell_ise.exe"
ImageLoaded2ends_with 1, starts_with 1\clr.dll, \mscoree.dll, \mscorlib.dll, C:\Windows\System32\, C:\Program Files\Microsoft Silverlight\
ScriptBlockText2match 1, eq 1OiJAAAAYInlM, OiCAAAAYInlM, *getprocaddress*
Provider_Name1eq 1Microsoft-Windows-Sysmon
CallTrace1match 1UNKNOWN

Top indicator values (360 distinct)

Specific (field, operator, value) combinations the rules check for, ranked by how many rules under this technique use each one. The Corpus reach column counts how many rules across the entire catalog (any technique) check the same combination. High numbers point to widely-used indicators that are likely noisy on their own; combine them with another condition for useful signal. Blank means the combination is specific to rules under this technique.

FieldKindValueRules (here)Corpus reach
EventIDeq848
Imageends_with\cscript.exe364
Imageends_with\regsvr32.exe357
Imageends_with\mshta.exe357
Imageends_with\wscript.exe364
DestinationPortne036
EventIDeq1733
EventIDeq1833
Imageends_with\mobsync.exe22
Imageends_with\wmic.exe237
Imageends_with\netstat.exe25
Imageends_with\whoami.exe218
Imageends_with\cmd.exe292
Imageends_with\nslookup.exe24
Imageends_with\net.exe227
Imageends_with\schtasks.exe245
TargetImagestarts_withC:\Program Files (x86)\22
TargetImagestarts_withC:\Program Files\22
TargetImageeqC:\Windows\System32\conhost.exe22
TargetImageeqSystem22

Common exclusions (47 distinct)

Field/operator/value combinations that rules under this technique routinely exclude (top-level not() clauses). These are the false-positive paths the community has learned to filter out. A new rule that ignores the high-count entries here will likely fire on the same noisy paths.

FieldKindValueRules excluding
process_namein"*:\\Windows\\System32\\svchost.exe"4
process_namein"*\\AppData\\Local\\Microsoft*"4
process_namein"*:\\Program Files\\Microsoft*"4
process_namein"*:\\Program Files \(x86\)\\Microsoft*"4
process_namein"*:\\Program Files \(x86\)\\Adobe*"4
process_namein"*:\\Windows\\system32\\SearchIndexer.exe"4
process_namein"*:\\Windows\\SystemApps\\Microsoft*"4
process_namein"*:\\Program Files \(x86\)\\Google*"4
process_namein"*:\\Program Files\\Adobe*"4
process_namein"*\\AppData\\Local\\Google*"4
process_namein"*\\AppData\\Local\\Kingsoft\\*"4
process_namein"*\\Amazon\\SSM\\Instance*"4
process_namein"*:\\Program Files\\Google*"4
process_namein"System"4
CallTracewildcard?:\ProgramData\Symantec\Symantec Endpoint Protection\*\sysfer.dll*1

Rules under this technique

Every rule in the catalog tagged with this technique, grouped by vendor. Click a rule title for its full predicates, exclusions, and indicators.

Sigma 24 rules

Elastic 3 rules

Splunk 13 rules

Kusto Query Language 3 rules