Detect Remote Desktop Protocol in Elastic Security
Adversaries may use Valid Accounts to log into a computer using the Remote Desktop Protocol (RDP). RDP is a common feature in Windows that allows interactive graphical sessions on remote systems. Threat actors including Kimsuky, INC Ransom, Volt Typhoon, Wizard Spider, BlackByte, Akira, and FIN7 have all leveraged RDP for lateral movement. Adversaries typically acquire credentials via Credential Access techniques, then use RDP to expand access to additional systems, deploy ransomware interactively, or establish persistence via Accessibility Features.
MITRE ATT&CK
- Tactic
- Lateral Movement
- Technique
- T1021 Remote Services
- Sub-technique
- T1021.001 Remote Desktop Protocol
- Canonical reference
- https://attack.mitre.org/techniques/T1021/001/
Elastic Detection Query
sequence by source.ip with maxspan=5m
[authentication where event.provider == "Microsoft-Windows-Security-Auditing"
and event.code == "4625"
and winlog.event_data.LogonType == "10"
and source.ip != null
and source.ip != "127.0.0.1"
and source.ip != "::1"
and source.ip != "-"] with runs=5
[authentication where event.provider == "Microsoft-Windows-Security-Auditing"
and event.code == "4624"
and winlog.event_data.LogonType == "10"
and source.ip != null
and source.ip != "127.0.0.1"
and source.ip != "::1"]
// Supplemental filter query for sensitive host and privileged account RDP access:
// authentication where event.provider == "Microsoft-Windows-Security-Auditing"
// and event.code == "4624"
// and winlog.event_data.LogonType == "10"
// and source.ip != null and source.ip != "127.0.0.1" and source.ip != "::1"
// and (
// wildcard(host.name, "*dc*", "*pdc*", "*dc01*", "*domain-controller*")
// or wildcard(user.name, "*admin*", "*administrator*", "*svc*", "*service*")
// ) Detects T1021.001 RDP lateral movement via two patterns: (1) a sequence of 5+ failed RDP logon attempts (EventID 4625, LogonType 10) from the same source IP followed by a successful RDP logon (EventID 4624, LogonType 10) within 5 minutes — indicating credential brute force; and (2) supplemental filter for direct RDP success events targeting sensitive hosts (DC, PDC) or using privileged/service accounts. Loopback and null source IPs are excluded.
Data Sources
Required Tables
False Positives & Tuning
- Legitimate IT administrators using RDP to manage domain controllers or servers — particularly during patch windows or incident response.
- Remote support tools (e.g., helpdesk software) that authenticate via RDP and may trigger repeated logon attempts before success.
- Automated monitoring or backup agents configured to use RDP with service accounts that match privileged account name patterns.
Other platforms for T1021.001
Testing Methodology
Validate this detection against 4 adversary techniques from Atomic Red Team. Each test below lists the behaviour to exercise and the telemetry you should expect to see. Executable commands and cleanup steps are available with Pro.
- Test 1RDP Connection to Remote Host
Expected signal: Sysmon Event ID 1: Process Create with Image=mstsc.exe, CommandLine='/v:127.0.0.1 /admin'. Sysmon Event ID 3: Network Connection to port 3389. Security Event ID 4624 (LogonType=10) on the target if RDP is enabled. Event ID 1149 in TerminalServices-RemoteConnectionManager log.
- Test 2Enable RDP and Create RDP-Accessible User
Expected signal: Sysmon Event ID 13 (Registry Value Set) for HKLM\System\CurrentControlSet\Control\Terminal Server\fDenyTSConnections. Sysmon Event ID 1 (Process Create) for net.exe with 'Remote Desktop Users' in command line. Security Event ID 4732 (member added to security-enabled local group). Security Event ID 4657 (registry value modified).
- Test 3Simulate RDP Brute Force (Authentication Failures)
Expected signal: Security Event ID 4625 (Logon Failure, LogonType=10) for each failed attempt. Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational Event ID 261. After 6 failures, detection threshold should fire.
- Test 4RDP Tunnel via NetSH Port Proxy
Expected signal: Sysmon Event ID 1: Process Create for netsh.exe with 'portproxy' and 'add' in command line. Registry change at HKLM\SYSTEM\CurrentControlSet\Services\PortProxy. Security Event ID 4688 for netsh.exe. Sysmon Event ID 12/13 for registry modification.
References (8)
- https://attack.mitre.org/techniques/T1021/001/
- https://technet.microsoft.com/en-us/windowsserver/ee236407.aspx
- https://learn.microsoft.com/en-us/defender-endpoint/advanced-hunting-securityevent-table
- https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4624
- https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1021.001/T1021.001.md
- https://www.crowdstrike.com/blog/adversary-tricks-crowdstrike-treats/
- https://www.mandiant.com/resources/blog/fin12-ransomware-intrusion-actor-partnering-trickbot
- https://www.cisa.gov/news-events/cybersecurity-advisories/aa24-038a
Unlock Pro Content
Get the full detection package for T1021.001 including response playbook, investigation guide, and atomic red team tests.