Recover the lure
The delivery window and message are recovered.
View query
Q-01Recover the phishing redirect chain
What this checks
Find source-reported Calendly/Google/photo redirect activity for the affected mailbox.
KQL
let target_user="denis@example.com";
EmailUrlInfo
| where Timestamp >= ago(14d)
| where Url has_any ("calendly.com/url?q=","share.google/","photo-")
| join kind=inner (
EmailEvents
| where Timestamp >= ago(14d)
| where RecipientEmailAddress =~ target_user
| project NetworkMessageId, MailTime=Timestamp, SenderFromAddress, SenderMailFromDomain,
SenderDisplayName, RecipientEmailAddress, Subject, DeliveryAction,
DeliveryLocation, ThreatTypes, AuthenticationDetails
) on NetworkMessageId
| where Url contains "calendly.com/url?q="
or Url contains "share.google/"
or (Url contains "photo-" and Url contains ".cfd")
| project MailTime,NetworkMessageId,SenderFromAddress,SenderMailFromDomain,SenderDisplayName,
RecipientEmailAddress,Subject,Url,DeliveryAction,AuthenticationDetails
| order by MailTime ascSPL
(
index=<email_index> sourcetype=<email_events_sourcetype> earliest=-14d
)
OR
(
index=<email_url_index> sourcetype=<email_url_info_sourcetype> earliest=-14d
)
| eval recipient=lower(coalesce(recipient,RecipientEmailAddress)),
message_id=coalesce(message_id,NetworkMessageId),
url=coalesce(url,Url),
sender=lower(coalesce(sender,SenderFromAddress))
| where recipient="denis@example.com"
| eventstats values(sender) as senders values(Subject) as subjects values(AuthenticationDetails) as auth by message_id recipient
| where isnotnull(url) AND (
like(lower(url),"%calendly.com/url?q=%")
OR like(lower(url),"%share.google/%")
OR (like(lower(url),"%photo-%") AND like(lower(url),"%.cfd%"))
)
| table _time recipient message_id senders subjects url auth
| sort 0 _timeWhat to look for
A result that materially strengthens or weakens the current compromise hypothesis.
Technical details
Tested signal
Trusted-service delivery followed by a photo-themed landing page.
Assumptions
- Required Microsoft Defender telemetry is available for the investigation window.
Data requirements and relevant fields
Defender for Office 365 email and URL telemetry.
TimestampNetworkMessageIdSenderFromAddressSenderMailFromDomainSenderDisplayNameRecipientEmailAddressSubjectDeliveryActionDeliveryLocationThreatTypesAuthenticationDetailsUrlUrlDomain
KQL schema
Validate Defender table availability and local retention.
SPL schema
Replace index/sourcetype placeholders and normalize local fields.
Limitations
- Source-specific filenames, domains, and ports can rotate and must remain supporting evidence.
KQL uses Microsoft Defender XDR telemetry. SPL is a normalized raw-event scaffold and requires local field mapping.
More reasoning
Observation
A hospitality notification preceded the endpoint activity.
Working explanation
Trusted-service delivery may have hidden the final payload destination.
What was checked
Correlate the mailbox with Calendly, Google redirect, and photo-themed URL pivots.
Interpretation
Trusted infrastructure is not itself malicious.