The detection identifies potential adversary use of TightVNC for remote management and command and control activities, leveraging its network connection capabilities for persistence or exfiltration. SOC teams should proactively hunt for this behavior in Azure Sentinel to identify and mitigate potential compromise of endpoints through abused RMM tools.
KQL Query
let Time_start = now(-5d);
let Time_end = now();
//
DeviceNetworkEvents
| where Timestamp between (Time_start..Time_end)
| where InitiatingProcessVersionInfoCompanyName has 'GlavSoft'
and InitiatingProcessVersionInfoProductName has 'TightVNC'
| summarize FirstSeen=min(Timestamp), LastSeen=max(Timestamp),
Report=make_set(ReportId), Count=count() by DeviceId, DeviceName,
RemoteUrl
id: 4323b279-4600-4fc6-a0b9-1d8d678c6b1b
name: Remote Management and Monitoring tool - TightVNC - Network Connection
description: |
Remote Monitoring and Management (RMM) programs are IT to manage remote endpoints. Attackers have begun to abuse these programs to persist or provide C2 channels.
https://github.com/jischell-msft/RemoteManagementMonitoringTools
requiredDataConnectors:
- connectorId: MicrosoftThreatProtection
dataTypes:
- DeviceNetworkEvents
tactics: CommandAndControl
relevantTechniques: T1219
query: |
let Time_start = now(-5d);
let Time_end = now();
//
DeviceNetworkEvents
| where Timestamp between (Time_start..Time_end)
| where InitiatingProcessVersionInfoCompanyName has 'GlavSoft'
and InitiatingProcessVersionInfoProductName has 'TightVNC'
| summarize FirstSeen=min(Timestamp), LastSeen=max(Timestamp),
Report=make_set(ReportId), Count=count() by DeviceId, DeviceName,
RemoteUrl
| Sentinel Table | Notes |
|---|---|
DeviceNetworkEvents | Ensure this data connector is enabled |
Scenario: Scheduled Maintenance Task Using TightVNC
Description: An administrator schedules a routine maintenance task using TightVNC to remotely reboot a server or apply patches.
Filter/Exclusion: process.name != "tvncviewer.exe" OR process.name != "tvncserver.exe" OR (process.name == "tvncviewer.exe" AND event_id == 41)
Scenario: Remote Desktop Session via TightVNC
Description: A legitimate remote desktop session is established using TightVNC for user support or troubleshooting.
Filter/Exclusion: process.name != "tvncviewer.exe" OR (process.name == "tvncviewer.exe" AND destination_ip IN (list_of_known_admin_ips))
Scenario: TightVNC Used for System Monitoring by IT Team
Description: The IT team uses TightVNC to monitor system performance and collect logs from remote endpoints.
Filter/Exclusion: process.name != "tvncviewer.exe" OR (process.name == "tvncviewer.exe" AND user_account IN (list_of_it_admin_accounts))
Scenario: TightVNC Used for Software Deployment
Description: A deployment tool uses TightVNC to push updates or configurations to multiple endpoints during a scheduled deployment.
Filter/Exclusion: process.name != "tvncviewer.exe" OR (process.name == "tvncviewer.exe" AND event_id == 1001)
Scenario: TightVNC Used for Remote Support by Help Desk
Description: The help desk uses TightVNC to assist end-users with software issues or configuration changes.
Filter/Exclusion: process.name != "tvncviewer.exe" OR (process.name == "tvncviewer.exe" AND user_account IN (list_of_helpdesk_accounts))