T1543.002: Systemd 服务

持久化

摘要

攻击者可能创建或修改 systemd 服务,以作为持久化的一部分反复执行恶意载荷。Systemd 是一种系统和服务管理器,通常用于管理后台守护进程(也称为服务)和其他系统资源。(Citation: Linux man-pages: systemd January 2014) Systemd 是许多 Linux 发行版上默认的初始化(init)系统,取代了包括 SysVinit 和 Upstart 在内的旧版 init 系统,同时保持向后兼容。 Systemd 利用扩展名为 `.service` 的单元配置文件来编码有关服务进程的信息。默认情况下,系统级单元文件存储在 root 拥有的目录(`/`)的 `/systemd/system` 目录中。用户级单元文件存储在用户拥有的目录(`$HOME`)的 `/systemd/user` 目录中。(Citation: lambert systemd 2022) 在 `.service` 单元文件内部,以下指令用于执行命令:(Citation: freedesktop systemd.service) * `ExecStart`、`ExecStartPre` 和 `ExecStartPost` 指令在服务由 `systemctl` 手动启动时执行,或者如果服务设置为自动启动,则在系统启动时执行。 * `ExecReload` 指令在服务重启时执行。 * `ExecStop`、`ExecStopPre` 和 `ExecStopPost` 指令在服务停止时执行。 攻击者已经创建新的服务文件、更改 `.service` 文件指令所执行的命令,并修改 `.service` 文件执行时所用的用户指令,这可能导致权限提升。攻击者还可能在这些目录中放置符号链接,使 systemd 无论这些载荷位于文件系统上的何处都能找到它们。(Citation: Anomali Rocke March 2019)(Citation: airwalk backdoor unix systems)(Citation: Rapid7 Service Persistence 22JUNE2016) `.service` 文件的 User 指令可用于以特定用户身份运行服务,这可能基于特定的用户/组权限导致权限提升。 Systemd 服务可以通过 systemd 生成器创建,systemd 生成器支持动态生成单元文件。Systemd 生成器是在引导或配置重新加载期间运行的小型可执行文件,通过将非原生配置转换为服务、符号链接或 drop-in(即[引导或登录初始化脚本](https://attack.mitre.org/techniques/T1037))来动态创建或修改 systemd 单元文件。(Citation: Elastic Security Labs Linux Persistence 2024)(Citation: Pepe Berba Systemd 2022)

来源归属

来源:MITRE ATT&CK · 置信度:high

平台

  • Linux

战术

持久化

参考来源