首页/安全/取证与溯源速查/mactime 渲染与字段解读
溯源思路与流程68 条

mactime 渲染与字段解读

mactime 把 bodyfile 渲染成可读时间线,输出日期、大小、类型、权限、属主与文件名,支持时间范围与 CSV 样式。

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

mactime 时间线视图

mactime 把 bodyfile 形式的文件系统元数据转成按时间排序的时间线,是 Sleuth Kit 体系里查看 mac 时间最直接的工具。bodyfile 通常由 fls -m 递归生成,mactime 负责排序、限定窗口并按需导出 CSV,供后续统计与交叉分析使用。

基本信息

所属工具集The Sleuth Kit(TSK)
输入格式bodyfile:MD5|路径|inode|模式|uid|gid|大小|atime|mtime|ctime|crtime
常用参数-b 指定 bodyfile,可多次给出;-z 指定时区;-d 输出逗号分隔;-h 输出表头
窗口限定位置参数 起..止,需与 -d 组合使用
输出形态默认文本表格,加 -d 后为 CSV
时间粒度秒级;crtime 在部分文件系统上为 0 或缺失

典型使用场景

  • 按时间顺序浏览文件的创建与改动
  • 把多台主机或多个分区的 bodyfile 合并成统一时间线
  • 定位事件窗口内被改动的文件
  • 导出 CSV 交给表格工具或脚本做统计
  • 与登录、命令执行类日志时间线互校

最小示例

最小示例
fls -r -m / /evidence/root.dd > bodyfile.txt          # 先生成 bodyfile
mactime -b bodyfile.txt -z UTC -h | head -40          # 文本视图,含表头
mactime -b bodyfile.txt -z UTC -d 2026-01-01..2026-01-02 > day.csv   # 限定窗口导出
head -5 day.csv                                       # 检查表头与首行内容
mactime -b a.txt -b b.txt -z UTC -h > merged.txt      # 多来源合并并排序
awk -F, 'NR>1{print $1}' day.csv | head -3            # 复核首列时间是否为预期时区

输出逐列读法

列含义注意
Date事件时间,受 -z 影响未指定时区时按本机时区解释
Size文件大小0 字节可能是占位或截断
Type时间类型字母组合a、m、c、b 分别对应访问、修改、变更、创建
Mode权限与文件类型异常权限位值得单独列出
UID/GID属主与属组系统账号出现在用户数据目录
Name完整路径带 (deleted) 表示已删除文件
bodyfile 中路径带 (deleted) 表示采集时文件已删除,但仍可从元数据推断其存在与时间,这类条目在时间线上往往最有价值。
crtime 是否可用取决于文件系统类型与 inode 大小,ext4 只有在 inode 足够大时才记录创建时间,缺失时不要按 0 解释。
统一为 UTC 后再合并多个来源的 bodyfile,混合时区产生的时间错序往往不易被察觉。
mactime 只负责排序与呈现,不校验 bodyfile 是否完整;截断或乱序的输入会直接转成时间线缺口,合并前应先确认 fls 的输出无报错。

易错点

  • 不指定 -z:默认按本机时区解释输入时间,与 UTC 采集的数据混在一起会整体偏移
  • 把对齐后的文本输出手工抄数:-d 生成 CSV 更适合脚本与表格处理,手抄极易出错
  • 忽略 Type 列:只有 mtime 变化与四类时间同时变化,对应的行为完全不同
  • 多来源 bodyfile 未统一时区就合并:跨主机时间线会错序,且错误很难被发现

数据来源与参考

  • Sleuth Kit man 手册(mactime)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌