The detection identifies the use of the Parsec.app tool, which is commonly associated with remote management and monitoring, potentially indicating adversary use for persistence or command and control. SOC teams should proactively hunt for this behavior in Azure Sentinel to identify potential compromise of endpoints managed by RMM tools.
KQL Query
let Time_start = now(-5d);
let Time_end = now();
//
DeviceProcessEvents
| where Timestamp between (Time_start..Time_end)
| where ProcessVersionInfoCompanyName has 'Parsec'
and ProcessVersionInfoProductName has 'Parsec'
| summarize FirstSeen=min(Timestamp), LastSeen=max(Timestamp),
Report=make_set(ReportId), Count=count() by DeviceId, DeviceName
id: c9634424-f700-45b6-a8ec-c2e3d3e2a82b
name: Remote Management and Monitoring tool - parsec.app - 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 'Parsec'
and ProcessVersionInfoProductName has 'Parsec'
| 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 Parsec.app to remotely manage a workstation during a scheduled maintenance window.
Filter/Exclusion: process.parent_process_name == "Parsec.app" or process.user == "admin_user"
Scenario: A scheduled job runs a script that creates a process via Parsec.app to perform automated system updates.
Filter/Exclusion: process.command_line contains "scheduled_update_script.sh" or process.user == "service_account"
Scenario: An IT support team uses Parsec.app to remotely access a user’s machine to troubleshoot a software issue.
Filter/Exclusion: process.user contains "it_support_team" or process.parent_process_name == "Parsec.app"
Scenario: A remote backup tool (e.g., Veeam, Commvault) uses Parsec.app to establish a secure connection for data transfer.
Filter/Exclusion: process.command_line contains "backup_tool_name" or process.user == "backup_service"
Scenario: A system update task is initiated via Parsec.app to push updates to multiple endpoints during off-peak hours.
Filter/Exclusion: process.command_line contains "update_script" or process.user == "update_admin"