T1071.003 Microsoft Sentinel · KQL

Detect Mail Protocols in Microsoft Sentinel

Adversaries may communicate using application layer protocols associated with electronic mail delivery to avoid detection/network filtering by blending in with existing traffic. Commands to the remote system, and often the results of those commands, will be embedded within the protocol traffic between the client and server. Protocols such as SMTP/S, POP3/S, and IMAP that carry electronic mail may be very common in environments. Packets produced from these protocols may have many fields and headers in which data can be concealed. Data could also be concealed within the email messages themselves. An adversary may abuse these protocols to communicate with systems under their control within a victim network while also mimicking normal, expected traffic.

MITRE ATT&CK

Tactic
Command and Control
Technique
T1071 Application Layer Protocol
Sub-technique
T1071.003 Mail Protocols
Canonical reference
https://attack.mitre.org/techniques/T1071/003/

KQL Detection Query

Microsoft Sentinel (KQL)
kusto
let TimeWindow = 24h;
// Detect non-mail-client processes connecting to mail protocol ports
DeviceNetworkEvents
| where Timestamp > ago(TimeWindow)
| where RemotePort in (25, 465, 587, 110, 995, 143, 993)
| where ActionType == "ConnectionSuccess"
| where InitiatingProcessFileName !in~ (
    "outlook.exe", "thunderbird.exe", "OUTLOOK.EXE",
    "MailClient.exe", "eM Client.exe",
    "msedge.exe", "chrome.exe"
)
| extend Protocol = case(
    RemotePort in (25, 465, 587), "SMTP",
    RemotePort in (110, 995), "POP3",
    RemotePort in (143, 993), "IMAP",
    "Unknown")
| summarize
    ConnectionCount = count(),
    UniqueRemoteIPs = dcount(RemoteIP),
    BytesSent = sum(SentBytes),
    FirstSeen = min(Timestamp),
    LastSeen = max(Timestamp)
    by DeviceName, InitiatingProcessFileName, RemoteIP, RemotePort, Protocol, AccountName
| where ConnectionCount > 2
| project LastSeen, DeviceName, AccountName, InitiatingProcessFileName, RemoteIP, Protocol, RemotePort, ConnectionCount, UniqueRemoteIPs, BytesSent
| sort by ConnectionCount desc
high severity high confidence

Detects non-mail-client processes connecting to mail protocol ports (SMTP 25/465/587, POP3 110/995, IMAP 143/993). Legitimate mail traffic should originate from known email clients (Outlook, Thunderbird) or mail servers. Non-mail processes using these protocols are strong C2 indicators — APT28, Turla, and Kimsuky are known to use SMTP/POP3/IMAP for C2 through malware like CHOPSTICK, Zebrocy, ComRAT, and LightNeuron.

Data Sources

Network Traffic: Network Connection CreationNetwork Traffic: Network Traffic FlowMicrosoft Defender for Endpoint

Required Tables

DeviceNetworkEvents

False Positives & Tuning

  • Scripted email sending tools used by IT for automated notifications (e.g., Python scripts using smtplib, PowerShell Send-MailMessage)
  • Application servers with built-in email notification capabilities (monitoring alerts, report delivery)
  • Email security gateways and spam filters that relay mail through non-standard processes
  • Backup software that sends completion notifications via SMTP
Download portable Sigma rule (.yml)

Other platforms for T1071.003


Testing Methodology

Validate this detection against 3 adversary techniques from Atomic Red Team. Each test below lists the behaviour to exercise and the telemetry you should expect to see. Executable commands and cleanup steps are available with Pro.

  1. Test 1SMTP C2 Exfiltration via PowerShell

    Expected signal: Sysmon Event ID 1: PowerShell process creation with Send-MailMessage in command line. Sysmon Event ID 3: Network connection attempt to 127.0.0.1:25. PowerShell ScriptBlock Log Event ID 4104 with SMTP command details.

  2. Test 2POP3 Command Retrieval Simulation

    Expected signal: Sysmon for Linux Event ID 3: Network connection from nc to 127.0.0.1:110. Process creation event for nc with POP3 commands piped via stdin.

  3. Test 3IMAP C2 Channel Simulation

    Expected signal: Sysmon for Linux Event ID 3: Network connection from curl to 127.0.0.1:143. Process creation event for curl with imap:// URL and credentials in command line.

Unlock Pro Content

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

Response PlaybookInvestigation GuideHunting QueriesAtomic Red Team TestsTuning Guidance

Related Detections