AUTO-FORWARD
INBOX RULES
ATTACHMENTS
BEC
DetectionBlue TeamSOCOctober 12, 2026•9 min read

Detecting Email-Based Exfiltration and Auto-Forwarding

The oldest exfiltration channel is also the one most often left unmonitored. A single inbox rule can quietly copy every message to an attacker for months.

Scroll

Email exfiltration comes in two forms. Persistent collection uses forwarding or redirect rules, a staple of business email compromise. One-off theft sends files as attachments to a personal address. Both leave clear audit trails in Exchange and Microsoft 365, provided you retain and read them.

Signals at a Glance

SignalWhereATT&CK
New or changed inbox rule with ForwardTo, RedirectTo or ForwardAsAttachmentTo to an external addressUnified Audit LogT1114.003
Mailbox-level ForwardingSmtpAddress or ForwardingAddress setExchange admin auditT1114.003
Rule that moves matching mail to RSS Feeds or Deleted ItemsUnified Audit LogT1564.008
Large attachments sent to free-mail domainsMessage trace, DLPT1048
Mailbox accessed by a new delegate or from a new IP then bulk-readMailItemsAccessedT1114.002

Forwarding Rules and Mailbox Settings

Watch the creation events, then audit the current state. Rule creation is logged as New-InboxRule or Set-InboxRule, and mailbox forwarding as Set-Mailbox. Attackers frequently pair forwarding with a hiding rule, so look at the other actions on the same rule too:

// Sentinel (KQL) - inbox rules that forward or redirect externally
// tune/validate: Parameters is a JSON array of name/value pairs in OfficeActivity
OfficeActivity
| where TimeGenerated > ago(7d)
| where OfficeWorkload == "Exchange"
| where Operation in ("New-InboxRule","Set-InboxRule","UpdateInboxRules")
| extend p = tostring(Parameters)
| where p has_any ("ForwardTo","RedirectTo","ForwardAsAttachmentTo","DeleteMessage","MoveToFolder")
| project TimeGenerated, UserId, ClientIP, Operation, p
| order by TimeGenerated desc

State matters as much as events. Rules created before your retention window never appear in a log hunt, so enumerate what exists today:

# Exchange Online PowerShell - enumerate external forwarding in place
# tune/validate: run read-only under a least-privilege audit account
Get-Mailbox -ResultSize Unlimited |
  Where-Object { $_.ForwardingSmtpAddress -or $_.ForwardingAddress } |
  Select-Object UserPrincipalName, ForwardingSmtpAddress, ForwardingAddress, DeliverToMailboxAndForward

foreach ($mbx in Get-Mailbox -ResultSize Unlimited) {
  Get-InboxRule -Mailbox $mbx.UserPrincipalName |
    Where-Object { $_.ForwardTo -or $_.RedirectTo -or $_.ForwardAsAttachmentTo } |
    Select-Object @{n='Mailbox';e={$mbx.UserPrincipalName}}, Name, ForwardTo, RedirectTo, ForwardAsAttachmentTo
}

Attachments and Prevention

Vetted sources

Microsoft 365 Unified Audit Log and Exchange admin audit guidance, Splunk ESCU analytic stories for O365 mailbox forwarding, Elastic rules for new inbox rules, and SigmaHQ cloud rules. Baseline your own environment — some executives and shared mailboxes forward legitimately, so record them as approved exceptions.

Build Detections That Fire

Mjolnir Security helps blue teams turn threat intelligence into high-fidelity detections across endpoint, network, identity and cloud telemetry.

Detection EngineeringManaged Detection & ResponseThreat HuntingIncident ResponsePurple Teaming
  • Detection Engineering We build and tune detections mapped to ATT&CK from your own telemetry.
  • Threat Hunting as a Service Hypothesis-driven hunts for the behaviours on this page.
  • 24/7 Incident Response Containment when a detection fires. Call +1 833 403 5875.
Written by: Mjolnir Threat Research (MTAC)  |  Published: October 12, 2026  |  Last reviewed: October 12, 2026