A threat hunter should investigate processes created by the TacticalRMM tool as it may indicate adversary use of a remote management solution for persistence or command and control. Proactively hunting for this behavior in Azure Sentinel helps identify potential compromise of IT infrastructure through legitimate tools abused by attackers.
KQL Query
let Time_start = now(-5d);
let Time_end = now();
//
DeviceProcessEvents
| where Timestamp between (Time_start..Time_end)
| where ProcessVersionInfoCompanyName has_any (
'AmidaWare',
'Tactical Techs'
)
and ProcessVersionInfoProductName has 'Tactical RMM'
| summarize FirstSeen=min(Timestamp), LastSeen=max(Timestamp),
Report=make_set(ReportId), Count=count() by DeviceId, DeviceName
id: e4b2b90d-bd72-45a0-93b0-b9a2a8bd17c8
name: Remote Management and Monitoring tool - TacticalRMM - Create Process
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:
- DeviceProcessEvents
tactics: CommandAndControl
relevantTechniques: T1219
query: |
let Time_start = now(-5d);
let Time_end = now();
//
DeviceProcessEvents
| where Timestamp between (Time_start..Time_end)
| where ProcessVersionInfoCompanyName has_any (
'AmidaWare',
'Tactical Techs'
)
and ProcessVersionInfoProductName has 'Tactical RMM'
| summarize FirstSeen=min(Timestamp), LastSeen=max(Timestamp),
Report=make_set(ReportId), Count=count() by DeviceId, DeviceName
| Sentinel Table | Notes |
|---|---|
DeviceProcessEvents | Ensure this data connector is enabled |
Scenario: Scheduled Job Execution via TacticalRMM
Description: A legitimate scheduled job is configured to run a process (e.g., taskmgr.exe, powershell.exe) as part of routine system maintenance.
Filter/Exclusion: process.name IN ("taskmgr.exe", "powershell.exe") AND process.parent_process_name = "tacticalrmm.exe"
Scenario: Remote System Inventory Scan via TacticalRMM
Description: An IT admin is performing a system inventory scan using TacticalRMM to gather endpoint information for compliance or asset management.
Filter/Exclusion: process.name = "wmic.exe" AND process.parent_process_name = "tacticalrmm.exe"
Scenario: Software Deployment via TacticalRMM
Description: A system administrator is deploying a new application or update using TacticalRMM, which triggers the creation of a process (e.g., msiexec.exe, setup.exe).
Filter/Exclusion: process.name IN ("msiexec.exe", "setup.exe") AND process.parent_process_name = "tacticalrmm.exe"
Scenario: User-Initiated Remote Support Session
Description: A support technician is using TacticalRMM to connect to a user’s machine for remote assistance, which may involve process creation as part of the session.
Filter/Exclusion: process.parent_process_name = "tacticalrmm.exe" AND user_account = "IT_Support_Account"
Scenario: Endpoint Backup Process via TacticalRMM
Description: A backup process is initiated through TacticalRMM to copy data from an endpoint to a central backup server.
Filter/Exclusion: process.name = "robocopy.exe" OR process.name = "backup.exe" AND process.parent_process_name = "tacticalrmm.exe"