The hypothesis is that an adversary is using ConnectWise, a Remote Monitoring and Management tool, to establish a network connection for potential C2 communication or persistence. SOC teams should proactively hunt for this behavior in Azure Sentinel to identify and mitigate potential adversary use of legitimate RMM tools for malicious purposes.
KQL Query
let Time_start = now(-5d);
let Time_end = now();
//
DeviceNetworkEvents
| where Timestamp between (Time_start..Time_end)
| where RemoteUrl has_any (
"myconnectwise.com",
"connectwise.com",
"screenconnect.com",
"itsupport247.net" // overlap w/ Continuum Managed
)
and InitiatingProcessVersionInfoCompanyName has_any (
'ConnectWise',
'Continuum Managed',
'ScreenConnect'
)
| summarize FirstSeen=min(Timestamp), LastSeen=max(Timestamp),
Report=make_set(ReportId), Count=count() by DeviceId, DeviceName,
RemoteUrl
id: e483619f-5356-4967-b93e-cceb602783fb
name: Remote Management and Monitoring tool - ConnectWise - 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_any (
"myconnectwise.com",
"connectwise.com",
"screenconnect.com",
"itsupport247.net" // overlap w/ Continuum Managed
)
and InitiatingProcessVersionInfoCompanyName has_any (
'ConnectWise',
'Continuum Managed',
'ScreenConnect'
)
| 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 job using ConnectWise to update remote endpoint software
Filter/Exclusion: process.name != "ConnectWise" OR process.name != "ConnectWise Scheduler"
Scenario: IT admin using ConnectWise to remotely reboot a server during a planned outage
Filter/Exclusion: process.name != "ConnectWise" OR event.type != "reboot"
Scenario: ConnectWise agent performing a routine system scan for compliance checks
Filter/Exclusion: process.name != "ConnectWise Agent" OR event.action != "scan"
Scenario: ConnectWise integration with Microsoft Intune for device configuration management
Filter/Exclusion: process.name != "ConnectWise" OR event.source != "Intune"
Scenario: ConnectWise used to deploy software updates across a large number of endpoints
Filter/Exclusion: process.name != "ConnectWise" OR event.action != "software deployment"