Process Injection T1055

Tactics: Stealth, Privilege Escalation

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

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

ProviderEventTitle
SysmonEvent ID 1Process creation
SysmonEvent ID 3Network connection
SysmonEvent ID 7Image loaded
SysmonEvent ID 8CreateRemoteThread
SysmonEvent ID 10ProcessAccess
SysmonEvent ID 11FileCreate
SysmonEvent ID 17PipeEvent (Pipe Created)
SysmonEvent ID 18PipeEvent (Pipe Connected)
SysmonEvent ID 25ProcessTampering (Process image change)
Security-AuditingEvent ID 4688A new process has been created.
Security-AuditingEvent ID 5145A network share object was checked to see whether client can be granted desired access.
Security-AuditingEvent ID 5156The Windows Filtering Platform has permitted a connection.
Defender-DeviceEventsCreateRemoteThreadApiCallCreateRemoteThread API call
Defender-DeviceEventsNamedPipeEventNamed pipe event
Defender-DeviceEventsNtAllocateVirtualMemoryRemoteApiCallRemote virtual memory allocation (NtAllocateVirtualMemory)
Defender-DeviceEventsMemoryRemoteProtectRemote virtual memory protection change
Defender-DeviceEventsNtMapViewOfSectionRemoteApiCallRemote section map (NtMapViewOfSection)
Defender-DeviceEventsQueueUserApcRemoteApiCallRemote APC queued (QueueUserApc)
Defender-DeviceEventsSetThreadContextRemoteApiCallRemote thread context change (SetThreadContext)
Defender-DeviceEventsNtAllocateVirtualMemoryApiCallNtAllocateVirtualMemory API call
Defender-DeviceEventsReadProcessMemoryApiCallReadProcessMemory API call
Defender-DeviceNetworkEventsConnectionSuccessConnection succeeded
Linux-AuditdEvent ID 1300SYSCALL
Linux-AuditdEvent ID 1309EXECVE
PowerShellEvent ID 4103Payload Context: ContextInfo User Data: UserData.
PowerShellEvent ID 4104Creating Scriptblock text (MessageNumber of MessageTotal).
Threat-IntelligenceEvent ID 1Remote Virtual Memory Allocation
Threat-IntelligenceEvent ID 2Remote Virtual Memory Protection Change
Threat-IntelligenceEvent ID 3Remote Section Map
Threat-IntelligenceEvent ID 4Remote APC Queue
Threat-IntelligenceEvent ID 5Remote Thread Context Change
Threat-IntelligenceEvent ID 6Local Virtual Memory Allocation
Threat-IntelligenceEvent ID 11Local Virtual Memory Read
Windows-DefenderEvent ID 1119ProductName has encountered a critical error when taking action on malware or other potentially unwanted software.
Sysmon-for-LinuxEvent ID 1Process Create

Authoring guide

Patterns shared across the 147 rules above: which fields they filter on, what specific values they look for, and what they exclude. The catalog normalizes field names 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 (72 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
EventID45eq 41, in 58, 4688, 1, 17, 18
Image40ends_with 33, contains 6, starts_with 5, eq 4, cross_field_compare 1, is_null 1, wildcard 1\cscript.exe, \svchost.exe, \\rundll32.exe, \cmd.exe, \dctask64.exe
CommandLine36contains 16, regex_match 10, in 7, ends_with 3, eq 3, is_null 3, match 1(?i)(davclnt.dll.*DavSetCookie.*://\d{1,3}\.\d{1,3}\.\d{1..., (?i)((backgroundtaskhost|svchost|dllhost|werfault|searchp..., (?i)WdiSystemHost|LicenseManager|StorSvc|CDPSvc|cdbhsvc|B..., *dllhost, *dllhost.exe
process_name28eq 19, in 4, regex_match 4, is_not_null 2, ends_with 1cmd.exe, gdb, dllhost.exe, (?i)\x5csystem32\x5c(lsass|services)\.exe, (?i)\x5csystem32\x5cspoolsv\.exe
parent_process_name24eq 12, is_not_null 5, regex_match 3, in 2, match 2, ne 1(?i)lsass\.exe, (?i)svchost, cscript.exe, (?i)Temp|Downloads|Appdata, CiscoCollabHost.exe
TargetImage18ends_with 8, in 6, eq 5, starts_with 3, contains 2, is_null 1*\\calc.exe, *\\calculatorapp.exe, *\\chrome.exe, *\\cmd.exe, *\\firefox.exe
event.type15eq 14, ne 1start, denied, allowed, change, deletion
Type13eq 13Image is replaced
EventType12eq 9, in 3exec, CreateRemoteThreadApiCall, NtAllocateVirtualMemoryRemoteApiCall, kernel_shellcode_event, ConnectionEvent
ParentImage12ends_with 10, eq 1, is_not_null 1, starts_with 1\chrome.exe, \excel.exe, \firefox.exe, \more.com, \mrt.exe
OriginalFileName10eq 10dllhost.exe, searchprotocolhost.exe, cmd.exe, compattelrunner.exe, discord.exe
PipeName9contains 4, eq 4, starts_with 4, regex_match 2, ends_with 1-0,, -server, [a-fA-F0-9]{2,10}$, \46a676ab7f179e511e30dd2dc41bd388, \583da945-62af-10e8-4902-a8f205c72b2e
ScriptBlockText7in 4, contains 3, eq 1, match 1(?i)[c][r][e][a][t][e][p][r][o][c][e][s][s], (?i)[c][r][e][a][t][e][r][e][m][o][t][e][t][h][r][e][a][d], (?i)[c][r][e][a][t][e][t][h][r][e][a][d], [reflection.assembly]::load, [system.reflection.assembly]::load
DestinationPort6ne 3, eq 2, in 10, 2200, 2222, 4000, 9100
CallTrace5contains 4, length_compare 1unknown, 0, :\windows\microsoft.net\framework64\v2., >, vbe7.dll

Top indicator values (1253 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. Click a value to expand the rules under this technique that use it.

FieldKindValueRules (here)Corpus reach
event.typeeq
start
12606
EventIDeq
8
1011
EventIDeq
4688
9313
EventIDeq
1
8237
EventIDeq
17
44
EventIDeq
18
46
EventIDeq
4104
4268
Imageends_with
\regsvr32.exe
465
Imageends_with
\svchost.exe
423
Imageends_with
\cscript.exe
373
Imageends_with
\mshta.exe
367
Imageends_with
\net.exe
349
Imageends_with
\whoami.exe
319
Imageends_with
\winword.exe
320
Imageends_with
\wscript.exe
375
event.categoryeq
process
4128
event.kindeq
alert
436
process_nameeq
gdb
44
process_nameeq
dllhost.exe
37
process_nameeq
searchprotocolhost.exe
34
CallTracecontains
unknown
35
CommandLineregex_match
(?i)(davclnt.dll.*DavSetCookie.*://\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})
33
DestinationPortne
0
37
EventIDin
17
37
EventIDin
18
37
EventTypeeq
exec
3171
TargetImagein
*\\chrome.exe
33
TargetImagein
*\\firefox.exe
33
CommandLinecontains
rundll32.exe
28
CommandLinein
*dllhost
22

Exclusions (361 distinct)

Field/operator/value combinations excluded by rules under this technique (top-level not() clauses), sorted by how many rules exclude each. 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. Click a value to expand the rules under this technique that exclude it.

FieldKindValueRules excluding
parent_process_namematch
^-$
4
process_namein
*:\\program files \(x86\)\\adobe*
4
process_namein
*:\\program files \(x86\)\\google*
4
process_namein
*:\\program files \(x86\)\\microsoft*
4
process_namein
*:\\program files\\adobe*
4
process_namein
*:\\program files\\google*
4
process_namein
*:\\program files\\microsoft*
4
process_namein
*:\\windows\\system32\\searchindexer.exe
4
process_namein
*:\\windows\\system32\\svchost.exe
4
process_namein
*:\\windows\\systemapps\\microsoft*
4
process_namein
*\\amazon\\ssm\\instance*
4
process_namein
*\\appdata\\local\\google*
4
process_namein
*\\appdata\\local\\kingsoft\\*
4
process_namein
*\\appdata\\local\\microsoft*
4
process_namein
system
4

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.

Platform (all)
Domain (all)

Sigma 52 rules

Elastic 27 rules

Splunk 61 rules

Kusto 7 rules