skel 模板注入是什么
/etc/skel 是新用户家目录的模板:useradd 创建账号时会把里面的内容复制到新家目录。往这里放一个 .bashrc 或 .ssh 目录,之后每一个新建账号都会带上攻击者的钩子,属于影响面随时间扩大的持久化手法。
基本信息
| 位置 | /etc/skel/ |
|---|---|
| 正常内容 | 默认 dotfiles 模板(.bashrc、.profile 等) |
| 可疑特征 | 含脚本执行、下载命令、密钥目录 |
| 影响范围 | 所有之后新建的用户 |
| 相关配置 | /etc/default/useradd 的 SKEL 项 |
| 检查要点 | 文件清单、内容、mtime 与包归属 |
典型使用场景
- 排查「新账号一建出来就带有奇怪配置」的现象
- 事件处置时确认模板目录是否被投毒
- 加固巡检:把 skel 内容与发行版默认值比对
- 评估已建账号中有多少继承了被污染的模板
- 批量创建账号前先检查模板是否干净
- 复盘时说明该持久化手法为什么能持续生效
- 演练中练习模板目录的检查流程
检查模板目录与内容
检查模板目录与内容
ls -la /etc/skel/ # 模板目录内容
find /etc/skel -type f -newermt '2026-01-01' 2>/dev/null # 近期新增或改动的文件
grep -rEn 'curl|wget|/dev/tcp|base64|sh -c' /etc/skel/ 2>/dev/null | head -n 20
ls -la /etc/skel/.ssh 2>/dev/null # 是否被放了密钥目录
grep -i skel /etc/default/useradd # 模板路径配置是否被改现象与处置方向
| 现象 | 含义 | 处置方向 |
|---|---|---|
| 出现 .ssh 目录 | 模板被投毒 | 检查内部公钥与配置内容 |
| .bashrc 内含下载命令 | 登录即执行 | 记录内容后清理并统计影响 |
| mtime 新于系统安装时间 | 近期被改动 | 关联事件时间线 |
| 存在提权脚本 | 预留提权入口 | 重点核查并固定证据 |
| 与默认包内容不一致 | 文件被改动 | 用包校验确认改动范围 |
skel 影响的是将来:现有家目录里可能还没有恶意文件,所以只清理模板不会立刻看到变化,但必须同时排查已经继承模板的账号。
确认模板被投毒后要统计影响面:从首次改动时间开始创建的所有账号,都需要逐一检查家目录里是否已经继承了恶意文件。