T1543.001: Launch Agent
Adversaries may create or modify launch agents to repeatedly execute malicious payloads as part of persistence. When a user logs in, a per-user launchd process is started which loads the parameters for each launch-on-demand user agent from the property list (.plist) file found in /System/Library/LaunchAgents, /Library/LaunchAgents, and ~/Library/LaunchAgents.[1][2] [3] Property list files use the Label, ProgramArguments , and RunAtLoad keys to identify the Launch Agent's name, executable location, and execution time.[4] Launch Agents are often installed to perform updates to programs, launch user specified programs at login, or to conduct other developer tasks.
Launch Agents can also be executed using the Launchctl command. Adversaries may install a new Launch Agent that executes at login by placing a .plist file into the appropriate folders with the RunAtLoad or KeepAlive keys set to true.[5][6] The Launch Agent name may be disguised by using a name from the related operating system or benign software. Launch Agents are created with user level privileges and execute with user level permissions.[7][8]
Analyst context for executives and security teams
Launch Agent abuse is a macOS persistence technique: a malicious or modified .plist can cause code to run when a user logs in or when launchd loads it. For leaders, the business issue is not the file format itself; it is whether Mac endpoints used by developers, executives, finance, or cryptocurrency-related staff can retain unauthorized code across reboots and user sessions without being noticed.
Executive priority
Prioritize this where macOS systems have access to sensitive data, source code, credentials, administrative tools, or regulated workflows. The key management question is whether the organization can prove control over user-level persistence locations, detect unexpected Launch Agent changes, and respond quickly enough to remove persistence before credential theft, data access, or longer dwell time occurs. This technique also supports audit and compliance conversations around endpoint hardening, least privilege, and evidence of monitoring for persistence mechanisms.
Technical view
This is a macOS sub-technique of Create or Modify System Process for persistence and privilege-escalation tactics. Validate monitoring of .plist creation or modification in /System/Library/LaunchAgents, /Library/LaunchAgents, and ~/Library/LaunchAgents, with attention to Launch Agent keys such as Label, ProgramArguments, RunAtLoad, and KeepAlive. Because ATT&CK does not provide official detection text for this object, detection engineering should align to the related DET0434 strategy and test whether file monitoring, process telemetry, and launchctl-related activity are actually visible on managed Macs. Relationship context shows broad use across macOS malware and multi-platform RATs, so triage should treat suspicious Launch Agents as persistence leads that may connect to credential access, backdoors, proxying, or mining behavior depending on local evidence.
Likely telemetry
- macOS file creation, modification, ownership, and permission changes in LaunchAgents directories
- Contents of Launch Agent .plist files, especially Label, ProgramArguments, RunAtLoad, and KeepAlive keys
- Process execution telemetry for payloads launched by launchd
- Command execution telemetry involving launchctl where collected
- Endpoint security or EDR alerts tied to user-level persistence on macOS
Detection direction
- Validate coverage for creation or modification of .plist files in system, library, and user LaunchAgents paths; user home directories are a common blind spot.
- Tune detections to distinguish expected software updaters and developer tools from unusual labels, suspicious executable paths, newly introduced RunAtLoad or KeepAlive entries, or mismatches between plist name and referenced binary.
- Correlate Launch Agent changes with subsequent launchd-spawned process execution rather than relying only on static file presence.
- Review whether launchctl execution is logged and whether it can be tied to the user, parent process, and modified plist.
- Use allowlists carefully: Launch Agents are legitimate macOS functionality, so false positives are likely without baselines for managed software and normal developer workflows.
Mitigation priorities
- Apply least-privilege file and directory permissions, consistent with mitigation M1022, to limit unnecessary write access to sensitive LaunchAgents locations.
- Baseline approved Launch Agents on managed macOS endpoints and review deviations through change control or endpoint management evidence.
- Reduce local administrative or unnecessary write privileges where business operations allow, especially for high-risk user populations.
- Ensure endpoint management and response procedures can remove both malicious .plist files and referenced payloads.
- Include Launch Agent persistence checks in macOS hardening reviews, incident response playbooks, and compliance evidence collection.
Analyst notes and limits
The object is macOS-specific and user-level Launch Agents execute with user-level permissions. ATT&CK relationships show this technique is used by multiple named malware families and tools, including Komplex, NETWIRE, CrossRAT, Keydnap, Proton, Dok, Bundlore, CookieMiner, Dacls, MacMa, macOS.OSAMiner, and Cuckoo Stealer, plus the Contagious Interview group relationship. Those relationships justify defensive prioritization but should not be treated as evidence of current activity in a specific environment without local telemetry.
Official ATT&CK detection text is not provided for this object. The take relies on the official description, external references, and supplied relationships, including DET0434 and M1022. Local endpoint visibility, software inventory, user privilege model, and normal macOS administration practices are required to determine actual exposure and detection quality.
Launch Agent
Adversaries may create or modify launch agents to repeatedly execute malicious payloads as part of persistence. When a user logs in, a per-user launchd process is started which loads the parameters for each launch-on-demand user agent from the property list (.plist) file found in /System/Library/LaunchAgents, /Library/LaunchAgents, and ~/Library/LaunchAgents.[1][2] [3] Property list files use the Label, ProgramArguments , and RunAtLoad keys to identify the Launch Agent's name, executable location, and execution time.[4] Launch Agents are often installed to perform updates to programs, launch user specified programs at login, or to conduct other developer tasks.
Launch Agents can also be executed using the Launchctl command. Adversaries may install a new Launch Agent that executes at login by placing a .plist file into the appropriate folders with the RunAtLoad or KeepAlive keys set to true.[5][6] The Launch Agent name may be disguised by using a name from the related operating system or benign software. Launch Agents are created with user level privileges and execute with user level permissions.[7][8]
How security teams should use this page
Treat this object as behavior context, not an attribution claim. Validate the related groups, software, data sources, and mitigations against official ATT&CK relationships and your own telemetry before making control-coverage decisions.
Related techniques
This mirrors the MITRE pattern of making group, software, campaign, and technique relationships scannable. Relationship notes come from mirrored ATT&CK relationship text when available.
| Domain | ID | Name | Relationship / procedure |
|---|---|---|---|
| Enterprise | T1159 | Launch Agent | Launch Agent revoked by this object. |
| Enterprise | T1543 | Create or Modify System Process | This object subtechnique of Create or Modify System Process. |
Groups, software, and campaigns
G1052: Contagious Interview
Contagious Interview is a North Korea–aligned threat group active since 2023. The group conducts both cyberespionage and financially motivated operations, including the theft of cryptocurrency and user credentials. Contagious Interview targets Windows, Linux, and macOS systems, with a particular focus on individuals engaged in software development and cryptocurrency-related activities. [1][2][3][4][5][6][7][8]
S0274: Calisto
S0279: Proton
S9010: GlassWorm
GlassWorm is a worm that propagated through supply chain attacks by compromising repository credentials from victim environments and having malicious payloads added to those compromised accounts for distribution to victims across the various development ecosystems.[1][2][3] GlassWorm has numerous variants, including Rust binaries, encrypted JavaScript and a variant leveraging invisible Unicode characters that made reverse engineering difficult.[4][1][5] GlassWorm has employed a unique command and control (C2) methodology using Solana blockchain.[6][1] GlassWorm was first reported in October 2025.[6][1][3]
S0282: MacSpy
S0235: CrossRAT
CrossRAT is a cross platform RAT.
S0281: Dok
Dok is a Trojan application disguised as a .zip file that is able to collect user credentials and install a malicious proxy server to redirect a user's network traffic (i.e. Adversary-in-the-Middle).[1][2][3]
S0497: Dacls
Dacls is a multi-platform remote access tool used by Lazarus Group since at least December 2019.[1][2]
S1016: MacMa
MacMa is a macOS-based backdoor with a large set of functionalities to control and exfiltrate files from a compromised computer. MacMa has been observed in the wild since November 2021.[1] MacMa shares command and control and unique libraries with MgBot and Nightdoor, indicating a relationship with the Daggerfly threat actor.[2]
S0352: OSX_OCEANLOTUS.D
OSX_OCEANLOTUS.D is a macOS backdoor used by APT32. First discovered in 2015, APT32 has continued to make improvements using a plugin architecture to extend capabilities, specifically using `.dylib` files. OSX_OCEANLOTUS.D can also determine it's permission level and execute according to access type (`root` or `user`).[1][2][3]
S0482: Bundlore
S0595: ThiefQuest
ThiefQuest is a virus, data stealer, and wiper that presents itself as ransomware targeting macOS systems. ThiefQuest was first seen in 2020 distributed via trojanized pirated versions of popular macOS software on Russian forums sharing torrent links.[1] Even though ThiefQuest presents itself as ransomware, since the dynamically generated encryption key is never sent to the attacker it may be more appropriately thought of as a form of wiper malware.[2][3]
S1048: macOS.OSAMiner
macOS.OSAMiner is a Monero mining trojan that was first observed in 2018; security researchers assessed macOS.OSAMiner may have been circulating since at least 2015. macOS.OSAMiner is known for embedding one run-only AppleScript into another, which helped the malware evade full analysis for five years due to a lack of Apple event (AEVT) analysis tools.[1][2]
All related ATT&CK context
Mitigation direction
Object version and sync metadata
The fields below describe the current mirrored snapshot. When Glexia retains multiple ATT&CK source imports, you can open the table to compare the same object across releases (hashes and MITRE timestamps). For MITRE’s own release notes and roadmap, see ATT&CK resources — Updates .
Imported snapshots across ATT&CK releases (1)
| Release | Bundle imported | Object version | Modified | Status | Raw hash |
|---|---|---|---|---|---|
| 19.1 | 1.5 | Current bundle | 4637da87f6e9… |
Mirrored ATT&CK source object
The raw object is retained through the mirrored ATT&CK source bundle and object hash. The raw endpoint returns the exact object from the mirrored bundle when available.
External references and citations
MITRE external references are preserved separately from Glexia analysis so citations remain traceable to their original source records.
-
[1]
AppleDocs Launch Agent Daemons
Apple. (n.d.). Creating Launch Daemons and Agents. Retrieved July 10, 2017.
Open source URL -
[2]
OSX Keydnap malware
Marc-Etienne M.Leveille. (2016, July 6). New OSX/Keydnap malware is hungry for credentials. Retrieved July 3, 2017.
Open source URL -
[3]
Antiquated Mac Malware
Thomas Reed. (2017, January 18). New Mac backdoor using antiquated code. Retrieved July 5, 2017.
Open source URL -
[4]
OSX.Dok Malware
Thomas Reed. (2017, July 7). New OSX.Dok malware intercepts web traffic. Retrieved July 10, 2017.
Open source URL -
[5]
Sofacy Komplex Trojan
Dani Creus, Tyler Halfpop, Robert Falcone. (2016, September 26). Sofacy's 'Komplex' OS X Trojan. Retrieved July 8, 2017.
Open source URL -
[6]
Methods of Mac Malware Persistence
Patrick Wardle. (2014, September). Methods of Malware Persistence on Mac OS X. Retrieved July 5, 2017.
Open source URL -
[7]
OSX Malware Detection
Patrick Wardle. (2016, February 29). Let's Play Doctor: Practical OS X Malware Detection & Analysis. Retrieved November 17, 2024.
Open source URL -
[8]
OceanLotus for OS X
Eddie Lee. (2016, February 17). OceanLotus for OS X - an Application Bundle Pretending to be an Adobe Flash Update. Retrieved July 5, 2017.
Open source URL -
[9]
mitre-attack T1543.001Open source URL
Source: MITRE ATT&CK®. © 2026 The MITRE Corporation. This work is reproduced and distributed with the permission of The MITRE Corporation. MITRE ATT&CK and ATT&CK are registered trademarks of The MITRE Corporation. Glexia is not affiliated with or endorsed by MITRE.