Boot or Logon Autostart Execution: Port Monitors T1547.010

Tactics: Persistence, Privilege Escalation

Adversaries may use port monitors to run an adversary supplied DLL during system boot for persistence or privilege escalation. A port monitor can be set through the AddMonitor API call to set a DLL to be loaded at startup. This DLL can be located in C:\Windows\System32 and will be loaded and run by the print spooler service, `spoolsv.exe`, under SYSTEM level permissions on boot.

Events covered

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

Authoring guide

Patterns shared across the 11 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 (19 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
TargetObject5ends_with 2, contains 1, regex_match 1, wildcard 1\\control\\terminal server\\winstations\\rdp-tcp\\portnumber$, \control\print\monitors\, \control\print\monitors\cutepdf writer monitor v4.0\driver, \control\print\monitors\monvnc\driver, \control\terminal server\winstations\rdp-tcp\portnumber
Details4ends_with 2, eq 2, starts_with 1.dll, %SystemRoot%\system32\mmc.exe "%1" %, DWORD (0x00000d3d), cpwmon64_v40.dll
Image3ends_with 2, eq 1\net.exe, \net1.exe, \secedit.exe, c:\windows\system32\spoolsv.exe
CommandLine2contains 2/cfg, /configure, /db, net use, printnightmare.gentilkiwi.com
DeviceDescription1contains 1gentil, kiwi, printnightmare
EventData1contains 1.dll, .exe, add-printerport
EventID1eq 14663
EventType1eq 1modified
OriginalFileName1eq 1secedit
Payload1contains 1.dll, .exe, add-printerport
ScriptBlockText1contains 1.dll, .exe, add-printerport
TargetInfo1eq 1printnightmare.gentilkiwi.com
TargetServerName1eq 1printnightmare.gentilkiwi.com
TargetUserName1eq 1gentilguest
c_file_name1le 15

Top indicator values (54 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
Detailsends_with
.dll
28
CommandLinecontains
/cfg
12
CommandLinecontains
/configure
12
CommandLinecontains
/db
12
CommandLinecontains
/export
12
CommandLinecontains
net use
12
CommandLinecontains
printnightmare.gentilkiwi.com
12
Detailseq
DWORD (0x00000d3d)
1
Detailseq
cpwmon64_v40.dll
1
Detailsstarts_with
%SystemRoot%\system32\mmc.exe "%1" %
1
DeviceDescriptioncontains
gentil
1
DeviceDescriptioncontains
kiwi
1
DeviceDescriptioncontains
printnightmare
1
EventDatacontains
.dll
13
EventDatacontains
.exe
1
EventDatacontains
add-printerport
1
EventDatacontains
name
13
EventIDeq
4663
134
EventTypeeq
modified
16
Imageends_with
\net.exe
149
Imageends_with
\net1.exe
147
Imageends_with
\secedit.exe
1
Imageeq
c:\windows\system32\spoolsv.exe
1
OriginalFileNameeq
secedit
1
Payloadcontains
.dll
13
Payloadcontains
.exe
1
Payloadcontains
add-printerport
1
Payloadcontains
name
13
ScriptBlockTextcontains
.dll
13
ScriptBlockTextcontains
.exe
1

Exclusions (12 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
Detailseq
DWORD (0x00000d3d)
2
Detailseq
cpwmon64_v40.dll
1
Detailsstarts_with
%SystemRoot%\system32\mmc.exe "%1" %
1
Imageeq
c:\windows\system32\spoolsv.exe
1
TargetObjectcontains
\control\print\monitors\cutepdf writer monitor v4.0\driver
1
TargetObjectcontains
\control\print\monitors\monvnc\driver
1
TargetObjectcontains
\drivers\
1
TargetObjectcontains
\vnc printer
1
TargetObjectcontains
control\print\environments\
1
usercontains
authori
1
usercontains
autori
1
user.ideq
S-1-5-18
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 7 rules

Elastic 1 rule

Splunk 2 rules

YARA-L 1 rule