Trace the phishing message
The source campaign used trusted-sender context and a SharePoint document-sharing lure; Microsoft published the hunting subject NEW PROPOSAL – NDA.
View query
Q-01Find the source campaign message
What this checks
Find source-campaign messages delivered to denis@example.com and preserve the message identifiers needed for click correlation.
KQL
let target_user = "denis@example.com";
let lookback = 7d;
EmailEvents
| where Timestamp >= ago(lookback)
| where RecipientEmailAddress =~ target_user
| where Subject has "NEW PROPOSAL" and Subject has "NDA"
| project
Timestamp,
NetworkMessageId,
InternetMessageId,
SenderFromAddress,
SenderMailFromAddress,
SenderDisplayName,
SenderFromDomain,
SenderIPv4,
RecipientEmailAddress,
Subject,
EmailDirection,
DeliveryAction,
DeliveryLocation,
LatestDeliveryAction,
LatestDeliveryLocation,
ThreatTypes,
AuthenticationDetails,
UrlCount,
AttachmentCount
| order by Timestamp ascSPL
index=<m365_email_index> sourcetype=<email_events_sourcetype>
earliest=-7d
| eval
recipient=lower(coalesce(recipient, RecipientEmailAddress)),
sender=lower(coalesce(sender, SenderFromAddress, SenderMailFromAddress)),
subject=coalesce(subject, Subject),
message_id=coalesce(message_id, NetworkMessageId),
internet_message_id=coalesce(internet_message_id, InternetMessageId),
delivery_action=coalesce(delivery_action, LatestDeliveryAction, DeliveryAction),
delivery_location=coalesce(delivery_location, LatestDeliveryLocation, DeliveryLocation),
threat_types=coalesce(threat_types, ThreatTypes)
| where recipient="denis@example.com"
| where like(subject, "%NEW PROPOSAL%") AND like(subject, "%NDA%")
| fields
_time message_id internet_message_id sender recipient subject
delivery_action delivery_location threat_types
| sort 0 _timeWhat to look for
A message record with sender and delivery context plus NetworkMessageId for the click pivot.
Technical details
Tested signal
A source-scoped phishing subject delivered to the affected identity.
Assumptions
- Defender for Office 365 EmailEvents is available or equivalent mail-security telemetry is mapped.
- The Microsoft hunting subject is source-scoped to this campaign and is not treated as a universal AiTM indicator.
Data requirements and relevant fields
Message-level mail telemetry with sender, recipient, subject, delivery, threat, and message identifiers.
TimestampNetworkMessageIdInternetMessageIdSenderFromAddressSenderMailFromAddressSenderDisplayNameSenderFromDomainSenderIPv4RecipientEmailAddressSubjectEmailDirectionDeliveryActionDeliveryLocationLatestDeliveryActionLatestDeliveryLocationThreatTypesAuthenticationDetailsUrlCountAttachmentCount
KQL schema
Uses documented EmailEvents fields. Microsoft Defender for Office 365 is required.
SPL schema
Replace index, sourcetype, and field aliases with the local mail-security source. Keep message_id available for the next pivot.
Limitations
- Subject matching can miss modified lure text.
- A trusted sender identity can itself be compromised, so sender reputation cannot close the investigation.
KQL uses Defender for Office 365 EmailEvents. SPL uses a raw normalized mail-security scaffold because message IDs are not guaranteed by Email CIM mappings.
More reasoning
Observation
A SharePoint-style message from a trusted organization preceded the compromise.
Working explanation
The affected identity may have received a campaign message whose identifiers can anchor click correlation.
What was checked
Find the source message, sender context, delivery state, embedded-link count, and NetworkMessageId.
Interpretation
The message should be treated as the starting evidence object, while the sender's apparent trust must not be treated as proof of legitimacy.