During the 3CX Supply Chain Attack, AppleJeus installs a Launch Daemon to execute the POOLRAT macOS backdoor software.1
Launch Daemon T1543.004
- Tactics
- Persistence, Privilege Escalation
- Platform
- macOS
- Version
- 1.3
- Created
- 17 January 2020
- Last modified
- 24 October 2025
Adversaries may create or modify Launch Daemons to execute malicious payloads as part of persistence. Launch Daemons are plist files used to interact with Launchd, the service management framework used by macOS. Launch Daemons require elevated privileges to install, are executed for every user on a system prior to login, and run in the background without the need for user interaction. During the macOS initialization startup, the launchd process loads the parameters for launch-on-demand system-level daemons from plist files found in /System/Library/LaunchDaemons/ and /Library/LaunchDaemons/. Required Launch Daemons parameters include a Label to identify the task, Program to provide a path to the executable, and RunAtLoad to specify when the task is run. Launch Daemons are often used to provide access to shared resources, updates to software, or conduct automation tasks.[1][2][3]
Launch Daemon MITRE reference T1543.004
1 campaign has been recorded using this technique. Listed newest first; dates are year-granularity and attribution is MITRE’s.
All 1 campaigns for this technique
10 software entries are documented implementing this technique. MITRE files each as a tool or as malware; newest first, then by how many groups carry them.
Will create a daemon for timed check-ins with command and control infrastructure.1
Can add a plist file in the Library/LaunchDaemons to establish persistence.12
Uses the ssh launchdaemon to elevate privileges, bypass system controls, and enable remote access to the victim.1
When running with root privileges after a Launch Agent is installed, ThiefQuest installs a plist file to the /Library/LaunchDaemons/ folder with the RunAtLoad key set to true establishing persistence as a Launch Daemon. 1
Has placed a plist file within the LaunchDaemons folder and launched it manually.12
All 10 software entries for this technique · 6 newest in this preview
Offense vs defense T1543.004
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.
Launch Daemon detection strategy DET0401
MITRE names one behaviour worth catching for this technique and breaks it into 1 analytic, one per platform. Each carries the log sources it needs and the fields you tune per environment.
Detection Strategy for Launch Daemon Creation or Modification (macOS)
AN1126 · macOS
Creation or modification of .plist files in /Library/LaunchDaemons/, especially those with suspicious Program or ProgramArguments paths, combined with execution activity under launchd with elevated privileges. Detectable through correlated Unified Logs, file monitoring, and process telemetry.
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 |
|---|---|---|
| Process CreationDC0032 | macos:unifiedlog | launchd spawning processes tied to new or modified LaunchDaemon .plist entries |
| File CreationDC0039 | fs:launchdaemons | file_create |
| Service CreationDC0060 | macos:unifiedlog | launchd loading new LaunchDaemon or changes to existing daemon configuration |
| File ModificationDC0061 | fs:launchdaemons | file_modify |
Tunable fields
MITRE calls these the analytic’s mutable elements: the thresholds and filters you set for your own environment.
| Field | What you tune |
|---|---|
| ProgramPathRegex | Regex patterns to match anomalous executable paths or names in .plist files |
| TimeWindow | Correlation window between file modification and launchd process execution |
| UserContext | Admin or root context used during daemon installation |
| UnsignedBinaryFlag | Whether the binary associated with the LaunchDaemon is signed or trusted |
Use auditing tools capable of detecting folder permissions abuse opportunities on systems, especially reviewing changes made to folders by third-party software.
Limit privileges of user accounts and remediate Privilege Escalation vectors so only authorized administrators can create new Launch Daemons.
Tests from Atomic Red Team (MIT licence) · technique definition