Native API T1106

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

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

Authoring guide

Patterns shared across the 20 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 (20 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
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
Image5ends_with 5, contains 1, starts_with 1:\program files (x86)\, :\program files\, :\program files\adobe\acrobat dc\acrobat\, \cdb.exe, \cmd.exe
ScriptBlockText4contains 4adjusttokenprivileges, closehandle, addsecuritypackage, advapi32.dll, createremotethread
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
EventType2eq 1, in 1CreateRemoteThreadApiCall, NtAllocateVirtualMemoryRemoteApiCall, NtMapViewOfSectionRemoteApiCall, ProcessPrimaryTokenModified
OriginalFileName2eq 2cdb.exe, mshta.exe
ParentImage2ends_with 2\cmd.exe, \compattelrunner.exe, \cscript.exe, \powershell.exe
event.type2eq 2change, start
Details1length_compare 10, >
EfectiveCommand1regex_match 1regexEmpire
EventData1contains 1-encodedcommand, powershell.exe, powershell_ise.exe
EventID1eq 14688
InitiatingProcessSHA11is_not_null 1

Top indicator values (206 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
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
CallTracecontains
dbgcore
1
CallTracecontains
|unknown(
13
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
111
CommandLinecontains
-cf
1
CommandLinecontains
-encodedcommand
13
CommandLinecontains
.hta
17
CommandLinecontains
.htm
12
CommandLinecontains
\appdata\local\
110
CommandLinecontains
\windows\temp\tmp.bat
1
CommandLinecontains
addsecuritypackage
1
CommandLinecontains
adjusttokenprivileges
1
CommandLinecontains
advapi32
1
CommandLinecontains
c:\programdata\
17

Exclusions (89 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
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
CommandLinecontains
.hta
1
CommandLinecontains
.htm
1
CommandLinecontains
closehandle
1
CommandLinecontains
freehglobal
1
CommandLinecontains
getloadlibrarywaddress32
1
CommandLinecontains
kernel32
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 13 rules

Elastic 4 rules

Kusto 3 rules