Remote Services: Remote Desktop Protocol T1021.001

Tactic: Lateral Movement

Adversaries may use Valid Accounts to log into a computer using the Remote Desktop Protocol (RDP). The adversary may then perform actions as the logged-on user.

Events covered

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

ProviderEventTitle
SysmonEvent ID 1Process creation
SysmonEvent ID 3Network connection
SysmonEvent ID 11FileCreate
SysmonEvent ID 12RegistryEvent (Object create and delete)
SysmonEvent ID 13RegistryEvent (Value Set)
SysmonEvent ID 14RegistryEvent (Key and Value Rename)
Security-AuditingEvent ID 4624An account was successfully logged on.
Security-AuditingEvent ID 4656A handle to an object was requested.
Security-AuditingEvent ID 4663An attempt was made to access an object.
Security-AuditingEvent ID 4688A new process has been created.
Security-AuditingEvent ID 4778A session was reconnected to a Window Station.
Security-AuditingEvent ID 4779A session was disconnected from a Window Station.
Security-AuditingEvent ID 4825A user was denied the access to Remote Desktop.
Security-AuditingEvent ID 5156The Windows Filtering Platform has permitted a connection.
Defender-DeviceEventsanyDefender event (any)
Defender-DeviceLogonEventsLogonSuccessLogon succeeded
Defender-DeviceNetworkEventsConnectionSuccessConnection succeeded
Defender-DeviceProcessEventsanyProcess activity (any)
PowerShellEvent ID 4104Creating Scriptblock text (MessageNumber of MessageTotal).
TerminalServices-LocalSessionManagerEvent ID 21Remote Desktop Services: Session logon succeeded.
TerminalServices-LocalSessionManagerEvent ID 24Remote Desktop Services: Session has been disconnected.
TerminalServices-LocalSessionManagerEvent ID 25Remote Desktop Services: Session reconnection succeeded.
TerminalServices-RemoteConnectionManagerEvent ID 1149Remote Desktop Services: User authentication succeeded.

Authoring guide

Patterns shared across the 80 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 (55 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
CommandLine22contains 16, match 4, in 3, ends_with 1 -r , (?i)((\x5cAppData\x5cLocal\x5cMicrosoft\x5cWindows\x5c.*\..., (?i)mstsc, /v:, add
DestinationPort13eq 11, match 23389, (?i)3389|rdp, 443, 80
Image13ends_with 11, starts_with 2, eq 1, is_null 1, wildcard 1\mstsc.exe, \svchost.exe, <unknown process>, \\, \avast software\avast\avastsvc.exe
EventID12eq 124688, 1, 11, 3, 4104
process_name12eq 9, match 2, ne 1mstsc.exe, (?i)mstsc, netsh.exe, attrib.exe, explorer.exe
EventType10eq 7, starts_with 3, ne 2ConnectionSuccess, AppControl, LogonSuccess, Image loaded, connection_attempted
Details7eq 5, contains 1, wildcard 10x00000000, 0, 0x00000001, 0x00000002, 0x00000003
OriginalFileName7eq 7mstsc.exe, netsh.exe, powershell.exe, pwsh.dll, rdpwinst.exe
event.type7eq 6, in 1start, change, creation
SourcePort6eq 4, match 23389, (?i)3389|rdp, 53
parent_process_name6ne 3, eq 2, contains 1microsoft.tri.sensor.exe, cmd.exe, powershell.exe, svchost.exe, taskmgr
Type5eq 5ServiceAccount
dest_ip5ne 2, cidr_match 1, eq 1, in 1, starts_with 1::1, 10.0.0.0/8, 127., 127.0.0.0/8, 127.0.0.1
src_ip5eq 4, ne 1, starts_with 1127.0.0.1, ::1, %admin_jump_hosts%, %vulnerability_scanners%, 127.
Initiated4eq 4true, incoming, ingress

Top indicator values (298 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
DestinationPorteq
3389
1011
event.typeeq
start
5606
event.typeeq
change
377
EventTypeeq
ConnectionSuccess
49
EventTypeeq
LogonSuccess
25
src_ipeq
::1
46
src_ipeq
127.0.0.1
35
Detailseq
0x00000000
343
Detailseq
0
212
Detailseq
0x00000001
263
EventIDeq
4688
3313
EventIDeq
1
2237
Initiatedeq
true
350
NodeLabeleq
device
33
OnboardingStatusne
Onboarded
35
SourcePorteq
3389
33
TpmActivatedne
true
34
TpmEnabledne
true
34
TpmSupportedne
true
34
parent_process_namene
microsoft.tri.sensor.exe
33
process_nameeq
mstsc.exe
35
typeeq
DeviceInventoryId
35
CommandLinecontains
-r
210
CommandLinecontains
/v:
22
CommandLinecontains
add
234
CommandLinematch
(?i)((\x5cAppData\x5cLocal\x5cMicrosoft\x5cWindows\x5c.*\x5cContent\.Outlook\...
22
CommandLinematch
(?i)mstsc
22
DestinationHostnameeq
login.microsoftonline.com
23
DestinationPortmatch
(?i)3389|rdp
22
EventTypestarts_with
AppControl
25

Exclusions (115 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
Imageends_with
\thor.exe
2
Imageends_with
\thor64.exe
2
parent_process_namein
backgroundtaskhost.exe
2
parent_process_namein
svchost.exe
2
src_ipeq
%admin_jump_hosts%
2
src_ipeq
%vulnerability_scanners%
2
src_ipeq
127.0.0.1
2
src_ipeq
::1
2
CommandLinecontains
-u -p
1
CommandLinecontains
02
1
CommandLinecontains
c:\programdata\microsoft\wsl\wslg.rdp
1
CommandLinecontains
c:\windows\system32\services.msc
1
CommandLinecontains
securitylayer
1
DeviceIdeq
historic_rdp_devices
1
FilterOrigineq
AppContainer Loopback
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 26 rules

Elastic 19 rules

Splunk 29 rules

Kusto 6 rules