The hypothesis is that an adversary is using BeyondTrust to create processes for persistence or establish a C2 channel by leveraging its remote management capabilities. SOC teams should proactively hunt for this behavior in Azure Sentinel to detect potential abuse of RMM tools by advanced threats.
KQL Query
let Time_start = now(-5d);
let Time_end = now();
//
DeviceProcessEvents
| where Timestamp between (Time_start..Time_end)
| where ProcessVersionInfoCompanyName has_any ('BeyondTrust', 'Bomgar')
| summarize FirstSeen=min(Timestamp), LastSeen=max(Timestamp),
Report=make_set(ReportId), Count=count() by DeviceId, DeviceName
id: ed311c3c-8c3c-440c-b1a4-2b613e0414df
name: Remote Management and Monitoring tool - BeyondTrust - 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 ('BeyondTrust', 'Bomgar')
| 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: A system administrator is using BeyondTrust to create a process for a legitimate maintenance script scheduled via Task Scheduler.
Filter/Exclusion: process.parent_process_name == "Task Scheduler" or process.command_line contains "schtasks.exe"
Scenario: An IT team is deploying a new endpoint monitoring agent via BeyondTrust, which requires creating a process to install the agent.
Filter/Exclusion: process.file_path contains "endpoint_monitoring_agent.exe" or process.command_line contains "install_agent"
Scenario: A user is using BeyondTrust to remotely execute a PowerShell script for system cleanup, which creates a temporary process.
Filter/Exclusion: process.file_path contains "powershell.exe" and process.command_line contains "Cleanup-System.ps1"
Scenario: A scheduled job via BeyondTrust is configured to run a system diagnostic tool, which creates a process as part of its operation.
Filter/Exclusion: process.file_path contains "diagnostic_tool.exe" or process.command_line contains "diagnostic_run.bat"
Scenario: An admin is using BeyondTrust to remotely create a process for a legitimate third-party application update, such as a security patch.
Filter/Exclusion: process.file_path contains "update_tool.exe" or process.command_line contains "apply_patch.bat"