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
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 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
Required Tables
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
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.
- 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.
- 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.
- 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.
References (6)
- https://attack.mitre.org/techniques/T1071/003/
- https://web.archive.org/web/20151022204649/https://www.fireeye.com/content/dam/fireeye-www/global/en/current-threats/pdfs/rpt-apt28.pdf
- https://www.welivesecurity.com/wp-content/uploads/2020/05/ESET_Turla_ComRAT.pdf
- https://www.welivesecurity.com/2019/05/29/turla-powershell-usage/
- https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1071.003/T1071.003.md
- https://pwc.github.io/issues/2023/yellow-liderc.html
Unlock Pro Content
Get the full detection package for T1071.003 including response playbook, investigation guide, and atomic red team tests.