Has installed TightVNC server and client on compromised servers and endpoints for lateral movement.1
- Tactic
- Lateral Movement
- Platforms
- Linux, Windows, macOS
- Version
- 1.2
- Created
- 11 February 2020
- Last modified
- 24 October 2025
Adversaries may use Valid Accounts to remotely control machines using Virtual Network Computing (VNC). VNC is a platform-independent desktop sharing system that uses the RFB (“remote framebuffer”) protocol to enable users to remotely control another computer’s display by relaying the screen, mouse, and keyboard inputs over the network.[1]
VNC MITRE reference T1021.005
4 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 VNC tools, including UltraVNC, to remotely interact with compromised hosts.123
Has used TightVNC to control compromised hosts.1
Uses VNC for lateral movement.1
All 4 groups for this technique
7 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.
Has routed C2 traffic using Keyhole VNC.1
Can use VNC for remote access to targeted systems.1
Has the ability of performing remote desktop access via a VNC console.1
Can start a remote VNC session by downloading a new plugin.1
Supports functionality for VNC sessions.1
Has used a VNC module to monitor the victim and collect information to pivot to valuable systems on the network 12
All 7 software entries for this technique · 6 newest in this preview
Offense vs defense T1021.005
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.
VNC detection strategy DET0178
MITRE names one behaviour worth catching for this technique and breaks it into 3 analytics, one per platform. Each carries the log sources it needs and the fields you tune per environment.
Behavioral Detection of Unauthorized VNC Remote Control Sessions
AN0504 · Windows
Detection of VNC service or executable starting unexpectedly, followed by user session creation and interactive desktop activity (mouse/keyboard simulation).
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 Traffic FlowDC0078 | NSM:Flow | port 5900 inbound |
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 | Correlate VNC process with user logon activity within defined time span |
| VNCBinaryList | Trackable VNC executable names (e.g., vncserver.exe, winvnc.exe) |
| LogonType | Limit detection to interactive logons (type 10) |
AN0505 · Linux
Spawning of VNC-related processes (e.g., x11vnc, vncserver) coupled with authentication logs and port listening behavior on TCP 5900.
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 | auditd:EXECVE | None |
| Network Traffic FlowDC0078 | NSM:Flow | TCP port 5900 open |
| Logon Session MetadataDC0088 | linux:syslog | None |
Tunable fields
MITRE calls these the analytic’s mutable elements: the thresholds and filters you set for your own environment.
| Field | What you tune |
|---|---|
| ListeningPort | Default VNC port (5900) but may vary in config |
| ProcessNameFilter | Filter specific VNC binaries in process execution logs |
| UserContext | Scope detection to non-service or high-privilege accounts |
AN0506 · macOS
Detection of VNC-based remote control via screensharingd activity in Unified Logs along with concurrent remote login activity or suspicious user interaction.
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 | macos:osquery | process_events |
| Logon Session CreationDC0067 | macos:unifiedlog | authentication |
| Network Traffic FlowDC0078 | NSM:firewall | inbound connection to port 5900 |
Tunable fields
MITRE calls these the analytic’s mutable elements: the thresholds and filters you set for your own environment.
| Field | What you tune |
|---|---|
| AuthenticationPredicate | Unified log predicate to refine suspicious screensharing access |
| TimeWindow | Time between VNC connection and follow-on activity (e.g., 30s) |
| UserActivitySpike | Mouse/keyboard interaction spike immediately post-VNC login |
Inventory workstations for unauthorized VNC server software.
Uninstall any VNC server software where not required.
VNC defaults to TCP ports 5900 for the server, 5800 for browser access, and 5500 for a viewer in listening mode. Filtering or blocking these ports will inhibit VNC traffic utilizing default ports.
Restrict software installation to user groups that require it. A VNC server must be manually installed by the user or adversary.
Tests from Atomic Red Team (MIT licence) · technique definition