MITRE ATT&CKsub-technique
T1547.015 Login Items
- Domain
- enterprise
- Tactics
- Persistence, Privilege Escalation
- Platforms
- macOS
- Version
- 1.1
- Created
- 2021-10-05
Description
Adversaries may add login items to execute upon user login to gain persistence or escalate privileges. Login items are applications, documents, folders, or server connections that are automatically launched when a user logs in. Login items can be added via a shared file list or Service Management Framework. Shared file list login items can be set using scripting languages such as AppleScript, whereas the Service Management Framework uses the API call SMLoginItemSetEnabled.
Login items installed using the Service Management Framework leverage launchd, are not visible in the System Preferences, and can only be removed by the application that created them. Login items created using a shared file list are visible in System Preferences, can hide the application when it launches, and are executed through LaunchServices, not launchd, to open applications, documents, or URLs without using Finder. Users and applications use login items to configure their user environment to launch commonly used services or applications, such as email, chat, and music applications.
Adversaries can utilize AppleScript and Native API calls to create a login item to spawn malicious executables. Prior to version 10.5 on macOS, adversaries can add login items by using AppleScript to send an Apple events to the “System Events” process, which has an AppleScript dictionary for manipulating login items. Adversaries can use a command such as tell application “System Events” to make login item at end with properties /path/to/executable. This command adds the path of the malicious executable to the login item file list located in ~/Library/Application Support/com.apple.backgroundtaskmanagementagent/backgrounditems.btm. Adversaries can also use login items to launch executables that can be used to control the victim system remotely or as a means to gain privilege escalation by prompting for user credentials.
Related
Subtechnique of · MITRE ATT&CK (1)
- T1547 Boot or Logon Autostart Execution technique
References
- https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLoginItems.html Adding Login Items
- https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/LaunchServicesKeys.html#//apple_ref/doc/uid/TP40009250-SW1 Launch Service Keys Developer Apple
- https://developer.apple.com/documentation/coreservices/launch_services Launch Services Apple Developer
- https://developer.apple.com/library/archive/samplecode/LoginItemsAE/Introduction/Intro.html#//apple_ref/doc/uid/DTS10003788 Login Items AE
- https://support.apple.com/guide/mac-help/open-items-automatically-when-you-log-in-mh15189/mac Open Login Items Apple
- https://web.archive.org/web/20221007144948/http://www.hexed.in/2019/07/osxdok-analysis.html hexed osx.dok analysis 2019
- https://eclecticlight.co/2018/05/22/running-at-startup-when-to-use-a-login-item-or-a-launchagent-launchdaemon/ ELC Running at startup
- https://eclecticlight.co/2021/09/16/how-to-run-an-app-or-tool-at-startup/ Startup Items Eclectic
- https://gist.github.com/kaloprominat/6111584 Add List Remove Login Items Apple Script
- https://blog.checkpoint.com/2017/04/27/osx-malware-catching-wants-read-https-traffic/ CheckPoint Dok
- https://objective-see.com/blog/blog_0x31.html objsee block blocking login items
- https://objective-see.com/blog/blog_0x44.html objsee netwire backdoor 2019
- https://objective-see.com/blog/blog_0x25.html objsee mac malware 2017
- https://www.sentinelone.com/blog/how-malware-persists-on-macos/ sentinelone macos persist Jun 2019
- https://web.archive.org/web/20160216034946/https://blog.timschroeder.net/2013/04/21/smloginitemsetenabled-demystified/ SMLoginItemSetEnabled Schroeder 2013