The hypothesis is that an adversary is using PDQ, a Remote Management and Monitoring tool, to create persistence by launching malicious processes on target systems. SOC teams should proactively hunt for this behavior in Azure Sentinel to detect potential adversary use of RMM tools for long-term access and command and control operations.
KQL Query
let Time_start = now(-5d);
let Time_end = now();
//
DeviceProcessEvents
| where Timestamp between (Time_start..Time_end)
| where ProcessVersionInfoProductName has 'PDQConnectAgent'
or FileName =~ 'pdq-connect-agent.exe'
| summarize FirstSeen=min(Timestamp), LastSeen=max(Timestamp),
Report=make_set(ReportId), Count=count() by DeviceId, DeviceName
id: 262e8802-7dd0-4825-830f-3f0a034cc8b4
name: Remote Management and Monitoring tool - PDQ - 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 ProcessVersionInfoProductName has 'PDQConnectAgent'
or FileName =~ 'pdq-connect-agent.exe'
| 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 PDQ
Description: A legitimate scheduled job is created via PDQ to deploy software updates across endpoints.
Filter/Exclusion: process.parent_process_name == "Task Scheduler" or process.command_line contains "schtasks.exe"
Scenario: PDQ Used for Patch Management
Description: IT administrators use PDQ to deploy patches to a group of endpoints during a routine maintenance window.
Filter/Exclusion: process.command_line contains "PatchManagement" or process.user contains "ITAdminsGroup"
Scenario: Remote Process Creation for System Monitoring
Description: A monitoring tool (e.g., Nagios, SolarWinds) uses PDQ to create a process on a remote endpoint for performance monitoring.
Filter/Exclusion: process.process_name contains "nagios.exe" or process.process_name contains "solarwinds.exe"
Scenario: PDQ Used for Software Deployment
Description: IT uses PDQ to deploy a new application to multiple endpoints as part of a software rollout.
Filter/Exclusion: process.command_line contains "DeployApp.exe" or process.user contains "SoftwareDeploymentGroup"
Scenario: PDQ Used for Configuration Management
Description: PDQ is used to push configuration changes (e.g., group policy updates) to endpoints managed by the IT department.
Filter/Exclusion: process.command_line contains "ConfigUpdate.exe" or process.user contains "ConfigAdminsGroup"