| ID | Name |
|---|---|
| T1569.001 | Launchctl |
| T1569.002 | Service Execution |
| T1569.003 | Systemctl |
Adversaries may abuse launchctl to execute commands or programs. Launchctl interfaces with launchd, the service management framework for macOS. Launchctl supports taking subcommands on the command-line, interactively, or even redirected from standard input.[1]
Adversaries use launchctl to execute commands and programs as Launch Agents or Launch Daemons. Common subcommands include: launchctl load,launchctl unload, and launchctl start. Adversaries can use scripts or manually run the commands launchctl load -w "%s/Library/LaunchAgents/%s" or /bin/launchctl load to execute Launch Agents or Launch Daemons.[2][3]
| ID | Name | Description |
|---|---|---|
| S0584 | AppleJeus |
AppleJeus has loaded a plist file using the |
| S0274 | Calisto |
Calisto uses launchctl to enable screen sharing on the victim’s machine.[5] |
| S1153 | Cuckoo Stealer |
Cuckoo Stealer can use |
| S0451 | LoudMiner |
LoudMiner launched the QEMU services in the |
| S1048 | macOS.OSAMiner |
macOS.OSAMiner has used |
| S0658 | XCSSET |
XCSSET loads a system level launchdaemon using the |
| ID | Mitigation | Description |
|---|---|---|
| M1018 | User Account Management |
Prevent users from installing their own launch agents or launch daemons. |
| ID | Name | Analytic ID | Analytic Description |
|---|---|---|---|
| DET0265 | Detection Strategy for System Services: Launchctl | AN0736 |
Abuse of launchctl to execute or manage Launch Agents and Daemons. Defender perspective: correlation of suspicious plist file creation or modification in LaunchAgents/LaunchDaemons directories with subsequent execution of the launchctl command. Abnormal executable paths (e.g., /tmp, /Shared) or launchctl activity followed by network connections are highly suspicious. |