If you can see this check that

  • Javascript is enabled

Filesystem Structure and Metadata - NTFS

Objectives

In this lab you will manually verify information related to given partition and explore file system metadata. In the first instance you will examine Volume Boot Record of the NTFS file system. Secondly, you will examine $MFT file and the file records contained within MFT.

To reset all the check buttons from a previous attempt click here

Question 1 Structure Analysis

Using the mmls command analyse /images/diskimg1.dd. Extract the sector offset information for the three partitions shown.

Metadata slotStart sector offset
000:000
000:001
001:000
Tests: Ready
 
00:00 start offset UNTESTED
00:01 start offset UNTESTED
01:00 start offset UNTESTED

Question 2 NTFS Volume Boot Record

Using the dd and xxd commands open the first sector of the NTFS partition and complete the following table. Refer to the NTFS Cheat Sheet located in Moodle to find and decode information from VBR.

VBR FieldValue
OEM (ASCII)
Bytes per Sector
Sectors per Cluster
Reserved Sectors
Sectors per Track
Heads
Hidden Sectors
Total Sectors
Logical Cluster of $MFT
Logical Cluster of $MFTMirr
Volume Serial Number (Native Encoding)
Tests: Ready
 
OEM String UNTESTED
Bytes per sector UNTESTED
Sectors per cluster UNTESTED
Reserved Sectors UNTESTED
Sectors per Track UNTESTED
Number of Heads UNTESTED
Hidden Sectors UNTESTED
Total Sectors UNTESTED
$MFT first cluster UNTESTED
$MFTMirr first cluster UNTESTED
VSN Native Endian UNTESTED

Question 3 Finding $MFT

NTFS was designed for reliability, security, and support for large storage devices. Scalability is provided by the use of generic data structures that wrap around data structures with specific content. This is a scalable design because the internal data structure can change over time as new demands are placed on the file system, and the general wrapper can remain constant. One example of a generic wrapper is that every byte of data in an NTFS file system is allocated to a file.

The Master File Table (MFT) is the heart of NTFS because it contains the information about all files and directories. Every file and directory has at least one entry in the table, and the entries by themselves are very simple. They are 1 KB in size, but only the first 56 bytes have a defined purpose. The remaining bytes store attributes, which are small data structures that have a very specific purpose.

To verify our information regarding the $MFT in the VBR we can go to the sector/cluster in question and determine if the MFT record stored there is the MFT. Using the dd command open first sectors of the $MFT.

What physical sector is the start of the $MFT file?

Verify that you are indeed at the correct sector. Reproduced below are the values that should be present. The one of note is the Unicode text $MFT that is located at about the halfway point in the sector.

Image Format
Figure 1: $MFT record
Tests: Ready
 
Physical sector of $MFT UNTESTED

Question 4 Decoding MFT record

The record we will attempt to decode is located at offset 0x14c00 (in bytes) within $MFT file.

What is the physical sector of the record at offset 0x14c00 within $MFT?

Use dd command to open the physical sector.

Tests: Ready
 
Physical sector of the record UNTESTED

The core structure of each record is based on the following information and attributes that are stored for each file:

Decode the following information from the header of the record:

Record FieldValue
Record signature (ASCII)
1st atribute offset
Flags - Record State
Used size of the record
Allocated size of the record
MFT record number - inode
Tests: Ready
 
File signature UNTESTED
Attribute offset UNTESTED
Flag UNTESTED
Used size UNTESTED
Allocated size UNTESTED
inode number UNTESTED

Identify the offsets of each of the main attributes (the first has been filled in to assist).

Attribute (HEX)Type (ASCII)Attribute size in bytesOffset from the start
of MFT record
0x10000000$STANDARD_INFORMATION7256
Tests: Ready
 
Attribute 2 UNTESTED
Attribute 2 type UNTESTED
Attribute 2 size UNTESTED
Offset Within MFT UNTESTED
Attribute 3 UNTESTED
Attribute 3 type UNTESTED
Attribute 3 size UNTESTED
Offset Within MFT UNTESTED
Attribute 4 UNTESTED
Attribute 4 type UNTESTED
Attribute 4 size UNTESTED
Offset Within MFT UNTESTED

Question 5 Attribute Data

Decode the following information from the $STANDARD_INFORMATION attribute:

Note: use DCode tool for time and date: http://www.digital-detective.net/digital-forensicsoftware/free-tools/

Note: Use date and time format: (MM/dd/yyyy HH:mm:ss) 10/18/2024 00:00:00

Creation Time and Date
Last Modified Time and Date
MFT Record Modified Time and Date
Last Accessed Time and Date
DOS Attributes
Tests: Ready
 
Creation Date and Time UNTESTED
Modified Date and Time UNTESTED
Changed Date and Time UNTESTED
Accessed Date and Time UNTESTED
File Attributes in HEX UNTESTED

Decode the following information from the $File_Name attribute:

Creation Time and Date
Last Modified Time and Date
MFT Record Modified Time and Date
Last Accessed Time and Date
Name Type
File name with extension
Tests: Ready
 
Creation Date and Time UNTESTED
Modiefied Date and Time UNTESTED
Changed Date and Time UNTESTED
Accessed Date and Time UNTESTED
Name type UNTESTED
File name UNTESTED

Finally decode the data run from the $DATA attribute.

Note: Refer to "Run List Example" document on Moodle

Run list in HEX
Starting Cluster
Number of Clusters
File Size in bytes
Allocated Size in bytes
Tests: Ready
 
Run List UNTESTED
Starting Cluster UNTESTED
Number of Clusters UNTESTED
File Size UNTESTED
File Size UNTESTED

Question 6 NTFS with Tools

So far we have explored NTFS file system with hex editor. Now we can verify our findings with the appropriate tool.

To verify the content of the VBR, use the fsstat command to display the file system information. It should be the same as information in question 2.

In this NTFS partition, what is the cluster size in bytes?
Size:

Tests: Ready
 
Cluster size UNTESTED

The NTFS file system views each file (or directory) as a set of file attributes. Elements such as the file's name, its security information, and even its data, are all file attributes. Each attribute is identified by an attribute type code and, optionally, an attribute name.

What is the attribute type code of the $FILE_NAME attribute?

Tests: Ready
 
$FILE_NAME attribute UNTESTED

What is the first disk block (not partition block) of the MFT and the MFT Mirror.
MFT:
MFT Mirror:

Tests: Ready
 
MFT Offset UNTESTED
Mirror Offset UNTESTED

Use fls to see the files in the NTFS partition, and obtain the inode number for $Boot. Then use that in the istat command to discover the allocated size in bytes of the $Boot file.
Size:

Tests: Ready
 
$Boot Size UNTESTED

What is the first and last cluster number allocated to this file? This information is often found on the last line of the istat output as a list of numbers.
First:
Last:

Tests: Ready
 
First cluster UNTESTED
Last cluster UNTESTED

What is so special about $BOOT file?

Tests: Ready
 
$Boot is special UNTESTED

In the NTFS partition there are a number of directories. In the docs directory there is a file called fatcat.jpg. What is its inode number in the format 00-000-0?
Inode id:

Tests: Ready
 
Correct inode UNTESTED

What is the size in bytes of the space allocated to store the file fatcat.jpg?
Size:

Tests: Ready
 
fatcat Size UNTESTED

How many clusters are allocated to this file?
Total:

Tests: Ready
 
Number of clusters UNTESTED

What is the first and last cluster number allocated to this file?
First:
Last:

Tests: Ready
 
First cluster UNTESTED
Last cluster UNTESTED

Centos 7 introPaths | BasicShell | Search
Linux tutorialsintro1 | intro2 | wildcard | permission | pipe | vi | essential | admin | net | SELinux1 | SELinux2 | fwall | DNS | diag | Apache1 | Apache2 | log | Mail
Caine 10.0Essentials | Basic | Search | Acquisition | SysIntro | grep | MBR | GPT | FAT | NTFS | FRMeta | FRTools | Browser | Mock Exam
Caine 13.0Essentials | Basic | Search | Acquisition | SysIntro | grep | MBR | GPT | FAT | NTFS | FRMeta | FRTools | Browser | Registry | Mock Exam
Kali 2020-41a | 1b | 1c | 2 | 3 | 4a | 4b | 5 | 6 | 7 | 8a | 8b | 9 | 10
Kali 2024-41a | 1b | 1c | 2 | 3 | 4a | 4b | 5 | 6 | 7 | 8a | 8b | 9 | 10
UsefulPrivacy Policy | Terms and Conditions

Linuxzoo created by Gordon Russell.
@ Copyright 2004-2025 Edinburgh Napier University