plaso 做什么
大规模时间线用 plaso 生成:log2timeline.py 把磁盘镜像或多源产物解析成 plaso 文件,psort.py 输出为 CSV 等格式并支持时间窗过滤。它的价值是把文件时间戳、日志、浏览器记录统一到同一条时间轴上。
使用时最需要注意的
一是资源消耗:解析大镜像可能耗时数小时甚至更久,需要足够磁盘与内存;二是时间基准:plaso 输出为 UTC,与本地日志对照前必须统一时区。
基本信息
| 采集解析 | log2timeline.py timeline.plaso <镜像或目录> |
|---|---|
| 导出 | psort.py -o l2tcsv -w timeline.csv |
| 过滤 | 支持按时间的过滤表达式 |
| 轻量替代 | fls 生成 body file,再用 mactime 输出时间线 |
| 时间基准 | plaso 输出为 UTC,需与本地日志统一 |
| 资源需求 | 解析大镜像耗时长,需充足磁盘与内存 |
典型使用场景
- 重建入侵时间线与动作顺序
- 定位最早的可疑改动时间点
- 验证某个动作是否发生在特定时间窗内
- 与日志时间线交叉印证
- 为报告提供可排序的时间证据
生成并导出时间线
生成并导出时间线
log2timeline.py /evidence/timeline.plaso /evidence/disk.img
psort.py -o l2tcsv -w /evidence/timeline.csv /evidence/timeline.plaso "date > '2026-10-01 00:00:00'"
head -n 5 /evidence/timeline.csv
fls -o 2048 -r -m / /evidence/disk.img > /evidence/body.txt && mactime -b /evidence/body.txt -d > /evidence/mactime.csv输出逐列读法
| 列 | 含义 | 注意点 |
|---|---|---|
| date | 事件时间(UTC) | 与本地日志对照前先统一时区 |
| timestamp_desc | 时间戳类型 | mtime、ctime、atime、birth 含义不同,不可混用 |
| source | 数据来源 | 用于判断该条目的可信度 |
| description | 事件描述 | 文件路径或日志内容摘要 |
解析前先评估数据量:可以先只解析关键分区或限定文件类型,确认分析思路可行后再跑全量,避免几个小时后发现方向不对。
时间戳可以被篡改:时间线结论必须与其他证据交叉印证,不能只凭文件时间下判定。
结果留档与复核
结果留档与复核
ls -la /evidence/timeline.plaso /evidence/timeline.csv
sha256sum /evidence/timeline.csv > /evidence/timeline.csv.sha256
wc -l /evidence/timeline.csv
awk -F',' 'NR>1{print $1}' /evidence/timeline.csv | sort | head -n 10 # 看最早的时间点可纳入的证据来源
- 文件系统时间戳与文件删除记录
- 系统日志与认证日志
- 计划任务、服务与定时器的执行时间
- 浏览器下载与访问痕迹
- 配置文件与注册表的修改时间
时间线的使用方式
- 先看最早的异常时间点,确定入侵起点
- 再看同一时间窗内的多条记录作为旁证
- 按时间排序还原动作先后顺序
- 为每条结论标注对应证据来源