Boot or Logon Autostart Execution: XDG Autostart Entries

Adversaries may add or modify XDG Autostart Entries to execute malicious programs or commands when a user’s desktop environment is loaded at login. XDG Autostart entries are available for any XDG-compliant Linux system. XDG Autostart entries use Desktop Entry files (.desktop) to configure the user’s desktop environment upon user login. These configuration files determine what applications launch upon user login, define associated applications to open specific file types, and define applications used to open removable media.[1][2]

Adversaries may abuse this feature to establish persistence by adding a path to a malicious binary or command to the Exec directive in the .desktop configuration file. When the user’s desktop environment is loaded at user login, the .desktop files located in the XDG Autostart directories are automatically executed. System-wide Autostart entries are located in the /etc/xdg/autostart directory while the user entries are located in the ~/.config/autostart directory.

Adversaries may combine this technique with Masquerading to blend malicious Autostart entries with legitimate programs.[3]

ID: T1547.013
Sub-technique of:  T1547
Platforms: Linux
Permissions Required: User, root
Contributors: Tony Lambert, Red Canary
Version: 1.1
Created: 10 September 2019
Last Modified: 16 October 2023

Procedure Examples

ID Name Description
S0235 CrossRAT

CrossRAT can use an XDG Autostart to establish persistence.[3]

S0410 Fysbis

If executing without root privileges, Fysbis adds a .desktop configuration file to the user's ~/.config/autostart directory.[3][4]

S0198 NETWIRE

NETWIRE can use XDG Autostart Entries to establish persistence on Linux systems.[5]

S0192 Pupy

Pupy can use an XDG Autostart to establish persistence.[3]

S1078 RotaJakiro

When executing with user-level permissions, RotaJakiro can install persistence using a .desktop file under the $HOME/.config/autostart/ folder.[6]

Mitigations

ID Mitigation Description
M1033 Limit Software Installation

Restrict software installation to trusted repositories only and be cautious of orphaned software packages.

M1022 Restrict File and Directory Permissions

Restrict write access to XDG autostart entries to only select privileged users.

M1018 User Account Management

Limit privileges of user accounts so only authorized privileged users can create and modify XDG autostart entries.

Detection

ID Data Source Data Component Detects
DS0017 Command Command Execution

Monitor executed commands and arguments that may modify XDG autostart entries to execute programs or commands during system boot.

DS0022 File File Creation

Malicious XDG autostart entries may be detected by auditing file creation events within the /etc/xdg/autostart and ~/.config/autostart directories. Depending on individual configurations, defenders may need to query the environment variables $XDG_CONFIG_HOME or $XDG_CONFIG_DIRS to determine the paths of Autostart entries. Autostart entry files not associated with legitimate packages may be considered suspicious. Suspicious entries can also be identified by comparing entries to a trusted system baseline.

File Modification

Malicious XDG autostart entries may be detected by auditing file modification events within the /etc/xdg/autostart and ~/.config/autostart directories. Depending on individual configurations, defenders may need to query the environment variables $XDG_CONFIG_HOME or $XDG_CONFIG_DIRS to determine the paths of Autostart entries. Autostart entry files not associated with legitimate packages may be considered suspicious. Suspicious entries can also be identified by comparing entries to a trusted system baseline.

DS0009 Process Process Creation

Monitor newly executed processes that may modify XDG autostart entries to execute programs or commands during system boot.

References