Boot or Logon Initialization Scripts: Startup Items

Adversaries may use startup items automatically executed at boot initialization to establish persistence. Startup items execute during the final phase of the boot process and contain shell scripts or other executable files along with configuration information used by the system to determine the execution order for all startup items.[1]

This is technically a deprecated technology (superseded by Launch Daemon), and thus the appropriate folder, /Library/StartupItems isn’t guaranteed to exist on the system by default, but does appear to exist by default on macOS Sierra. A startup item is a directory whose executable and configuration property list (plist), StartupParameters.plist, reside in the top-level directory.

An adversary can create the appropriate folders/files in the StartupItems directory to register their own persistence mechanism.[2] Additionally, since StartupItems run during the bootup phase of macOS, they will run as the elevated root user.

ID: T1037.005
Sub-technique of:  T1037
Platforms: macOS
Version: 1.1
Created: 15 January 2020
Last Modified: 24 October 2025

Procedure Examples

ID Name Description
S0283 jRAT

jRAT can list and manage startup entries.[3]

Mitigations

ID Mitigation Description
M1022 Restrict File and Directory Permissions

Since StartupItems are deprecated, preventing all users from writing to the /Library/StartupItems directory would prevent any startup items from getting registered.

Detection Strategy

ID Name Analytic ID Analytic Description
DET0429 Detect Modification of macOS Startup Items AN1197

Detects the modification or addition of Launch Agents or Startup Items to establish persistence. Adversaries may write plist or executable files to ~/Library/LaunchAgents/, /Library/StartupItems/, or similar directories and configure them to run at user or system boot. Detection requires correlating file creation or modification events with subsequent user logon or boot-time process execution.

References