← Back to SOC feed Coverage →

Phish Detections by Sender Country

kql MEDIUM Azure-Sentinel
T1566
EmailEvents
huntingmicrosoftofficialphishing
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-09-03T23:00:00Z · Confidence: medium

Hunt Hypothesis

This hypothesis targets adversaries leveraging geographically inconsistent or high-risk sender countries to bypass user suspicion and deliver phishing payloads, aligning with MITRE technique T1566. Proactively hunting for these patterns in Azure Sentinel allows the SOC to identify systemic gaps in email filtering or user awareness that may be exploited for initial access, even if individual alerts are triaged as low severity.

KQL Query

EmailEvents
| where Timestamp > ago(30d)
| where OrgLevelPolicy != "Phishing simulation" and OrgLevelPolicy != "SecOps Mailbox"
| extend Key = strcat(NetworkMessageId, "-", RecipientEmailAddress)
| summarize arg_max(Timestamp, *) by Key
| where ThreatTypes has "Phish" and isnotempty(SenderIPv4)
| extend GeoInfo = geo_info_from_ip_address(SenderIPv4)
| extend Country = tostring(GeoInfo.country)
| summarize count() by Country
| project Country, ['Phish Emails'] = count_
| sort by ['Phish Emails'] desc

Analytic Rule Definition

id: b47d1de3-041a-406b-9d99-ffc7749b00f2
name: Phish Detections by Sender Country
description: |
  This query summarises inbound email phishing detections by the sender IP address country, derived from the sender IPv4 address.
description-detailed: |
  This query summarises inbound email phishing detections in Microsoft Defender for Office 365 by the sender IP address country, derived from the sender IPv4 address using geo_info_from_ip_address.
  Messages are de-duplicated to the latest record per NetworkMessageId and recipient, and deliveries to the SecOps mailbox and by the phishing simulation system are excluded.
requiredDataConnectors:
- connectorId: MicrosoftThreatProtection
  dataTypes:
  - EmailEvents
tactics:
  - InitialAccess
relevantTechniques:
  - T1566
query: |
  EmailEvents
  | where Timestamp > ago(30d)
  | where OrgLevelPolicy != "Phishing simulation" and OrgLevelPolicy != "SecOps Mailbox"
  | extend Key = strcat(NetworkMessageId, "-", RecipientEmailAddress)
  | summarize arg_max(Timestamp, *) by Key
  | where ThreatTypes has "Phish" and isnotempty(SenderIPv4)
  | extend GeoInfo = geo_info_from_ip_address(SenderIPv4)
  | extend Country = tostring(GeoInfo.country)
  | summarize count() by Country
  | project Country, ['Phish Emails'] = count_
  | sort by ['Phish Emails'] desc
version: 1.0.0

Required Data Sources

Sentinel TableNotes
EmailEventsEnsure this data connector is enabled

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/Phish/Phish Detections by Sender Country.yaml