Module 2 v2
Module 2 v2
Module 2 v2
Forensics
Module 2: The Windows NTFS
Filesystem
Module 2: The Windows NTFS Filesystem
• Learning Objectives
– Understanding NTFS Internals
– Understanding the Master File Table (MFT)
– Using the Sleuth Kit to Analyze the MFT
– Using the Sleuth Kit to Recover Deleted File Data from NTFS
NTFS Internals and the Master
File Table (MFT)
NTFS Internals and the Master File Table (MFT)
The “New Technologies File System” (NTFS) is the default filesystem for
Microsoft Windows, from Windows NT, through Windows 2000, XP, all
versions of Server, and up to the current day. In this module we will cover:
• NTFS Concepts
• NTFS Analysis
• NTFS Data Structures
Introduction to NTFS
• Everything Is a File
– The first sectors of the volume contain the bootable code (whether using BIOS or
the “Unified Extensible Firmware Interface” (UEFI) that replaces it in Windows 10
and beyond.
– Otherwise the entire filesystem contains data units that can be allocated to any file,
including the metadata files: notably the Master File Table ($MFT) and its copies.
• The MFT is the heart of NTFS, as it contains all the information about
files and directories in one place—unlike inodes in Unix/Linux which are
not centrally grouped.
– Every file/directory has at least one entry in the table.
– They are 1024B (1KB) with the first 42 bytes having a very defined structure.
MFT Concepts
• The MFT is itself a file too, and it has an entry for itself: “$MFT” (entry
“0”).
• Its starting location is described in the boot sector of the NFTS Volume,
and so the whole thing must be parsed from there.
• The first 16 entries are reserved for filesystem metadata files.
– These all begin with “$” and are capitalized.
o 0: $MFT—the entry for itself
o 1: $MFTMirr—the entry for a backup copy
o 2: $LogFile—the transaction journal
o 3: $Volume—volume information
o etc.
MFT Attributes
• All attribute types start with a “$” and are in all capital letters.
• Not all exist for every attribute, but there are some common standard
types, including:
– 16: $STANDARD_INFORMATION—flags, CAM times, ownership, etc.
– 48: $FILE_NAME—in Unicode and also CAM times
– 64: $OBJECT_ID— a 16-bit unique identifier for the file or directory
– 128: $DATA—file contents
Encrypted Attributes