Has used a malicious Microsoft Exchange transport agent for persistence.1
Transport Agent T1505.002
- Tactic
- Persistence
- Platforms
- Linux, Windows
- Version
- 1.1
- Created
- 12 December 2019
- Last modified
- 24 October 2025
- Contributors
- ESET; Christoffer Strömblad
Adversaries may abuse Microsoft transport agents to establish persistent access to systems. Microsoft Exchange transport agents can operate on email messages passing through the transport pipeline to perform various tasks such as filtering spam, filtering malicious attachments, journaling, or adding a corporate signature to the end of all outgoing emails.[1][2] Transport agents can be written by application developers and then compiled to .NET assemblies that are subsequently registered with the Exchange server. Transport agents will be invoked during a specified stage of email processing and carry out developer defined tasks.
Transport Agent MITRE reference T1505.002
1 software entry is documented implementing this technique. MITRE files each as a tool or as malware; newest first, then by how many groups carry them.
All 1 software entries for this technique
Offense vs defense T1505.002
Is defensive coverage keeping up with adversary use? Eight counts, each ranked against all 697 ATT&CK techniques. Attack sits left, defense right, so a shape leaning left means adversaries are better documented here than defenders are equipped. Hover any spoke for its percentile and the share of techniques that have more. The timeline below shows when each side arrived.
How it got here
Adversary activity (campaign spans) over cumulative rule output. Each source is plotted independently from zero, so neither line includes the other. Campaign dates are year-granularity.
Transport Agent detection strategy DET0166
MITRE names one behaviour worth catching for this technique and breaks it into 2 analytics, one per platform. Each carries the log sources it needs and the fields you tune per environment.
Detection Strategy for T1505.002 - Transport Agent Abuse (Windows/Linux)
AN0472 · Windows
Adversary registers a malicious Microsoft Exchange transport agent DLL (.NET assembly), configures it via PowerShell or Exchange Management Shell, and persists code execution by manipulating email processing logic based on rules or headers.
Log sources
The data this analytic draws on. You do not need every component — each one you already collect covers part of it. Each links to its ATT&CK record.
| Data component | Name | Channel |
|---|---|---|
| Module LoadDC0016 | WinEventLog:Sysmon | EventCode=7 |
| Process CreationDC0032 | WinEventLog:Sysmon | EventCode=1 |
| Application Log ContentDC0038 | WinEventLog:Application | Exchange Transport Service loads unusual .NET assembly or errors upon transport agent execution |
| File CreationDC0039 | WinEventLog:Sysmon | EventCode=11 |
| Command ExecutionDC0064 | WinEventLog:PowerShell | EventCode=4103, 4104, 4105, 4106 |
Tunable fields
MITRE calls these the analytic’s mutable elements: the thresholds and filters you set for your own environment.
| Field | What you tune |
|---|---|
| TimeWindow | May need tuning based on frequency of Exchange agent updates in environment. |
| AssemblyPath | Specific DLL paths used by Exchange for registered agents may vary between deployments. |
| CmdletInvocationThreshold | Tunable threshold for repeated use of transport agent management cmdlets. |
AN0473 · Linux
Adversary installs or modifies email content filters or transport scripts (e.g., Postfix milter, Sendmail milter, Exim filters) using shell access or configuration manipulation.
Log sources
The data this analytic draws on. You do not need every component — each one you already collect covers part of it. Each links to its ATT&CK record.
| Data component | Name | Channel |
|---|---|---|
| Module LoadDC0016 | linux:Sysmon | EventCode=7 |
| Process CreationDC0032 | auditd:EXECVE | /usr/sbin/postfix, /usr/sbin/exim, /usr/sbin/sendmail |
| Application Log ContentDC0038 | linux:syslog | milter configuration updated, transport rule initialized, unexpected script execution |
| File CreationDC0039 | auditd:SYSCALL | write |
| File ModificationDC0061 | auditd:SYSCALL | write |
Tunable fields
MITRE calls these the analytic’s mutable elements: the thresholds and filters you set for your own environment.
| Field | What you tune |
|---|---|
| MailTransportScriptPath | Path to custom scripts or filters depends on mail daemon (e.g., /etc/postfix/milter/, /etc/exim4/). |
| UserContext | Mail agents may run under different service users (postfix, exim, etc.), which should be scoped. |
| ExecFrequencyThreshold | Frequency of filter script re-execution per daemon restart or reload may vary. |
Regularly check component software on critical services that adversaries may target for persistence to verify the integrity of the systems and identify if unexpected changes have been made.
Ensure all application component binaries are signed by the correct application developers.
Do not allow administrator accounts that have permissions to add component software on these services to be used for day-to-day operations that may expose them to potential adversaries on unprivileged systems.
Tests from Atomic Red Team (MIT licence) · technique definition