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 | Name | Description |
---|---|---|
S0235 | CrossRAT |
CrossRAT can use an XDG Autostart to establish persistence.[3] |
S0410 | Fysbis |
If executing without root privileges, Fysbis adds a |
S0198 | NETWIRE |
NETWIRE can use XDG Autostart Entries to establish persistence on Linux systems.[5] |
S0192 | Pupy | |
S1078 | RotaJakiro |
When executing with user-level permissions, RotaJakiro can install persistence using a .desktop file under the |
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. |
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 |
File Modification |
Malicious XDG autostart entries may be detected by auditing file modification events within the |
||
DS0009 | Process | Process Creation |
Monitor newly executed processes that may modify XDG autostart entries to execute programs or commands during system boot. |