Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 608

launchd Persistence

What is launchd Persistence?

launchd PersistencemacOS persistence technique that installs a LaunchDaemon or LaunchAgent property list so launchd executes attacker code at boot, login, or on a trigger.


launchd persistence (MITRE ATT&CK T1543.004) abuses macOS's launchd init system. Attackers drop a property-list (.plist) file in /Library/LaunchDaemons (boot, root context), /Library/LaunchAgents (every user at login), or ~/Library/LaunchAgents (current user). The plist defines a Label, a ProgramArguments command, and triggers such as RunAtLoad, KeepAlive, StartInterval, WatchPaths, or StartCalendarInterval. launchd then maintains the process and restarts it if it dies. The technique is favored by macOS malware including OSX/Shlayer and XCSSET. Defenses: monitor LaunchDaemon/Agent directories with EDR or fs_usage, baseline plists, alert on unsigned executables, and use TCC and SIP plus MDM-managed config profiles to restrict who can write to system paths.

Examples

  1. 01

    Dropping com.apple.softwareupdated.plist in /Library/LaunchDaemons that launches /tmp/updater at boot.

  2. 02

    Per-user LaunchAgent that re-runs a Python implant at every login via RunAtLoad.

Frequently asked questions

What is launchd Persistence?

macOS persistence technique that installs a LaunchDaemon or LaunchAgent property list so launchd executes attacker code at boot, login, or on a trigger. It belongs to the Attacks & Threats category of cybersecurity.

What does launchd Persistence mean?

macOS persistence technique that installs a LaunchDaemon or LaunchAgent property list so launchd executes attacker code at boot, login, or on a trigger.

How does launchd Persistence work?

launchd persistence (MITRE ATT&CK T1543.004) abuses macOS's launchd init system. Attackers drop a property-list (.plist) file in /Library/LaunchDaemons (boot, root context), /Library/LaunchAgents (every user at login), or ~/Library/LaunchAgents (current user). The plist defines a Label, a ProgramArguments command, and triggers such as RunAtLoad, KeepAlive, StartInterval, WatchPaths, or StartCalendarInterval. launchd then maintains the process and restarts it if it dies. The technique is favored by macOS malware including OSX/Shlayer and XCSSET. Defenses: monitor LaunchDaemon/Agent directories with EDR or fs_usage, baseline plists, alert on unsigned executables, and use TCC and SIP plus MDM-managed config profiles to restrict who can write to system paths.

How do you defend against launchd Persistence?

Defences for launchd Persistence typically combine technical controls and operational practices, as detailed in the full definition above.

What are other names for launchd Persistence?

Common alternative names include: LaunchDaemon persistence, LaunchAgent persistence.

Related terms