Operator On The Wire
Join
← Back to Knowledge Base
BLUE TEAM / THREAT HUNT / WINDOWS / LATERAL MOVEMENT

RDP Abuse

This note documents detection patterns related to RDP Abuse within Windows environments.


Direct Indicators

LogEvent IDMeaningForensic ValueNotes
Security4624Successful logonCriticalLogon Type 10 = RDP (RemoteInteractive)
Security4625Failed logonCriticalBrute-force attempts
Security4634LogoffHighSession termination
Security4648Explicit credentialsHighOften used before lateral movement
Security4672Special privileges assignedHighAdmin-level session
Security4778Session reconnectedHighExisting session resumed
Security4779Session disconnectedHighSession closed
Security4688Process creationCriticalPost-RDP execution
Sysmon1Process creationCriticalmstsc.exe or attacker tooling
TerminalServices-LocalSessionManager21Session logonCriticalRDP session established
TerminalServices-LocalSessionManager24Session disconnectedCritical
TerminalServices-LocalSessionManager25Session reconnectedCritical
TerminalServices-RemoteConnectionManager1149RDP authentication succeededCriticalVERY important pre-session indicator

Indirect Indicators

IndicatorWhat To Look ForForensic ValueNotes
Logon Type 10 from rare sourceNew host/IPCriticalStrong anomaly
Multiple 4625 → 4624Brute-force successCritical
Admin account via RDPPrivileged loginCritical
RDP followed by toolingcmd, powershellCriticalOperator activity
Night loginTime anomalyHigh
Workstation → workstationLateral movementHigh
External IP RDPInternet exposureCriticalVery high risk
Short-lived sessionsRapid connect/disconnectMediumRecon or failed ops

Common Tools

ToolUsage
mstsc.exeNative client
xfreerdpLinux client
SharpRDPOffensive automation
PowerShellEnable/modify RDP
reg.exeRegistry changes
net.exeUser/group manipulation
nmapRDP enumeration (3389)
HydraRDP brute-force

Relevant Artifacts

Event Logs

  • Security: 4624, 4625, 4634, 4648, 4672, 4688, 4778, 4779
  • TerminalServices:
    • LocalSessionManager (21, 24, 25)
    • RemoteConnectionManager (1149)

File System

  • Prefetch: MSTSC.EXE
  • Recent files / JumpLists
  • User profile artifacts (NTUSER.DAT)

Registry

  • HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server
  • HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
  • fDenyTSConnections (0 = enabled)

Network

  • Port: TCP 3389
  • Firewall rule changes
  • Netflow / PCAP traces

Memory / EDR

  • Session lineage
  • Parent-child process chains
  • Remote thread injections (post-login activity)

MITRE ATT&CK References

  • T1021.001 Remote Desktop Protocol
  • T1078 Valid Accounts
  • T1110 Brute Force
  • T1059 Command Execution

Decision Tree

  1. Was RDP session established?

    • 4624 (Type 10)
    • Event 1149
    • Session logs
  2. Source expected?

    • Admin host?
    • External IP?
    • Rare workstation?
  3. Account sensitive?

    • Admin
    • Service account
    • Dormant user
  4. Post-login activity?

    • Shell spawn
    • Registry edits
    • Service creation
  5. Expand scope

    • Failed attempts
    • Lateral movement
    • Other hosts
  6. Timeline correlation

    • Logon → Process → Persistence

Example Detection Templates

KQL

SecurityEvent
| where EventID == 4624 and LogonType == 10
| project TimeGenerated, Computer, Account, IpAddress
SecurityEvent
| where EventID == 4625 and LogonType == 10
| summarize count() by IpAddress, Account
SecurityEvent
| where EventID == 1149

EQL

authentication where event.code == "4624" and winlog.logon.type == "10"
sequence by host.name with maxspan=5m
  [ authentication where event.code == "4624" ]
  [ process where process.name in ("cmd.exe","powershell.exe","reg.exe") ]

Sigma

title: Suspicious RDP Logon
id: rdp-4624-detect
status: experimental
logsource:
  product: windows
  service: security
detection:
  selection:
    EventID: 4624
    LogonType: 10
  condition: selection
level: high

Network Detection (Snort)

alert tcp any any -> any 3389 (msg:"RDP Connection Attempt"; flow:to_server,established; sid:1000001; rev:1;)
alert tcp any any -> any 3389 (msg:"Possible RDP Brute Force"; threshold:type both, track by_src, count 5, seconds 60; sid:1000002; rev:1;)

Mitigation & Hardening

ControlMitigationEffectivenessNotes
Restrict RDPLimit accessCritical
MFAEnforce MFACritical
Disable external RDPVPN onlyCritical
Account lockoutPrevent brute forceHigh
Monitor logsAlert on anomaliesCritical
Admin segmentationJump hostsHigh
NLA enforcementPre-auth protectionHigh

Key Insight

RDP abuse is rarely just a login event — it is a chain: Authentication → Session → Execution → Persistence

Always correlate across:

  • Logs
  • Network
  • File system
  • Process activity