The detection identifies potential use of the TacticalRMM tool by adversaries to establish network connections for command and control or persistence. SOC teams should proactively hunt for this behavior in Azure Sentinel to detect and mitigate early-stage compromise leveraging legitimate RMM tools.
KQL Query
let Time_start = now(-5d);
let Time_end = now();
//
DeviceNetworkEvents
| where Timestamp between (Time_start..Time_end)
| where RemoteUrl has 'tacticalrmm.io'
and InitiatingProcessVersionInfoCompanyName has_any (
'AmidaWare',
'Tactical Techs'
)
| summarize FirstSeen=min(Timestamp), LastSeen=max(Timestamp),
Report=make_set(ReportId), Count=count() by DeviceId, DeviceName,
RemoteUrl
id: d5559c16-6959-4974-8051-c39d52886862
name: Remote Management and Monitoring tool - TacticalRMM - 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 'tacticalrmm.io'
and InitiatingProcessVersionInfoCompanyName has_any (
'AmidaWare',
'Tactical Techs'
)
| 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 TacticalRMM
Description: A system administrator schedules a routine maintenance task using TacticalRMM to update software or apply patches across multiple endpoints.
Filter/Exclusion: process.name != "TacticalRMM.exe" OR process.parent.name != "TacticalRMM.exe" OR event_id == 41 (for scheduled task execution)
Scenario: Remote PowerShell Script Execution via TacticalRMM
Description: An IT admin uses TacticalRMM to execute a PowerShell script on a remote endpoint to gather system metrics or apply configuration changes.
Filter/Exclusion: process.name != "powershell.exe" OR process.parent.name != "TacticalRMM.exe" OR process.args contains "Get-EventLog"
Scenario: Network Discovery via TacticalRMM for Inventory Purposes
Description: The IT team uses TacticalRMM to scan the internal network for inventory purposes, identifying active hosts and their configurations.
Filter/Exclusion: destination_ip in internal_network_range OR process.name != "TacticalRMM.exe" OR event_id == 1006 (for network discovery tasks)
Scenario: Remote File Copy via TacticalRMM for Backup Purposes
Description: An admin uses TacticalRMM to copy files from a remote endpoint to a central backup server as part of a regular backup process.
Filter/Exclusion: destination_ip in backup_server_range OR process.name != "TacticalRMM.exe" OR file.name contains "backup"
Scenario: Remote Monitoring Agent Update via TacticalRMM
Description: The RMM tool automatically updates the monitoring agent on remote endpoints to ensure it is running the latest version.
Filter/Exclusion: process.name != "TacticalRMM.exe" OR