Plaso 超级时间线分析
用于电子取证中的超级时间线构建与筛查,围绕 log2timeline.py、psort.py、pinfo.py、psteal.py 等 Plaso 工具,对磁盘镜像、事件日志、注册表、浏览器及其他取证数据进行统一时间化处理。支持完整或定向解析、解析命中统计检查、时间范围和关键词过滤、多份 Plaso 数据合并以及 CSV/JSON 导出,适合还原入侵过程、定位关键时间窗口和跨证据源串联事件。
在 AI 中使用此 Skill将本页链接复制给 AI,即可让 AI 获取完整 Skill 内容并按此执行
安全提示: 本站 Skill 均经 ChatGPT 最新模型扫描,未发现恶意脚本及危险指令、未检出已知恶意行为特征,但不保证绝对安全,使用即表示接受此风险
Skill 文件
版本 20260324 · d349cfa64613de4ef21ae9c9f6e82ec8
SKILL.md
--- name: plaso-timeline description: Build, inspect, filter, merge, and export forensic super-timelines with Plaso on SANS SIFT using log2timeline.py, psort.py, pinfo.py, psteal.py, and image_export.py, with UTC-oriented and evidence-preserving workflows. --- # Plaso Timeline Analysis Use this skill for forensic super-timeline generation and analysis with the Plaso tool suite on SANS SIFT. Keep source evidence read-only, use UTC unless the case explicitly requires another timezone, and preserve the original `.plaso` storage file when it is created. ## Tools - `log2timeline.py` — parse evidence into a Plaso storage file. - `psort.py` — filter, sort and export stored events. - `pinfo.py` — inspect storage metadata and parser statistics. - `psteal.py` — parse and export directly without retaining an intermediate storage file. - `image_export.py` — extract targeted files from supported images. The Protocol SIFT environment expects a Plaso build from the GIFT stable repository rather than the incompatible Ubuntu package combination commonly encountered on SIFT. ## Workflow ### 1. Inspect the source Before ingestion, confirm the image, mount or source directory and document its hash or acquisition metadata. ```bash file <source> pinfo.py <existing.plaso> ``` ### 2. Create a persistent super-timeline For modern Windows evidence: ```bash log2timeline.py \ --storage-file ./analysis/<CASE_ID>.plaso \ --parsers win10 \ --hashers md5,sha256 \ --timezone UTC \ <source> ``` If Volume Shadow Copies are relevant and supported by the source: ```bash log2timeline.py \ --storage-file ./analysis/<CASE_ID>.plaso \ --parsers win10 \ --vss-stores all \ --timezone UTC \ <source> ``` Common parser families include modern Windows, legacy Windows, generic Windows, Linux, browser history and Android. Verify available names on the installed version instead of assuming a parser exists: ```bash log2timeline.py --parsers list ``` ### 3. Use targeted ingest when a full image is unnecessary Examples: ```bash log2timeline.py --storage-file ./analysis/<CASE_ID>_evtx.plaso --parsers winevtx --timezone UTC ./exports/evtx/ log2timeline.py --storage-file ./analysis/<CASE_ID>_reg.plaso --parsers winreg --timezone UTC ./exports/registry/ log2timeline.py --storage-file ./analysis/<CASE_ID>_fls.plaso --parsers mactime --timezone UTC ./analysis/bodyfile.txt ``` Use targeted ingestion to reduce runtime and noise when the investigative question is narrow. ### 4. Validate parser results Always inspect a newly created storage file: ```bash pinfo.py ./analysis/<CASE_ID>.plaso pinfo.py -v ./analysis/<CASE_ID>.plaso ``` Expected artifacts with zero parser hits usually indicate a source, parser-set or mount problem. Do not proceed as if the absence of events proves absence of activity. ### 5. Export the timeline ```bash psort.py -o l2tcsv -w ./exports/<CASE_ID>_timeline.csv ./analysis/<CASE_ID>.plaso psort.py -o dynamic -w ./exports/<CASE_ID>_dynamic.csv ./analysis/<CASE_ID>.plaso psort.py -o json -w ./exports/<CASE_ID>_timeline.json ./analysis/<CASE_ID>.plaso ``` ### 6. Filter around the investigative question Filter by date, parser or content rather than reviewing a huge timeline blindly. ```bash psort.py -o l2tcsv -w ./exports/<CASE_ID>_window.csv ./analysis/<CASE_ID>.plaso \ "date > '2026-01-01 00:00:00' AND date < '2026-01-02 00:00:00'" psort.py -o l2tcsv -w ./exports/<CASE_ID>_powershell.csv ./analysis/<CASE_ID>.plaso \ "message contains 'powershell'" psort.py -o l2tcsv -w ./exports/<CASE_ID>_slice.csv --slice '2026-01-01 12:00:00' ./analysis/<CASE_ID>.plaso ``` When using free-form filters, confirm syntax against the installed `psort.py` version and preserve the filter expression in case notes. ### 7. Merge related timeline sources If disk, EVTX, registry or bodyfile ingestion was performed separately, merge them into one chronological export: ```bash psort.py -o l2tcsv -w ./exports/<CASE_ID>_merged.csv \ ./analysis/<CASE_ID>_disk.plaso \ ./analysis/<CASE_ID>_evtx.plaso \ ./analysis/<CASE_ID>_fls.plaso ``` ### 8. Fast path with psteal Use `psteal.py` when a quick export is needed and keeping the intermediate `.plaso` file is unnecessary: ```bash psteal.py --source <source> --output-format l2tcsv --write ./exports/<CASE_ID>_timeline.csv --parsers win10 --timezone UTC ``` For major cases, prefer a persistent `.plaso` file because it supports repeatable filtering without re-ingesting the evidence. ### 9. Targeted extraction Use `image_export.py` for specific evidence classes when supported by the installed version, for example event logs, registry hives, prefetch or browser databases. Record the selection criteria so the extraction can be repeated. ## Analysis guidance - Normalize timestamps before comparing sources. - Pivot around known-good anchor events such as logons, process creation, file creation or network artifacts. - Correlate high-value events across independent parsers instead of trusting one source. - Separate source time, recorded event time and analyst export time. - Preserve raw exports and create filtered analyst views as separate files. - A missing event can result from parser coverage, log retention or artifact cleanup; document the gap. ## Output layout Recommended paths: - `./analysis/*.plaso` — persistent storage files. - `./exports/*_timeline.csv` — chronological exports. - `./exports/*_filtered.csv` — scoped analyst views. - `./reports/` — final narrative or findings derived from the timeline.
此文件不提供内嵌文本预览
请使用左侧文件行末尾的外链图标打开原始文件。
