Has used RDP to move laterally within the victim environment.1
- Tactic
- Lateral Movement
- Platform
- Windows
- Version
- 1.4
- Created
- 11 February 2020
- Last modified
- 12 May 2026
- Contributor
- Matthew Demaske, Adaptforward
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.
Remote Desktop Protocol MITRE reference T1021.001
37 groups have been recorded using this technique. Newest first; each entry carries MITRE’s procedure text and a link to the group’s full record. Click a name to filter the rules below.
Has used RDP to exfiltrate files of interest.1
Has used RDP to conduct lateral movement and exfiltrate data.1 Medusa Group has also utilized the Windows executable mstsc.exe for RDP activities through the command mstsc.exe /v:{hostname/ip}.1
Has used RDP to access other hosts within victim networks.12
Tunnels RDP traffic through deployed web shells to access victim environments via compromised accounts.1 Agrius used the Plink tool to tunnel RDP connections for remote access and lateral movement in victim environments.2
All 37 groups for this technique · 6 newest in this preview
9 campaigns have been recorded using this technique. Listed newest first; dates are year-granularity and attribution is MITRE’s.
During the 2025 Poland Wiper Attacks, adversaries utilized RDP to log into jump hosts and then moved laterally to other victim devices to include a domain controller.1
During Operation Digital Eye, threat actors moved laterally using RDP.1
During Cutting Edge, threat actors used RDP with compromised credentials for lateral movement.1
During APT28 Nearest Neighbor Campaign, APT28 used RDP for lateral movement.1
During C0018, the threat actors opened a variety of ports to establish RDP connections, including ports 28035, 32467, 41578, and 46892.1
During C0015, the threat actors used RDP to access specific network hosts of interest.1
All 9 campaigns for this technique · 6 newest in this preview
17 software entries are documented implementing this technique. MITRE files each as a tool or as malware; newest first, then by how many groups carry them.
Can be used to tunnel RDP connections.1
Has the ability to control an infected PC using RDP.1
Has laterally moved using RDP connections.1
Has the ability to use RDP to connect to victim's machines.1
Has a module for performing remote desktop access.1
Has remote desktop functionality.1
All 17 software entries for this technique · 6 newest in this preview
Offense vs defense T1021.001
Is defensive coverage keeping up with adversary use? Eight counts, each ranked against all 697 ATT&CK techniques. Attack sits left, defense right, so a shape leaning left means adversaries are better documented here than defenders are equipped. Hover any spoke for its percentile and the share of techniques that have more. The timeline below shows when each side arrived.
How it got here
Adversary activity (campaign spans) over cumulative rule output. Each source is plotted independently from zero, so neither line includes the other. Campaign dates are year-granularity.
Remote Desktop Protocol detection strategy DET0327
MITRE names one behaviour worth catching for this technique and breaks it into 1 analytic, one per platform. Each carries the log sources it needs and the fields you tune per environment.
Multi-event Detection Strategy for RDP-Based Remote Logins and Post-Access Activity
AN0931 · Windows
Remote Desktop (RDP) logon by a user followed by unusual process execution, file access, or lateral movement activity within a short timeframe.
Log sources
The data this analytic draws on. You do not need every component — each one you already collect covers part of it. Each links to its ATT&CK record.
| Data component | Name | Channel |
|---|---|---|
| Process CreationDC0032 | WinEventLog:Sysmon | EventCode=1 |
| Logon Session CreationDC0067 | WinEventLog:Security | EventCode=4624, 4648 |
| Network Connection CreationDC0082 | WinEventLog:Sysmon | EventCode=3, 22 |
| Logon Session MetadataDC0088 | WinEventLog:Security | EventCode=4778, EventCode=4779 |
Tunable fields
MITRE calls these the analytic’s mutable elements: the thresholds and filters you set for your own environment.
| Field | What you tune |
|---|---|
| TimeWindow | Temporal threshold to correlate login with post-login activity (e.g., 5 minutes) |
| UserContext | Tune for non-admin users or service accounts expected to use RDP |
| ProcessList | Define suspicious post-login processes such as cmd.exe, powershell.exe, certutil.exe |
| HostAccessPatterns | Scope detection to uncommon or first-time access between source and destination hosts |
The Remote Desktop Protocol (RDP), built in to Microsoft operating systems, allows a user to remotely log in to the desktop of another host. It allows for interactive access of the running windows, and forwards key presses, mouse clicks, etc. Network administrators, power users, and end-users may use RDP for day-to-day operations. From an adversary's perspective, RDP provides a means to laterally move to a new host. Determining which RDP connections correspond to adversary activity can be a difficult problem in highly dynamic environments, but will be useful in identifying the scope of a compromise.
D3FEND techniques
The defensive countermeasure this analytic implements, in MITRE’s D3FEND ontology.
| ID | Name |
|---|---|
| D3-RTSD | Remote Terminal Session Detection |
Data model references
The CAR data model objects, actions and fields the logic reads. Map these to your own schema before implementing.
| Object | Action | Field |
|---|---|---|
| flow | end | dest_port |
| flow | start | dest_ip |
| flow | start | dest_port |
| flow | start | src_ip |
Implementations
Pseudocode is the canonical logic; the rest are CAR’s translations into vendor query languages.
flow_start = search Flow:Start flow_end = search Flow:End rdp_start = filter flow_start where (port == "3389") rdp_end = filter flow_start where (port == "3389") rdp = group flow_start, flow_end by src_ip, src_port, dest_ip, dest_port output rdp
Sigma rule, focusing on RDP localhost login.
Monitoring logon and logoff events for hosts on the network is very important for situational awareness. This information can be used as an indicator of unusual activity as well as to corroborate activity seen elsewhere.
D3FEND techniques
The defensive countermeasure this analytic implements, in MITRE’s D3FEND ontology.
| ID | Name |
|---|---|
| D3-ANET | Authentication Event Thresholding |
Implementations
Pseudocode is the canonical logic; the rest are CAR’s translations into vendor query languages.
This base pseudocode looks for user logon events and filters out the top 30 account names to reduce the occurrence of noisy service accounts and the like. It is meant as a starting point for situational awareness around such events.
logon_events = search User_Session:Login filtered_logons = filter logon_events where ( user NOT IN TOP30(user)) output filtered_logons
Splunk version of the above pseudocode. NOTE - this is liable to be quite noisy and will need tweaking, especially in terms of the number of top users filtered out.
index=__your_win_event_log_index__ EventCode=4624|search NOT [search index=__your_win_event_log_index__ EventCode=4624|top 30 Account_Name|table Account_Name]
DNIF version of the above pseudocode.
_fetch * from event where $LogName=WINDOWS-NXLOG-AUDIT AND $SubSystem=AUTHENTICATION AND $Action=LOGIN group count_unique $ScopeID, $User limit 30 >>_store in_disk david_test win_top_30 stack_replace >>_fetch * from event where $LogName=WINDOWS-NXLOG-AUDIT AND $SubSystem=AUTHENTICATION AND $Action=LOGIN limit 10000 >>_checkif lookup david_test win_top_30 join $ScopeID = $ScopeID str_compare $User eq $User exclude
A remote desktop logon, through RDP, may be typical of a system administrator or IT support, but only from select workstations. Monitoring remote desktop logons and comparing to known/approved originating systems can detect lateral movement of an adversary.
D3FEND techniques
The defensive countermeasure this analytic implements, in MITRE’s D3FEND ontology.
| ID | Name |
|---|---|
| D3-RTSD | Remote Terminal Session Detection |
Implementations
Pseudocode is the canonical logic; the rest are CAR’s translations into vendor query languages.
Look in the system logs for remote logons using RDP.
[EventCode] == 4624 and [AuthenticationPackageName] == 'Negotiate' and [Severity] == "Information" and [LogonType] == 10
Sigma version of the above pseudocode, with some modifications.
LogPoint version of the above pseudocode.
norm_id=WinServer event_id=4624 package="Negotiate" log_level="INFO" logon_type=10
Audit the Remote Desktop Users group membership regularly. Remove unnecessary accounts and groups from Remote Desktop Users groups.
Disable the RDP service if it is unnecessary.
Use remote desktop gateways.
Use multi-factor authentication for remote logins.
Do not leave RDP accessible from the internet. Enable firewall rules to block RDP traffic between network security zones within a network.
Change GPOs to define shorter timeouts sessions and maximum amount of time any single session can be active. Change GPOs to specify the maximum amount of time that a disconnected session stays active on the RD session host server.
Consider removing the local Administrators group from the list of groups allowed to log in through RDP.
Limit remote user permissions if remote access is necessary.
Tests from Atomic Red Team (MIT licence) · technique definition