T1114.003

Email Forwarding Rule

Adversaries may set up email forwarding rules to covertly collect and monitor victim email communications. By creating inbox rules, mailbox-level SMTP forwarding configurations, or Exchange transport rules, adversaries can silently redirect all or targeted messages to attacker-controlled accounts — internal or external — without the victim's awareness. This technique provides persistent intelligence access even after compromised credentials are reset, because forwarding rules survive password changes. Adversaries may also use the Microsoft Messaging API (MAPI) to create hidden inbox rules not visible through Outlook, OWA, or standard Exchange administration tools, enabling long-term covert collection. Threat groups including LAPSUS$, Scattered Spider, Kimsuky, Star Blizzard, and Silent Librarian have actively abused this technique. LAPSUS$ notably created tenant-level Exchange transport rules to forward all organizational email to newly created attacker-controlled accounts, achieving org-wide collection with a single rule.

Microsoft Sentinel / Defender
kusto
let ForwardingOps = dynamic([
    "New-InboxRule", "Set-InboxRule", "Enable-InboxRule",
    "New-TransportRule", "Set-TransportRule", "Enable-TransportRule"
]);
let ForwardingParams = dynamic([
    "ForwardTo", "ForwardAsAttachmentTo", "RedirectTo",
    "ForwardingSmtpAddress", "ForwardingAddress", "DeliverToMailboxAndForward",
    "RedirectMessageTo", "BlindCopyTo"
]);
OfficeActivity
| where TimeGenerated > ago(24h)
| where OfficeWorkload == "Exchange"
| where (Operation in~ (ForwardingOps))
    or (Operation =~ "Set-Mailbox" and Parameters has_any (ForwardingParams))
| where Parameters has_any (ForwardingParams)
| mv-expand ParsedParam = todynamic(Parameters)
| extend ParamName = tostring(ParsedParam.Name), ParamValue = tostring(ParsedParam.Value)
| where ParamName in~ (ForwardingParams)
| where ParamValue !in ("", "False", "false", "null", "[]")
| extend IsExternalTarget = ParamValue has "@" and not (ParamValue has ".onmicrosoft.com")
| extend IsTransportRule = Operation in~ ("New-TransportRule", "Set-TransportRule", "Enable-TransportRule")
| extend HiddenRule = Parameters has "HideRule" or Parameters has "Hidden"
| extend SeverityScore = iff(IsExternalTarget, 2, 0)
    + iff(IsTransportRule, 3, 1)
    + iff(HiddenRule, 3, 0)
| project TimeGenerated, UserId, ClientIP, Operation,
          ForwardTarget = ParamValue, ForwardParam = ParamName,
          AffectedMailbox = OfficeObjectId,
          IsExternalTarget, IsTransportRule, HiddenRule, SeverityScore
| sort by SeverityScore desc, TimeGenerated desc
high severity high confidence

Data Sources

Application Log: Application Log Content Microsoft 365 Unified Audit Log Exchange Admin Audit Log

Required Tables

OfficeActivity

False Positives

  • IT administrators legitimately configuring mailbox forwarding for departing employees, shared mailboxes, or role-based accounts (e.g., [email protected] forwarding to a team alias)
  • Email migration or business continuity projects where mailboxes temporarily forward to a backup system or authorized external partner domain
  • Compliance and legal hold transport rules that copy mail to an approved Microsoft Purview or third-party archiving system
  • Automated helpdesk or ticketing systems (e.g., Zendesk, Freshdesk connectors) that create inbox rules to process and route support email to the correct queue
  • Authorized SOC or phishing response configurations forwarding reported phishing emails to an analysis mailbox

Unlock Pro Content

Get the full detection package for T1114.003 including response playbook, investigation guide, and atomic red team tests.

Response PlaybookInvestigation GuideHunting QueriesAtomic Red Team TestsTuning Guidance

Related Detections