The hypothesis is that an adversary is using ScreenMeet, a Remote Management and Monitoring tool, to establish a covert network connection for command and control or persistence. SOC teams should proactively hunt for this behavior in Azure Sentinel to identify potential compromise of endpoints through abused RMM tools.
KQL Query
let Time_start = now(-5d);
let Time_end = now();
//
DeviceNetworkEvents
| where Timestamp between (Time_start..Time_end)
| where RemoteUrl has 'screenmeet.com'
and InitiatingProcessVersionInfoCompanyName has 'Projector Inc'
and InitiatingProcessVersionInfoProductName has 'ScreenMeet'
| summarize FirstSeen=min(Timestamp), LastSeen=max(Timestamp),
Report=make_set(ReportId), Count=count() by DeviceId, DeviceName,
RemoteUrl
id: f413b02c-92da-4243-82e6-b9bbe8e89a35
name: Remote Management and Monitoring tool - ScreenMeet - 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 'screenmeet.com'
and InitiatingProcessVersionInfoCompanyName has 'Projector Inc'
and InitiatingProcessVersionInfoProductName has 'ScreenMeet'
| 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 ScreenMeet
Description: A system administrator uses ScreenMeet to perform routine maintenance tasks on a remote endpoint, such as updating software or applying patches.
Filter/Exclusion: process.name != "ScreenMeet.exe" OR process.parent.name == "Task Scheduler" OR process.command_line contains "maintenance"
Scenario: Remote Desktop Session via ScreenMeet
Description: An IT admin uses ScreenMeet to establish a remote desktop session to troubleshoot a user’s workstation.
Filter/Exclusion: process.name != "ScreenMeet.exe" OR process.parent.name == "mstsc.exe" OR process.command_line contains "remote desktop"
Scenario: Automated Patch Deployment via ScreenMeet
Description: A scheduled job runs through ScreenMeet to push security patches to multiple endpoints across the network.
Filter/Exclusion: process.name != "ScreenMeet.exe" OR process.parent.name == "schtasks.exe" OR process.command_line contains "patch"
Scenario: Remote Monitoring of Network Devices
Description: The IT team uses ScreenMeet to monitor network devices (e.g., routers, switches) for performance and availability.
Filter/Exclusion: process.name != "ScreenMeet.exe" OR process.parent.name == "snmp.exe" OR process.command_line contains "monitor"
Scenario: User-Initiated Remote Support Session
Description: A user initiates a remote support session via ScreenMeet to assist with a software issue, and the session is legitimate.
Filter/Exclusion: process.name != "ScreenMeet.exe" OR process.parent.name == "Remote Desktop Connection" OR process.command_line contains "support"