Native API T1106

Tactic: Execution

Adversaries may interact with the native OS application programming interface (API) to execute behaviors. Native APIs provide a controlled means of calling low-level OS services within the kernel, such as those involving hardware/devices, memory, and processes. These native APIs are leveraged by the OS during system boot (when other system components are not yet initialized) as well as carrying out tasks and requests during routine operations.

Events covered

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

Authoring guide

Patterns shared across the 35 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 (46 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
ScriptBlockText12in 6, contains 4, eq 4adjusttokenprivileges, closehandle, createremotethread, add-win32type, addsecuritypackage
event.category11eq 11process, api, file
Image7ends_with 5, starts_with 2, contains 1, is_not_null 1./, /boot/, /dev/shm/, :\program files (x86)\, :\program files\
CommandLine6contains 6, ends_with 1 -c , -cf , -encodedcommand, .hta, .htm
CallTrace5contains 2, starts_with 2, ends_with 1, length_compare 1, regex_match 1), 0, >, C:\Windows\System32\ntdll.dll+, UNKNOWN
EventType4eq 2, in 2CreateRemoteThreadApiCall, NtAllocateVirtualMemoryRemoteApiCall, NtMapViewOfSectionRemoteApiCall, ProcessPrimaryTokenModified, connection_attempted
TargetImage4ends_with 2, eq 2, contains 1?:\windows\system32\lsass.exe, :\program files (x86)\, :\program files\, :\program files\adobe\acrobat dc\acrobat\, \lsass.exe
GrantedAccess3eq 30x1000, 0x1028, 0x1440, 0x1fffff
event.type3eq 3start, change
host.os.type3eq 3
OriginalFileName2eq 2cdb.exe, mshta.exe
ParentImage2ends_with 2\cmd.exe, \compattelrunner.exe, \cscript.exe, \powershell.exe
auditd.data.a22eq 27
auditd.data.syscall2eq 2mprotect
AlertSeverity1contains 1high, medium

Top indicator values (398 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.categoryeq
process
9128
ScriptBlockTextcontains
adjusttokenprivileges
23
ScriptBlockTextcontains
closehandle
22
ScriptBlockTextcontains
createremotethread
22
ScriptBlockTextcontains
duplicatetokenex
22
ScriptBlockTextcontains
openprocess
22
ScriptBlockTextcontains
openprocesstoken
22
ScriptBlockTextcontains
readprocessmemory
22
ScriptBlockTextcontains
virtualalloc
22
ScriptBlockTextcontains
virtualfree
22
ScriptBlockTextcontains
writeprocessmemory
22
TargetImageeq
?:\windows\system32\lsass.exe
24
auditd.data.a2eq
7
22
auditd.data.syscalleq
mprotect
22
event.typeeq
start
2606
AlertSeveritycontains
high
1
AlertSeveritycontains
medium
1
AppIdeq
51f81489-12ee-4a9e-aaae-a2591f45987d
1
CallTracecontains
dbgcore
1
CallTracecontains
|unknown(
12
CallTraceends_with
)
1
CallTracelength_compare
0
1
CallTracelength_compare
>
1
CallTraceregex_match
^C:\\Windows\\SYSTEM32\\ntdll\.dll\+[a-z0-9]{4,6}\|C:\\Windows\\System32\\KER...
1
CallTracestarts_with
C:\Windows\System32\ntdll.dll+
1
CallTracestarts_with
UNKNOWN
1
CommandLinecontains
-c
114
CommandLinecontains
-cf
1
CommandLinecontains
-encodedcommand
13
CommandLinecontains
.hta
16

Exclusions (207 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
ScriptBlockTexteq
sentinelbreakpoints
3
ScriptBlockTexteq
set-psbreakpoint
3
ScriptBlockTexteq
powersploitindicators
2
user.ideq
S-1-5-18
3
process_nameeq
dotnet
2
process_nameeq
httpd
2
CallTracewildcard
?:\ProgramData\Symantec\Symantec Endpoint Protection\*\sysfer.dll*
1
CallTracewildcard
?:\WINDOWS\SYSTEM32\ntdll.dll*
1
CallTracewildcard
?:\WINDOWS\SysWOW64\ntdll.dll*
1
CallTracewildcard
?:\WINDOWS\System32\wow64win.dll*
1
CallTracewildcard
?:\Windows\System32\sysfer.dll*
1
CallTracewildcard
?:\Windows\System32\win32u.dll*
1
CallTracewildcard
?:\Windows\System32\wow64cpu.dll*
1
CleanCmdLinecontains
-m
1
CleanCmdLinecontains
/m
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.

Platform (all)
Domain (all)

Sigma 14 rules

Elastic 16 rules

Kusto 5 rules