桌面自启的机制
图形桌面登录后,桌面环境会执行 ~/.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 能改,用户级条目权限更宽松
清理与验证
- 把条目文件备份到证据目录并计算哈希
- 删除条目或按桌面环境语义置为禁用
- 重新登录图形会话验证是否仍被执行
- 检查同目录是否有其他相关条目残留