← Back to SOC feed Coverage →

Top 10 URL domains attacking organization

kql MEDIUM Azure-Sentinel
T1566
EmailEventsEmailUrlInfo
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-19T11:00:00Z · Confidence: medium

Hunt Hypothesis

Adversaries are leveraging top URL domains to exfiltrate data or establish command and control, aligning with T1566 techniques. SOC teams should proactively hunt for these domains to identify and mitigate potential C2 channels and data exfiltration attempts in their Azure Sentinel environment.

KQL Query

EmailEvents 
| where ThreatTypes != "" 
| extend detection= parse_json(DetectionMethods) 
| extend Spam = tostring(detection.Spam) 
| extend Phish = tostring(detection.Phish) 
| where (Spam == '["URL malicious reputation"]') or (Phish == '["URL malicious reputation"]') or (Phish == '["URL detonation reputation"]') or (Phish == '["URL detonation"]') 
| join EmailUrlInfo on NetworkMessageId
| summarize total=count() by UrlDomain 
| top 10 by total 
| render columnchart

Analytic Rule Definition

id: 27ee28e7-423b-48c9-a410-cbc6c8e21d25
name: Top 10 URL domains attacking organization
description: |
  This query helps reviewing list of top 10 URL domains attacking the organization
description-detailed: |
  This query helps reviewing list of top 10 URL domains attacking the organization using Defender for Office 365 data.
requiredDataConnectors:
  - connectorId: MicrosoftThreatProtection
    dataTypes:
      - EmailEvents
      - EmailUrlInfo
tactics:
  - InitialAccess
relevantTechniques:
  - T1566
query: |
  EmailEvents 
  | where ThreatTypes != "" 
  | extend detection= parse_json(DetectionMethods) 
  | extend Spam = tostring(detection.Spam) 
  | extend Phish = tostring(detection.Phish) 
  | where (Spam == '["URL malicious reputation"]') or (Phish == '["URL malicious reputation"]') or (Phish == '["URL detonation reputation"]') or (Phish == '["URL detonation"]') 
  | join EmailUrlInfo on NetworkMessageId
  | summarize total=count() by UrlDomain 
  | top 10 by total 
  | render columnchart
version: 1.0.0

Required Data Sources

Sentinel TableNotes
EmailEventsEnsure this data connector is enabled
EmailUrlInfoEnsure 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/Top Attacks/Top 10 URL domains attacking organization.yaml