The hypothesis is that an adversary is using a RemotePC tool to establish a network connection for remote management and potential C2 communication. SOC teams should proactively hunt for this behavior in Azure Sentinel to detect and mitigate potential persistent access or command and control activities leveraging RMM tools.
KQL Query
let Time_start = now(-5d);
let Time_end = now();
//
DeviceNetworkEvents
| where Timestamp between (Time_start..Time_end)
| where RemoteUrl has 'remotepc.com'
and InitiatingProcessVersionInfoCompanyName has 'idrive'
and InitiatingProcessVersionInfoProductName has_any (
'remotepc',
'viewer',
'remotedesktop'
)
| summarize FirstSeen=min(Timestamp), LastSeen=max(Timestamp),
Report=make_set(ReportId), Count=count() by DeviceId, DeviceName,
RemoteUrl
id: 30d32feb-6ac7-4d97-8a99-d40f5dfa61b5
name: Remote Management and Monitoring tool - RemotePC - 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 RemoteUrl has 'remotepc.com'
and InitiatingProcessVersionInfoCompanyName has 'idrive'
and InitiatingProcessVersionInfoProductName has_any (
'remotepc',
'viewer',
'remotedesktop'
)
| 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 System Maintenance via RemotePC
Description: A system administrator uses RemotePC to run a scheduled maintenance task, such as disk cleanup or patch deployment, which results in a network connection.
Filter/Exclusion: process.name == "schtasks.exe" || process.name == "taskhost.exe"
Scenario: Remote Desktop Protocol (RDP) Session Established via RemotePC
Description: An IT admin uses RemotePC to establish an RDP session to troubleshoot a user’s machine, which triggers a network connection.
Filter/Exclusion: process.name == "mstsc.exe" || process.name == "rdpclip.exe"
Scenario: Software Update Deployment via RemotePC
Description: A scheduled update via RemotePC triggers a network connection to download the update from a company’s internal repository.
Filter/Exclusion: process.name == "WindowsUpdate.exe" || process.name == "wuauclt.exe"
Scenario: Remote Monitoring Tool Configuration Sync
Description: The RemotePC tool syncs its configuration with the central management server, which involves a network connection.
Filter/Exclusion: process.name == "RemotePCConfigSync.exe" || process.name == "RemotePCService.exe"
Scenario: User-Initiated Remote Support Session
Description: A user initiates a remote support session using RemotePC, which results in a network connection to the support technician’s machine.
Filter/Exclusion: process.name == "RemotePCSupport.exe" || user.name == "support_user"