Incident ReportsIR
IR-2025-001
MED

Simulation — Full Phishing Triage Prior to Disclosure

FILED:Dec 2025
TAXONOMY:T1566.002
Complexity:Moderate
5.5h containment
~6m read
TRUE POSITIVE — THREAT REMEDIATED (CLIENT DISCLOSED POST-TRIAGE)

Multiple genuine phishing emails reported by users via the M365 phishing report button were escalated to the SOC. Full triage confirmed a credential-harvesting URL resolving to a convincing Microsoft login spoofing page on a .tz ccTLD. Emails hard-deleted, URL blocked, zero clicks confirmed. Separately, the client's IT lead proactively disclosed an authorised internal security awareness campaign and shared campaign infrastructure for whitelisting. The previously escalated emails were genuine phishing threats — not part of the campaign. Classified as true positive: real phishing, fully remediated.

PhishingM365EmailSimulation
Outcome
Email hard-deleted — no credential exposure
Malicious URL blocked — future delivery automatically quarantined
Zero clicks across tenant confirmed
Campaign infrastructure whitelisted — prevents false positives on future campaign activity
Background & Context

Phishing remains the dominant initial access vector in Microsoft 365 environments, and user-reported phishing via the built-in M365 report button is one of the most reliable first-layer detection mechanisms available. When a user reports an email, Microsoft Sentinel generates an alert that routes directly to the SOC for triage.

This incident introduces a complicating contextual factor: the client had recently introduced an internal security awareness campaign — a deliberate exercise to test employee vigilance using simulated phishing emails. The SOC was not notified of this campaign in advance. The key principle this incident establishes: full triage must be completed before any client context is sought or received. A live phishing campaign could plausibly be represented as an awareness exercise if the analyst stopped investigation upon first client contact.

The awareness campaign's sending infrastructure used deliberate lookalike domains ([CAMPAIGN_DOMAIN_1], [CAMPAIGN_DOMAIN_2], [CAMPAIGN_DOMAIN_3]) — intentionally designed to simulate real-world phishing. This means the whitelisting step at the end of this incident is not trivial: these domains are, by design, indistinguishable from real threats without the client's prior disclosure.

Triage Thought Process
01Treat as genuine. No prior context existed. Full triage is required regardless of what the client might later say — a live phishing campaign could be dressed as an awareness exercise as a social engineering pretext.
02Header analysis first. Extract sender IP and confirm envelope-from vs header-from mismatch. Mismatched From headers are a first-order phishing signal.
03Do not trust the URL display text. The displayed URL text did not match the href. Extract the actual href and submit to sandbox — never assess URLs visually.
04Sandbox before client contact. Sandbox detonation must complete before contacting the client.
05Confirm scope. Run tenant-wide URL click report before escalating. If clicks occurred, escalation severity increases significantly.
06Context established post-triage. Only after technical work was complete was the client contacted. Their confirmation is supporting context, not a substitute for investigation.
07Whitelist is time-scoped. Campaign infrastructure whitelists should expire with the campaign, not persist permanently.
Decision
True positive technique confirmed — genuine phishing emails, fully remediated. Client's post-triage disclosure does not change the classification. Whitelist applied, ticket closed with recommendation for pre-notification SOP.
Incident Timeline
04 Dec, ~08:55
Phishing email delivered to employee mailbox — reported via M365 phishing report button
04 Dec, ~09:00
Alert generated in Microsoft Sentinel: Email reported by user as malware or phish
04 Dec, ~09:05
Analyst begins triage — ticket opened and assigned
04 Dec, ~09:10
Email header analysis — sending IP extracted, envelope-from / header-from mismatch confirmed
04 Dec, ~09:15
URL extracted and submitted to manual sandbox detonation
04 Dec, ~09:22
Sandbox confirms redirect to credential-harvesting page mimicking Microsoft login portal on .tz ccTLD
04 Dec, ~09:25
Tenant-wide URL click report — zero clicks across all users during delivery window
04 Dec, ~09:30
Hard deletion of email from affected mailbox via Network Message ID
04 Dec, ~09:35
Malicious URL blocked in email security gateway
04 Dec, ~09:40
Escalation raised to client contact for confirmation of expected activity
04 Dec, ~10:15
Client IT Lead proactively contacts SOC — discloses internal security awareness campaign, shares full sending infrastructure list (25+ IPs and domains)
04 Dec, ~10:20
Campaign provider's full sending infrastructure received from client
04 Dec, ~11:00
All 25+ campaign IPs and domains reviewed and whitelisted in relevant security tooling
04 Dec, ~14:30
Ticket reviewed, annotated, and closed — genuine phishing confirmed, campaign context established post-triage
Technical Analysis

The phishing email was delivered from a temporary sending address using infrastructure associated with a commercial email sending provider. The envelope-from and header-from addresses were mismatched — a common technique in real phishing campaigns used to evade automated header inspection tools that rely on address matching.

The email body contained a single primary hyperlink where the displayed URL text did not match the underlying href value — a deceptive technique to bypass visual inspection and URL-based filtering rules that rely on visible text rather than the actual href attribute.

The link was submitted to an isolated sandbox environment. Upon execution, the URL redirected through a chain of two hops before landing on a spoofed Microsoft account login page hosted at a domain on the .tz ccTLD (Tanzania). The page was a high-fidelity replica of Microsoft's credential harvesting template: full Microsoft branding, a fake user avatar populated with a realistic display name, and a password input field.

The sending IP was enriched via Recorded Future and returned an RF Score of 5 — consistent with commercial bulk email infrastructure (Amazon SES) that has not yet been flagged for malicious use. This is expected: newly registered phishing infrastructure or first-use of legitimate bulk sending platforms will not appear in threat feeds immediately. The RF Score 5 is not exculpatory.

A tenant-wide URL click report via Microsoft Defender for Office 365 confirmed zero clicks across all users during the full delivery window — no credential exposure occurred. The Network Message ID was used to confirm precise hard-deletion of the specific message from both the primary inbox and the recoverable items folder.

Upon receiving the awareness campaign infrastructure list from the client (25+ IPs and domains), all assets were reviewed and whitelisted. The campaign's lookalike domains were deliberately designed to simulate phishing — confirming that the whitelisting action is correctly scoped to the campaign context only, and does not affect the classification of the genuine phishing incidents already worked.

Environment
Microsoft Sentinel — Email Threat Protection
Microsoft 365 / Defender for Office 365
Recorded Future (threat enrichment)
Signals
Phishing email reported via M365 phishing report button
Envelope-from / header-from mismatch confirmed
URL display text did not match underlying href
Sandbox: redirect to credential-harvesting page on .tz ccTLD (Tanzanian domain)
Sending IP: Amazon SES bulk infrastructure — RF Score: 5
What I Checked
Email header analysis — sending IP extracted, header mismatch confirmed
URL extracted and submitted to sandbox detonation
Sandbox confirmed redirect chain to spoofed Microsoft login on .tz ccTLD
Tenant-wide URL click report — zero clicks across all users during delivery window
Sending IP enriched via Recorded Future: RF Score 5 (Amazon SES infrastructure)
Client contacted post-triage — confirmed genuine phishing, disclosed awareness campaign as additional context
All 25+ campaign IPs and domains reviewed and whitelisted
Actions Taken
Hard-deleted email from affected mailbox via Network Message ID — removed from primary inbox and recoverable items folder
Malicious URL blocked in email security gateway
Client IT Lead proactively disclosed authorised awareness campaign — shared full campaign infrastructure
All 25+ campaign IPs and domains whitelisted in security tooling
Internal note logged recommending advance SOC notification SOP for future campaigns
Indicators of Compromise
TypeIndicatorNotes
URLhxxps://gust0beau[REDACTED][.]com[.]tz/documents/Credential harvesting — sandbox confirmed redirect, .tz ccTLD (Tanzania)
Sending IP168[.]245[.]56[.]XXXAmazon SES bulk infrastructure — RF Score: 5
Sending IP198[.]21[.]6[.]XXXCampaign secondary MTA
Sending IP99[.]80[.]168[.]XXXCampaign secondary MTA
Domain[CAMPAIGN_DOMAIN_1]Awareness campaign lookalike domain — whitelisted post-confirmation
Domain[CAMPAIGN_DOMAIN_2]Awareness campaign lookalike domain — whitelisted post-confirmation
Domain[CAMPAIGN_DOMAIN_3]Awareness campaign lookalike domain — whitelisted post-confirmation
Message ID[REDACTED_MESSAGE_ID]Network Message ID — M365 admin audit trail
MITRE ATT&CK Mapping
TacticTechniqueIDObserved
Initial AccessPhishing: Spearphishing LinkT1566.002Link embedded in genuine phishing email reported by user
Credential AccessCredentials from Web Browsers / PhishingT1539 / T1056Spoofed Microsoft login portal designed to harvest password
Defense EvasionMasqueradingT1036Display URL mismatch; mismatched From headers
Detection Logic (KQL)
// Confirm zero URL clicks across tenant
UrlClickEvents
| where Timestamp > ago(24h)
| where Url contains "gust0beau"
| project Timestamp, AccountUpn, Url, ActionType, IsClickedThrough

// Confirm hard-delete via Network Message ID
EmailPostDeliveryEvents
| where NetworkMessageId == "6afa526e-[REDACTED]-709b-08de32aba63d"
| project Timestamp, RecipientEmailAddress, Action, ActionResult

// Scope check: other recipients of same campaign sender IPs
EmailEvents
| where SenderIPv4 in ("168.245.56.XXX","198.21.6.XXX","99.80.168.XXX")
| where Timestamp > ago(24h)
| project Timestamp, RecipientEmailAddress, Subject, SenderMailFromAddress, DeliveryAction
Analyst NotesMuhammad Fezzan

Full triage was completed before client context was received — this is the correct approach. The emails escalated were genuine phishing threats; the client's awareness campaign disclosure was additional context, not a reclassification trigger.

The credential-harvesting page was technically convincing: a two-hop redirect chain, spoofed Microsoft login portal, high-fidelity branding, fake user avatar with realistic display name, and a password input field. The .tz ccTLD was the strongest pre-context indicator of malicious intent.

The client's proactive sharing of campaign infrastructure was exactly the right approach — it ensures the SOC has context for future campaign detections. Reinforces the value of sandbox detonation as a first-line technical confirmation step before any client communication.

Lessons Learned
Full triage before client contact is correct — a live campaign could be dressed as an awareness exercise.
Sandbox detonation must complete before any client communication.
The .tz ccTLD was the strongest pre-context indicator of malicious intent.
Campaign infrastructure whitelists should be time-limited to the campaign duration, not permanent.
Clients should notify the SOC in advance when launching awareness campaigns — pre-loading infrastructure avoids unnecessary investigation.
Recommendations
R1Establish a mandatory advance notification SOP for awareness campaigns: clients must notify the SOC at campaign launch and share all sending infrastructure before the first email is sent. The client's post-triage disclosure was the right instinct — the process should be pre-launch, not reactive.
R2Maintain a SOC-internal awareness campaign register per client: log all known campaign platforms, sending IPs, and domains against each client profile. This speeds up context-building for future detections and preserves institutional knowledge beyond individual analyst assignments.
R3Time-scope all campaign infrastructure whitelist entries: entries should carry an expiry date aligned to the campaign end date and be reviewed periodically. Permanent whitelists for phishing-style infrastructure carry residual risk.
R4Reinforce user reporting behaviour with positive acknowledgement: the users who reported via the M365 phishing button behaved exactly as intended. Formal acknowledgement of correct user behaviour reinforces the reporting culture that makes this detection layer effective.
SIG
Case Certification
Muhammad Fezzan
SOC ANALYST
DIGITAL TIMESTAMP
DEC 2025 // REG-001-FS
← All incidentsCase anonymised