Monday, November 2, 2026
No menu items!
Google search engine
HomeDigital ForensicsTimeline Analysis: Putting the Pieces Back Together

Timeline Analysis: Putting the Pieces Back Together

Category: Digital Forensics

Tags: timeline, forensics, dfir, super-timeline, plaso


Every forensic investigation eventually arrives at the same question: what happened, and in what order? Individual artifacts -- a registry key here, a prefetch file there, an event log entry somewhere else -- are evidence fragments. A timeline is the narrative that connects them. Without it, forensics is just a collection of interesting but disconnected facts, which is approximately as useful as a jigsaw puzzle stored in multiple different boxes.

This article covers the practical workflow for building forensic timelines -- from understanding NTFS timestamps through creating super timelines with Plaso, detecting timestamp manipulation, and the methodology for pivoting through thousands of events to reconstruct an incident.


Why Timelines Matter

A single artifact proves that something happened. A timeline proves that things happened in a specific sequence -- and sequence is everything in incident response.

Consider: a Prefetch file proves mimikatz.exe ran. An event log shows a Type 10 (RDP) logon. An MFT entry shows a new file in C:\Windows\Temp\. Individually, these are data points. Arranged chronologically, they tell the story: the attacker logged in via RDP at 14:23, dropped a tool at 14:24, and executed it at 14:25. The timeline turns scattered artifacts into an incident narrative.


NTFS Timestamps -- MACB

NTFS stores two sets of timestamps for every file -- and understanding the difference is critical for forensic analysis and detecting anti-forensics.

$STANDARD_INFORMATION vs $FILE_NAME

Attribute Modified By Forensic Role
$STANDARD_INFORMATION (SI) Updated by normal file operations AND modifiable by user-level APIs What the OS and applications "see" -- can be manipulated
$FILE_NAME (FN) Updated only by the kernel Ground truth -- extremely difficult to modify

MACB Behaviour Reference

Operation SI Modified SI Accessed SI Changed SI Created FN Updated
File Create Set Set Set Set All four set
File Modify Updated Updated Updated -- --
File Read -- Updated -- -- --
File Rename -- -- Updated -- --
File Copy (new) -- -- Set Set (now) All four set
Permission Change -- -- Updated -- --

The Lateral Movement Timestamp Pattern

When a file is copied to a target via SMB (the attacker pushing malware via net use and copy):

SI Created  = time of copy (new file on destination)
SI Modified = original modification time (preserved from source)
FN Created  = time of copy

Key indicator: SI Modified < SI Created

A file whose content timestamp predates its creation on this system was copied from somewhere else. This pattern is one of the most reliable indicators of lateral movement.


Building a Super Timeline with Plaso

Plaso (log2timeline) is the gold standard for automated super timeline creation. It parses dozens of artifact types into a single, sortable timeline.

Collection

# Full disk image to super timeline
log2timeline.py --storage-file timeline.plaso disk_image.E01

# Specific parsers only (significantly faster)
log2timeline.py --parsers "winevtx,prefetch,mft,usnjrnl,lnk,recycle_bin,sam,amcache" \
    --storage-file timeline.plaso disk_image.E01

# KAPE/triage collection (no full disk image needed)
log2timeline.py --storage-file timeline.plaso /path/to/triage-output/

# Windows event logs only
log2timeline.py --parsers winevtx --storage-file evtx.plaso /path/to/winevtx/

Filtering and Output

# Full CSV output
psort.py -o l2tcsv -w timeline.csv timeline.plaso

# Filter by date range
psort.py -o l2tcsv -w timeline.csv timeline.plaso \
    "date > '2024-01-15 00:00:00' AND date < '2024-01-20 00:00:00'"

# Filter by source type
psort.py -o l2tcsv -w timeline.csv timeline.plaso "source_short == 'EVT'"

# Time slice -- show events within 5 minutes of a pivot point
psort.py --slice '2024-01-15T14:30:00' -w slice.csv timeline.plaso

# Output formats
psort.py -o json_line -w timeline.jsonl timeline.plaso    # JSON lines
psort.py -o xlsx -w timeline.xlsx timeline.plaso          # Excel (small datasets only)
psort.py -o elastic timeline.plaso --server 127.0.0.1 --port 9200 --index_name case001

Key Plaso Parsers

Parser What It Processes
winevtx Windows XML event logs (.evtx)
prefetch Windows Prefetch files
mft NTFS $MFT
usnjrnl NTFS USN Change Journal ($J)
lnk Windows shortcut files
recycle_bin Recycle Bin ($I/$R files)
amcache Amcache.hve registry
sam SAM registry hive
pe PE file metadata (compilation timestamps)
olecf_* OLE Compound Files (Office documents, Jump Lists)

MFT Analysis

The Master File Table is the filesystem's ledger -- every file and directory on an NTFS volume has an MFT entry with creation, modification, access, and change timestamps.

Parsing with MFTECmd

MFTECmd.exe -f $MFT --csv output/ --csvf mft.csv
MFTECmd.exe -f $MFT --body output/mft_body.txt --bodyf mft_body

Key columns in the output: Created0x10, Modified0x10 (SI timestamps) vs Created0x30, Modified0x30 (FN timestamps). Comparing these two sets is how you detect timestomping.

USN Journal

The USN Journal ($UsnJrnl:$J) records every file system change -- creates, deletes, renames, data overwrites.

MFTECmd.exe -f $J --csv output/ --csvf usn.csv

Filter for FileCreate near the incident window to find dropped files, RenameOldName/RenameNewName for staging and cleanup activity, and DataOverwrite on system files for evidence of tampering.


Timestomping Detection

Timestomping -- modifying file timestamps to blend malicious files with legitimate system files -- is one of the most common anti-forensic techniques. It is also one of the most detectable, provided you know where to look.

Detection Rules

Rule What It Means
SI Created < FN Created SI timestamp was backdated -- definitive timestomping
SI Modified < FN Created Content timestamp predates file existence -- timestomped
Created > Modified Impossible without manipulation
SI timestamps at exact midnight Suspicious -- real files rarely have perfectly round timestamps
Sub-second precision mismatch between SI and FN Tool left traces in timestamp precision

The principle is simple: $FILE_NAME timestamps are set by the kernel and cannot be modified by standard APIs. $STANDARD_INFORMATION timestamps can be modified by tools like SetFileTime(). When SI claims the file was created in 2019 but FN says it was created yesterday, someone is lying -- and it is not the kernel.


Event Log Timeline

Windows event logs are the single richest timeline source for authentication, process execution, and lateral movement.

Critical Event IDs

Authentication:
  4624  Successful logon (check Type: 2=Interactive, 3=Network, 10=RDP)
  4625  Failed logon (brute force indicator)
  4648  Explicit credential logon (RunAs, PsExec)
  4672  Admin logon (special privileges assigned)

Process Execution:
  Sysmon 1   Process creation (command line, hashes, parent)
  4688       Process creation (enable command line auditing)

Persistence:
  7045  New service installed
  4698  Scheduled task created
  Sysmon 12/13/14  Registry modifications

Defence Evasion:
  1102  Security audit log cleared
  104   System log cleared
  4719  Audit policy changed

Parsing with EvtxECmd

EvtxECmd.exe -d C:\Windows\System32\winevt\Logs\ --csv output/ --csvf all_events.csv

The Analysis Methodology

A ten-step methodology for timeline analysis, from scoping through reporting:

  1. SCOPE -- define the incident timeframe from the initial alert or indicator
  2. COLLECT -- gather all artifact sources (MFT, event logs, prefetch, registry, USN journal)
  3. PARSE -- process each source with appropriate tools (MFTECmd, EvtxECmd, PECmd, log2timeline)
  4. NORMALISE -- convert all timestamps to UTC (this step is not optional)
  5. MERGE -- combine into a single sortable timeline
  6. PIVOT -- start from the known-bad event and expand outward
  7. CORRELATE -- link events across sources (e.g., 4624 logon -> prefetch -> MFT file creation -> 7045 service)
  8. GAPS -- identify missing time periods (log clearing? check Event IDs 1102/104)
  9. DOCUMENT -- annotate the timeline with findings
  10. REPORT -- extract key events for the incident narrative
  11. Pivot Points

    A pivot point is a known event that anchors the analysis. Start with what you know -- an alert timestamp, a known-malware execution time, an anomalous logon -- and expand outward.

    From the initial pivot, examine:
      +/- 5 minutes:  What else happened? File creates, process starts, logons
      +/- 1 hour:     Context -- was this part of a larger activity sequence?
      Backward:       How did the attacker arrive? (initial access, lateral movement)
      Forward:        What did they do next? (post-exploitation, exfiltration)

    High-Value Directory Filters

    When the timeline is overwhelming (and super timelines routinely contain millions of entries), filter by directories where attackers operate:

    Path Why
    C:\Windows\Temp\ Common tool staging area
    C:\Users\*\AppData\Local\Temp\ Per-user temp -- payload execution
    C:\Users\*\Downloads\ Initial payload delivery
    C:\ProgramData\ Attacker staging area (writable, often overlooked)
    C:\Windows\Prefetch\ Attackers sometimes delete prefetch to cover tracks
    C:\Windows\System32\Tasks\ Scheduled task persistence

    Tools Summary

    Tool Purpose
    Plaso / log2timeline Automated super timeline creation from disk images
    psort Filter and output Plaso timelines
    MFTECmd Parse $MFT and USN Journal
    EvtxECmd Parse Windows event logs
    PECmd Parse Prefetch files
    AmcacheParser Parse Amcache.hve
    AppCompatCacheParser Parse ShimCache from SYSTEM hive
    Timeline Explorer GUI for analysing parsed CSV timelines
    SOF-ELK Elasticsearch/Kibana VM for timeline visualisation

    All the parsers above are from Eric Zimmerman's tool suite and follow the same CSV output convention, making them straightforward to combine. Timeline Explorer, also from Zimmerman, handles the resulting CSV files with colour-coding and filtering that makes million-row timelines navigable.


    What's Next in the Series

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

- Advertisment -
Google search engine

Most Popular

Recent Comments