T1071.003 Splunk · SPL

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

Splunk (SPL)
spl
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
high severity high confidence

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

Network Traffic: Network Connection CreationNetwork Traffic: Network Traffic ContentFirewall LogsNetwork Stream Data

Required Sourcetypes

stream:smtpstream:pop3stream:imappan:trafficcisco:asa

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