首页/安全/应急响应速查/桌面自启 XDG autostart 排查

桌面自启 XDG autostart 排查

图形桌面登录后,桌面环境会执行 ~/.config/autostart 与 /etc/xdg/autostart 里的 .desktop 项;攻击者写入一项即可在管理员登录桌面时拉起后门。

应急响应速查安全更新于 2026-10-13

桌面自启的机制

图形桌面登录后,桌面环境会执行 ~/.config/autostart 与 /etc/xdg/autostart 下的 .desktop 文件。攻击者写入一项,就能在管理员登录桌面时拉起后门,不依赖 systemd 或 cron。

关键字段与触发时机

关键字段是 Exec(要执行的命令),Hidden 用于控制条目是否生效;触发时机是图形会话登录,因此纯 SSH 会话不会触发,这也解释了「只在管理员上班后出现异常」的现象。

基本信息

用户级~/.config/autostart/*.desktop
系统级/etc/xdg/autostart/*.desktop
关键字段Exec 启动命令、Hidden 是否禁用
触发时机图形会话登录后执行
关联配置XDG_CONFIG_DIRS 与各桌面环境的自启目录约定
权限要求查看各用户目录需 root

典型使用场景

  • 排查桌面登录后出现的异常进程
  • 清理针对管理员图形会话的后门
  • 与 systemd、cron 清点互补
  • 处置后验证登录不再触发异常
  • 复盘时说明覆盖范围

列出并检查 Exec 行

列出并检查 Exec 行
ls -la --time-style=long-iso ~/.config/autostart /etc/xdg/autostart 2>/dev/null
grep -rH '^Exec=' /etc/xdg/autostart ~/.config/autostart 2>/dev/null
find /home /root -maxdepth 4 -path '*/.config/autostart/*.desktop' -mtime -30 2>/dev/null
find /home /root -maxdepth 4 -path '*/.config/autostart/*.desktop' -exec grep -H '^Exec=' {} + 2>/dev/null

输出逐列读法

字段含义正常/异常
文件名.desktop 条目名与桌面环境自带命名风格不符需核对
Exec 行实际启动的命令指向 /tmp 或 /dev/shm 基本可判异常
Hidden 字段是否隐藏该条目语义需按桌面环境确认,不等于已卸载
修改时间条目最后改动时间与入侵时间窗重合需重点核查
服务器通常没有桌面环境,autostart 目录本应为空或只有极少数发行版条目:出现指向临时目录的 Exec 基本可以判定异常。
只查 /etc 会漏掉各用户主目录:autostart 是按账号隔离的配置,每个用户目录都要单独检查,包括 root。

不同桌面环境的差异

  • GNOME 与 KDE 都遵循 XDG autostart 的目录约定
  • 部分轻量桌面环境另有自己的自启配置文件
  • Wayland 与 X11 会话都会执行这些条目
  • 系统级条目只有 root 能改,用户级条目权限更宽松

清理与验证

  • 把条目文件备份到证据目录并计算哈希
  • 删除条目或按桌面环境语义置为禁用
  • 重新登录图形会话验证是否仍被执行
  • 检查同目录是否有其他相关条目残留

易错点

  • 只看 /etc 漏掉各用户主目录:~/.config/autostart 是账号维度的配置
  • 把发行版自带项当恶意:先看 Exec 指向的二进制属于哪个软件包
  • 混淆 Hidden 的语义:该字段行为需按桌面环境确认
  • 清理后不重启图形会话:是否仍被拉起没有结论
  • 忽略其他桌面环境的目录约定:不同桌面环境的自启路径并不相同

数据来源与参考

  • freedesktop.org Desktop Application Autostart Specification
  • MITRE ATT&CK T1547.013 XDG Autostart Entry

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌