首页/安全/取证与溯源速查/账户文件时间窗口比对
Linux 取证135 条

账户文件时间窗口比对

passwd、shadow、group、gshadow 的修改时间落在事件窗口内时,这些文件就是重点证据,需进一步用监视记录与内容差异佐证。

取证与溯源速查安全更新于 2026-10-13

账户文件的时间落在窗口内就是重点

账户与组信息保存在 /etc/passwd、/etc/shadow、/etc/group、/etc/gshadow 四个文件里。它们平时很少变化,只有在增删账号、改口令、调整组成员时才被写入。因此一旦某个文件的修改时间落在事件窗口内,就说明这段时间里发生过账号层面的变更,必须进一步查清是谁改的、改了什么。

mtime 与 ctime 一起看

两个时间同时变化说明文件内容被改写;只有 ctime 变化而 mtime 不变,通常说明只是属性调整(权限或属主)。反之,如果内容确实变了但时间看起来很早,要考虑有人用工具回改时间戳,或者文件被设置了不可修改属性后再解除——这些都会在系统日志或审计记录中留下痕迹。

基本信息

适用平台Linux(/etc 下的账户与组文件)
目标文件/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow
查看命令stat -c '%n mtime=%y ctime=%z' 文件
辅助手段auditd 对这四个文件设置监视规则
注意系统升级、批量账号同步同样会更新这些文件

典型使用场景

  • 排查后门账号:确认账号被创建的大致时间并与登录日志对照
  • 核查提权改动:组成员变更同样会更新组文件的时间
  • 验证处置结果:删除账号后确认时间戳已更新且内容恢复基线
  • 缩小调查范围:多主机对比这些文件的时间,找出共同改动点
  • 为报告取证:记录四个文件的属性与哈希,作为证据完整性依据

对比时间与内容

对比时间与内容
# 四个文件的修改与属性变更时间
stat -c '%n mtime=%y ctime=%z' /etc/passwd /etc/shadow /etc/group /etc/gshadow

# 是否有不可修改属性(可被用于阻止清理)
lsattr /etc/passwd /etc/shadow /etc/group /etc/gshadow 2>/dev/null

# 记录哈希,作为后续比对的基线
sha256sum /etc/passwd /etc/shadow /etc/group /etc/gshadow > /mnt/ev/account-baseline.txt

# 有审计日志时查谁改过
grep -E '/etc/(passwd|shadow)' /var/log/audit/audit.log 2>/dev/null | tail -20

时间变化与含义

变化情况含义后续动作
mtime 与 ctime 都变内容被改写核对账号与组成员变化
仅 ctime 变化只有属性调整检查权限与属主是否合理
四个文件同时更新批量账号操作查配置管理与部署记录
时间落在事件窗口内账号变更与事件相关与登录日志、审计记录交叉
时间明显早于内容变化时间戳可能被回改查日志与审计记录佐证
文件被设置不可修改属性(lsattr 显示 i)时会阻止写入,这种属性也可能被用于阻止取证人员清理或删除后门账号,检查时应一并查看并记录。
系统升级、批量账号同步、容器镜像构建都会更新这些文件;判定前先确认主机是否处于自动化管理之下,把这类变化排除掉。

易错点

  • 只查 passwd 忽略 group 与 gshadow:提权常用的就是组成员调整
  • 把 ctime 变化当内容改动:可能只是权限调整,结论被夸大
  • 忽略不可修改属性:被设置属性后无法清理,也不易察觉
  • 不记录基线哈希:后续无法证明文件内容是否被动过
  • 未排除自动化变更:配置管理带来的更新被误判为入侵痕迹

数据来源与参考

  • man 1 stat(GNU coreutils)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌