In this module
Detecting Timestomping Through MFT Analysis
Figure WF1.9 — Three independent timestomping detection methods with confidence ratings and a classification system. Method 1 ($SI/$FN comparison) is the primary detection. Method 2 (nanosecond precision) is a screening indicator. Method 3 (USN correlation) provides definitive confirmation when the USN Journal is available.
Method 1 — $SI versus $FN timestamp comparison
This is the primary timestomping detection method, introduced in WF1.3 and formalized here as a systematic check. The method compares $SI Created (Created0x10) against $FN Created (Created0x30) in MFTECmd output and flags discrepancies.
Temporal inversion is the strongest indicator: $SI Created is earlier than $FN Created. This is physically impossible under normal NTFS operation — both timestamps are set from the same system clock at the moment of file creation. If $SI Created shows June 2025 and $FN Created shows March 2026, the file was created in March 2026 (per $FN) and the $SI timestamp was backdated to June 2025 after creation. Temporal inversion has an extremely low false positive rate — the only legitimate cause is the NTFS tunnel cache (WF1.3), which produces inversions of seconds, not months.
Temporal gap is a moderate indicator: $SI Created and $FN Created differ by more than 5 seconds without a corresponding explanation. Under normal file creation, both timestamps are set within the same API call and differ by at most a few hundred nanoseconds (the time between the kernel setting $FN timestamps and the I/O manager setting $SI timestamps). A gap of seconds or minutes — particularly when $SI Created is later than $FN Created — may indicate that the $SI timestamp was set after creation by an application (not necessarily malicious — archive extraction tools, backup restore, file sync tools do this). A gap where $SI Created is earlier than $FN Created is a temporal inversion and is classified as the strong indicator above.
In Timeline Explorer, this comparison is performed by sorting on Created0x10 and Created0x30 and visually scanning for records where the two columns differ significantly. For large datasets, export to a script (Python or PowerShell) that calculates the difference between the two columns and flags records exceeding a threshold.
Method 2 — nanosecond precision analysis
NTFS timestamps have 100-nanosecond resolution. Files created naturally by Windows have Created timestamps with non-zero fractional seconds — the probability of a naturally occurring timestamp ending in exactly .0000000 is roughly 1 in 10 million. Timestomping tools that set timestamps via SetFileTime() or PowerShell's property setter typically specify timestamps to the second (.0000000) or millisecond (.1230000) — because the human operator specifies "June 15, 2025 09:00:00" without fractional seconds.
The detection method: scan MFTECmd output for $SI timestamps that end in .0000000 (zero fractional seconds) while surrounding files in the same directory have full nanosecond precision. A cluster of files with zero-fractional $SI Created timestamps in a directory where other files have natural precision is a moderate indicator of timestomping.
False positives for this method: archive extraction tools (7-Zip, WinRAR) set timestamps on extracted files to match the original's timestamp, often at second precision. Backup restore operations may produce second-precision timestamps. File copies from non-NTFS filesystems (FAT32, which has 2-second precision, or ext4) produce lower-precision timestamps on the NTFS destination. These false positives are distinguishable from timestomping by context — archive-extracted files are in an extraction directory, backup-restored files have corresponding backup logs, and cross-filesystem copies have corresponding USB or network mount evidence.
Method 2 is a screening indicator, not a conclusive finding. Use it to identify candidates for deeper analysis with Methods 1 and 3.
Method 3 — USN Journal correlation
The most definitive timestomping detection method, requiring an intact USN Journal (covered in detail in WF2). The principle: when SetFileTime() modifies $SI timestamps, NTFS records the modification as a USN Journal entry with the reason code BASIC_INFO_CHANGE. The USN entry's timestamp is the real time of the modification — not the fake time that was written to $SI.
The detection workflow: for a file suspected of timestomping (identified by Method 1 or Method 2), search the USN Journal for entries matching the file's MFT reference number with reason code BASIC_INFO_CHANGE. If such an entry exists at a time different from the $SI timestamps, it confirms that the $SI timestamps were modified at the USN entry's time. The USN entry provides the real time of the timestomping operation.
Additionally, the $SI attribute's USN field (offset 0x44 in the $SI content, as described in WF1.2) contains the USN offset that links directly to the most recent USN Journal entry for this record. If the USN Journal entry at that offset shows BASIC_INFO_CHANGE without corresponding data changes, the last modification to the $SI attribute was a timestamp change — strong evidence of timestomping.
Method 3 has the highest confidence but requires the USN Journal to be intact. Sophisticated attackers who perform timestomping may also truncate the USN Journal (fsutil usn deletejournal /d C:) to destroy this evidence. USN Journal deletion is itself detectable (WF2) and is a significant anti-forensic indicator.
You are examining 15 executables dropped by a ransomware actor in C:\ProgramData\Updates\. Method 1 analysis shows 12 of the 15 files have temporal inversions (SI Created 6-12 months before $FN Created). Method 2 shows all 15 files have zero fractional seconds on $SI Created. The remaining 3 files without temporal inversion have $SI Created within 2 seconds of $FN Created but still show zero fractional seconds.
For the 3 files without temporal inversion: their $SI Created timestamps are close to $FN Created (within 2 seconds) and both show the same date in March 2026 (during the intrusion window). However, the zero fractional seconds on $SI Created — while $FN Created has full nanosecond precision — suggests their $SI timestamps were also set by the timestomping tool, just set to approximately the correct time rather than backdated.
Your classification: (A) Classify only the 12 files with temporal inversions as timestomped. Classify the 3 without inversion as "not timestomped" since the dates are approximately correct. (B) Classify the 12 with temporal inversions as "confirmed timestomped." Classify the 3 without inversion as "probable timestomped" — the zero fractional seconds indicate the timestamps were set by a tool even though the chosen dates were close to the actual creation time. The attacker may have timestomped all 15 but only backdated 12.
The correct classification is B. The zero fractional seconds on all 15 files, combined with the confirmed timestomping on 12, strongly suggests the attacker ran a timestomping command on all 15 files. For 12 files, the chosen date was months in the past. For 3 files, the chosen date happened to be close to the real creation time — possibly the attacker used the current date for some files and a past date for others. The precision anomaly (zero fractional) on the 3 files is sufficient for "probable" classification when combined with the confirmed timestomping pattern on the other 12 files in the same directory.
Systematic detection workflow
Apply the three methods in order for every investigation:
Step 1 — Screen with Method 2. Scan the full MFTECmd output for $SI Created timestamps with zero fractional seconds. This is fast (a simple string filter) and identifies all timestomping candidates plus false positives from archive extraction and backup restore. Flag the candidates.
Step 2 — Confirm with Method 1. For each candidate from Step 1, compare $SI Created against $FN Created. Temporal inversions are confirmed timestomping. Large temporal gaps (more than 5 seconds) without explanation are probable timestomping. Small gaps with zero fractional seconds are possible timestomping.
Step 3 — Corroborate with Method 3 (if USN Journal available). For confirmed and probable findings, search the USN Journal for BASIC_INFO_CHANGE entries matching the file's MFT reference. USN entries at a time different from the $SI timestamps provide definitive confirmation and the real timestamp.
Step 4 — Classify and document. Assign each finding a classification: confirmed (Methods 1+3 positive), probable (Method 1 positive), possible (Method 2 positive only), or unlikely (no indicators). Document the classification, the evidence supporting it, and the real timestamp (if recoverable from $FN or USN Journal).
This workflow takes 15-30 minutes for a focused set of evidence files and should be performed routinely on all files central to your investigative findings. The classification system ensures you report timestomping findings with appropriate confidence rather than overstating or understating the evidence.
Try it: Timestomping detection on lab evidence
Using the lab evidence provided with this module (the INC-NE-2026-1022 ransomware scenario evidence set):
1. Load the MFTECmd output in Timeline Explorer. 2. Filter for files in the attacker's known staging directories (C:\ProgramData\Updates\, C:\Windows\Temp\, or any temporary directories identified in the scenario briefing). 3. Apply Method 2: examine the Created0x10 column for zero fractional seconds. Flag all candidates. 4. Apply Method 1: for each candidate, compare Created0x10 against Created0x30. Identify temporal inversions and temporal gaps. 5. Classify each flagged file: confirmed, probable, possible, or unlikely timestomping. 6. For confirmed/probable findings, determine the real creation time from $FN Created. 7. Write a summary: "N files in [directory] show [confirmed/probable] timestomping. $SI Created timestamps were set to [date range], but $FN Created timestamps show actual creation during [investigation window]. The attacker backdated the timestamps by [N months/days] to blend with [description of surrounding files]."
This exercise practices the complete timestomping detection workflow on realistic evidence.
Reporting timestomping findings
When including timestomping evidence in a forensic report, document five elements:
The detection method. Which of the three methods identified the timestomping and what specific indicator triggered the detection. "The file's $STANDARD_INFORMATION Created timestamp (2025-06-15T09:00:00.0000000) precedes its $FILE_NAME Created timestamp (2026-03-18T02:14:33.7654321) — a temporal inversion that indicates $SI timestamp modification."
The fake timestamp. The $SI timestamp that was set by the attacker. "The $SI Created timestamp shows June 15, 2025."
The real timestamp. The $FN timestamp and/or USN Journal timestamp that reveals the actual time. "The $FN Created timestamp shows March 18, 2026 at 02:14:33 UTC, which falls within the known intrusion window."
The classification. Confirmed, probable, or possible, with the evidence basis. "This finding is classified as confirmed timestomping based on temporal inversion ($SI Created 9 months before $FN Created) corroborated by USN Journal entry showing $SI modification at 02:15:01 on March 18, 2026."
The forensic significance. What the timestomping means for the investigation. "The attacker backdated 12 executables to June 2025 to avoid detection during timeline analysis. The real deployment time (March 18, 02:14–02:17) aligns with the lateral movement window identified from authentication events."
You've built the foundations of artifact-level forensic analysis.
WF0 gave you the taxonomy, NTFS architecture, and the five-step methodology. WF1 took you inside the MFT at the binary level — every attribute, every timestamp, every edge case. From here, every artifact category gets the same raw-first treatment.
- WF2–WF10: every major Windows artifact decoded at binary level — USN Journal, Prefetch, Amcache, Shimcache, ShellBags, LNK, Jump Lists, SRUM, Event Logs, and the Registry hives
- INC-NE-2026-0915 (WF13) — Insider data exfiltration capstone. Work the complete investigation from USB history to OneDrive exfiltration evidence
- INC-NE-2026-1022 (WF14) — Ransomware capstone. Three-host triage (FIN01 → IT03 → FS01) across the 72-hour attack chain
- The lab pack — 25+ realistic evidence files in 10 formats, simulated KAPE triage pre-populated, both capstones deployable to your own VM
- Anti-forensic detection methodology — defeat timestomping, log clearing, and Prefetch deletion with cross-artifact correlation
Cancel anytime