Detect Mail Protocols in Splunk
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/
SPL Detection Query
index=network OR index=firewall sourcetype IN ("stream:smtp", "stream:pop3", "stream:imap", "pan:traffic", "cisco:asa")
(dest_port IN (25, 465, 587, 110, 995, 143, 993))
action=allowed
| eval Protocol=case(
dest_port IN (25, 465, 587), "SMTP",
dest_port IN (110, 995), "POP3",
dest_port IN (143, 993), "IMAP",
1=1, "Unknown")
| search NOT (process_name IN ("outlook.exe", "thunderbird.exe", "OUTLOOK.EXE", "MailClient.exe"))
| stats count as ConnectionCount, dc(dest_ip) as UniqueDestIPs, sum(bytes_out) as BytesSent, earliest(_time) as FirstSeen, latest(_time) as LastSeen, values(src_user) as Users by src_ip, dest_ip, dest_port, Protocol, process_name
| where ConnectionCount > 2
| eval Severity=case(
Protocol="IMAP" AND NOT match(process_name, "(?i)(outlook|thunderbird|mail)"), "critical",
Protocol="POP3" AND NOT match(process_name, "(?i)(outlook|thunderbird|mail)"), "critical",
Protocol="SMTP" AND ConnectionCount > 10, "high",
1=1, "medium")
| table FirstSeen, LastSeen, src_ip, dest_ip, Protocol, dest_port, process_name, Users, ConnectionCount, BytesSent, Severity
| sort - Severity, - ConnectionCount Detects anomalous mail protocol usage from non-mail-client processes via network stream or firewall logs. Assigns higher severity to IMAP and POP3 connections from non-mail processes (used by APT28's CHOPSTICK and Turla's ComRAT for bidirectional C2). SMTP from unknown processes may indicate Agent Tesla, Zebrocy, or Cannon exfiltrating data via email.
Data Sources
Required Sourcetypes
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.