The detection identifies potential adversary use of the ScreenMeet tool for remote management and monitoring, leveraging file signature checks to evade traditional detection methods. SOC teams should proactively hunt for this behavior in Azure Sentinel to uncover covert persistence or command-and-control activities associated with advanced persistent threats.
KQL Query
let Time_start = now(-5d);
let Time_end = now();
//
DeviceFileCertificateInfo
| where Timestamp between (Time_start..Time_end)
| where Signer has 'Projector.is, Inc.'
| summarize FirstSeen=min(Timestamp), LastSeen=max(Timestamp),
Report=make_set(ReportId), Count=count() by DeviceId, DeviceName
id: bf60b37e-171f-4353-b083-6b7d85f6625d
name: Remote Management and Monitoring tool - ScreenMeet - File Signature
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:
- DeviceFileCertificateInfo
tactics: CommandAndControl
relevantTechniques: T1219
query: |
let Time_start = now(-5d);
let Time_end = now();
//
DeviceFileCertificateInfo
| where Timestamp between (Time_start..Time_end)
| where Signer has 'Projector.is, Inc.'
| summarize FirstSeen=min(Timestamp), LastSeen=max(Timestamp),
Report=make_set(ReportId), Count=count() by DeviceId, DeviceName
Scenario: Scheduled system maintenance using ScreenMeet for endpoint monitoring
Filter/Exclusion: process.name != "ScreenMeet.exe" or process.parent.name != "ScreenMeet.exe"
Scenario: IT admin performing remote desktop session to troubleshoot a user’s machine using ScreenMeet
Filter/Exclusion: process.name != "ScreenMeet.exe" or user.account != "IT_Admin_Account"
Scenario: Automated log collection job using ScreenMeet to gather system logs for compliance
Filter/Exclusion: process.name != "ScreenMeet.exe" or process.command_line contains "log_collection"
Scenario: IT team deploying patches via ScreenMeet to multiple endpoints
Filter/Exclusion: process.name != "ScreenMeet.exe" or process.command_line contains "patch"
Scenario: User accessing their own machine remotely via ScreenMeet for personal use
Filter/Exclusion: user.account != "User_Account" or process.parent.name != "ScreenMeet.exe"