← Back to SOC feed Coverage →

Post Delivery Events by Location

kql MEDIUM Azure-Sentinel
T1566
huntingmicrosoftofficial
This rule was pulled from an open-source repository and enriched with AI. Validate in a test environment before deploying to production.
View original rule at Azure-Sentinel →
Retrieved: 2026-05-19T23:00:00Z · Confidence: medium

Hunt Hypothesis

Adversaries may use post delivery events to exfiltrate data or establish command and control by leveraging the final location of delivered emails. SOC teams should proactively hunt for this behavior in Azure Sentinel to identify potential exfiltration or C2 activity that may bypass traditional email security controls.

KQL Query

let TimeStart = startofday(ago(30d));
let TimeEnd = startofday(now());
let quarantine=EmailPostDeliveryEvents
| where Timestamp >= TimeStart
| where DeliveryLocation has 'Quarantine'
| make-series Count= count() default = 0 on Timestamp from TimeStart to TimeEnd step 1d
| extend Details = "Quarantine";
let delete=EmailPostDeliveryEvents
| where Timestamp >= TimeStart
| where DeliveryLocation has 'Delete'
| make-series Count= count() default = 0 on Timestamp from TimeStart to TimeEnd step 1d
| extend Details = "Delete";
let junk=EmailPostDeliveryEvents
| where Timestamp >= TimeStart
| where DeliveryLocation has 'Junk'
| make-series Count= count() default = 0 on Timestamp from TimeStart to TimeEnd step 1d
| extend Details = "Junk";
let inbox=EmailPostDeliveryEvents
| where Timestamp >= TimeStart
| where DeliveryLocation has 'Inbox'
| make-series Count= count() default = 0 on Timestamp from TimeStart to TimeEnd step 1d
| extend Details = "Inbox";
union quarantine,delete,junk,inbox
| project Count, Details, Timestamp
| render timechart

Analytic Rule Definition

id: 9b83fc5e-1271-4a5b-af84-e7ebf5436180
name: Post Delivery Events by Location
description: |
  This query visualises the amount of emails that had a post delivery action, summarizing the data daily by the final location as a result of the action
description-detailed: |
  This query visualises the amount of emails that had a post delivery action, summarizing the data daily by the final location as a result of the action
  Query is also included as part of the Defender for Office 365 solution in Sentinel: https://techcommunity.microsoft.com/blog/microsoftdefenderforoffice365blog/part-2-build-custom-email-security-reports-and-dashboards-with-workbooks-in-micr/4411303
requiredDataConnectors:
- connectorId: MicrosoftThreatProtection
  dataTypes:
  - CloudAppEvents
tactics:
  - InitialAccess
relevantTechniques:
  - T1566
query: |
  let TimeStart = startofday(ago(30d));
  let TimeEnd = startofday(now());
  let quarantine=EmailPostDeliveryEvents
  | where Timestamp >= TimeStart
  | where DeliveryLocation has 'Quarantine'
  | make-series Count= count() default = 0 on Timestamp from TimeStart to TimeEnd step 1d
  | extend Details = "Quarantine";
  let delete=EmailPostDeliveryEvents
  | where Timestamp >= TimeStart
  | where DeliveryLocation has 'Delete'
  | make-series Count= count() default = 0 on Timestamp from TimeStart to TimeEnd step 1d
  | extend Details = "Delete";
  let junk=EmailPostDeliveryEvents
  | where Timestamp >= TimeStart
  | where DeliveryLocation has 'Junk'
  | make-series Count= count() default = 0 on Timestamp from TimeStart to TimeEnd step 1d
  | extend Details = "Junk";
  let inbox=EmailPostDeliveryEvents
  | where Timestamp >= TimeStart
  | where DeliveryLocation has 'Inbox'
  | make-series Count= count() default = 0 on Timestamp from TimeStart to TimeEnd step 1d
  | extend Details = "Inbox";
  union quarantine,delete,junk,inbox
  | project Count, Details, Timestamp
  | render timechart
version: 1.0.0

MITRE ATT&CK Context

References

False Positive Guidance

Original source: https://github.com/Azure/Azure-Sentinel/blob/main/Hunting Queries/Microsoft 365 Defender/Email and Collaboration Queries/ZAP/Post Delivery Events by Location.yaml