Lecture 11: The FAT, VFAT, and NTFS Filesystems

31
Lecture 11: The FAT, VFAT, and NTFS Filesystems 6/19/2003 CSCE 590 Summer 2003

description

Lecture 11: The FAT, VFAT, and NTFS Filesystems. 6/19/2003 CSCE 590 Summer 2003. NTFS Basics. The Windows NT file system is NTFS NTFS is designed for high performance on very large hard disks (read, write and file-system recovery) Formatting a volume with the NTFS file system results in: - PowerPoint PPT Presentation

Transcript of Lecture 11: The FAT, VFAT, and NTFS Filesystems

Page 1: Lecture 11:  The FAT, VFAT, and NTFS Filesystems

Lecture 11: The FAT, VFAT, and NTFS Filesystems

6/19/2003

CSCE 590

Summer 2003

Page 2: Lecture 11:  The FAT, VFAT, and NTFS Filesystems

NTFS Basics

• The Windows NT file system is NTFS• NTFS is designed for high performance on very large

hard disks (read, write and file-system recovery) • Formatting a volume with the NTFS file system results in:

– Master Files Table (MFT)– System Files

• Formatted NTFS Volume

Partition Boot

Sector

Master File Table

System Files

File Area

Page 3: Lecture 11:  The FAT, VFAT, and NTFS Filesystems

NTFS

• Includes:– Security features– Data access control – permissions on files and folders– Folders can be shared– Individual compression of files and folders

• New features– Encryption– Disk quotas– Link tracking – tracks broken and moved shortcut

links– Alternate Data Streams used more heavily

Page 4: Lecture 11:  The FAT, VFAT, and NTFS Filesystems

NTFS New Features (cont.)

– Sparse files – files with large sections of empty data – compresses it

– Reparse points – allows a drive to be mounted as a folder on another drive (NTFS version 5)

– NTFS junctions – folders on one drive appear as folders on another

– Hierarchical Storage Management – infrequently accessed files stored in offline storage, but still appears part of file system

Page 5: Lecture 11:  The FAT, VFAT, and NTFS Filesystems

All the World’s a File

• Basically everything on the volume is a file– Even file system metadata (info about file system itself)

– Can see info about hidden files on NTFS (not NTFS5)• dir /ah $MFT

• Everything in a file is an attribute:– Data attribute

– Security attribute

– File name attribute

Page 6: Lecture 11:  The FAT, VFAT, and NTFS Filesystems

NTFS Partition Boot Sector

• BIOS Parameter Block– Information on volume layout similar to FAT– File system structures

• Code– How to find code that loads operating system– On NT points to and loads NTLDR

• Duplicate boot sector located in the logical middle of the volume

Page 7: Lecture 11:  The FAT, VFAT, and NTFS Filesystems

NTFS System Files

• First 16 records in MFT contain metadata files:– 0: Master File Table ($MFT) – index of files

– 1: Master File Table2 – a mirror of first 4 records ($MFTMIRR)

– 2: Log File – list of transaction steps for NTFS recovery ($LOGFILE)

– 3: Volume – volume name, NTFS version, serial number, dirty flag ($VOLUME)

– 4: Attribute Definition Table – table of attribute names, numbers, and descriptions ($ATTRDEF)

Page 8: Lecture 11:  The FAT, VFAT, and NTFS Filesystems

NTFS System Files (2)

– 5: Root Filename Index (.)

– 6: Cluster Bitmap – bitmap of clusters in use ($BITMAP)

– 7: Partition Boot Sector – if bootable, bootstrap code ($BOOT)

– 8: Bad Cluster File – locations of bad clusters ($BADCLUS)

– 9: Security File – security descriptors for all files in volume ($SECURE)

• Used to be $QUOTA in NT4

Page 9: Lecture 11:  The FAT, VFAT, and NTFS Filesystems

NTFS System Files (3)

– 10: Upcase Table – lowercase to Unicode uppercase ($UPCASE)

– 11: Extension File – optional extensions ($EXTEND)

• Quotas ($QUOTA)

• Reparse point data ($Reparse)

• Object identifiers ($ObjId)

– 12-15: are reserved for future use

Page 10: Lecture 11:  The FAT, VFAT, and NTFS Filesystems

$BITMAP File

• Maps clusters in use and free clusters

• One bit in bitmap for each cluster in filesystem• 1 = in use• 0 = available

• Kind of like a FAT

Page 11: Lecture 11:  The FAT, VFAT, and NTFS Filesystems

NTFS Master File Table

• MFT • A database that contains info on every file in an

NTFS volume• Small files are stored entirely in MFT

(< 1500 bytes)• Large files are referred to with pointers• Small directories are stored in the MFT• Large directories point to clusters where their

directory entries are stored

Page 12: Lecture 11:  The FAT, VFAT, and NTFS Filesystems

NTFS File Attributes

• NTFS file is a collection of attribute/value pairs• Attributes residing entirely in MFT are said to be

resident attributes• $FILENAME - File name in Unicode

– Short (8.3, case insensitive)

– Long (255 Unicode characters)

– Preserves case, but only distinguishes based on case for POSIX applications

• Allocation flag– 0 = marked for deletion, unallocated

Page 13: Lecture 11:  The FAT, VFAT, and NTFS Filesystems

NTFS File Attributes (2)

• $STANDARD_INFORMATION– MAC timestamps

– Standard attributes (read only, archive, …)

– Hard link count

– These attributes are always resident

• Attribute List – location of nonresident attributes stored in cluster elsewhere on the volume– Represented as array of

[logical block #, physical block #, # of blocks]

Page 14: Lecture 11:  The FAT, VFAT, and NTFS Filesystems

NTFS File Attributes (3)

• Security Descriptor – owner and access rights

• $DATA – small files stored here– Has one unnamed data attribute– Can have multiple named data attributes (think

ADS)– Too much data for MFT, addresses of clusters

where data is actually stored is placed here

Page 15: Lecture 11:  The FAT, VFAT, and NTFS Filesystems

File Attribute Definitions

• Object ID – a volume-unique file identifier for distributed link tracking service

• Logged Tool Stream – like ADS, but changes are logged to NTFS Log File like metadata changes. (for EFS)

• Reparse Point – used for volume mount points

Page 16: Lecture 11:  The FAT, VFAT, and NTFS Filesystems

Folder/Directory Implementation

• Index Root – index entries for folder contents• Index Allocation – too many index entries in a

folder for the MFT, store remainder in index buffers in clusters and record cluster locations here

• Support for links (a file can be referenced by entries in multiple folders)

• Stored as binary trees, not lists for performance

Page 17: Lecture 11:  The FAT, VFAT, and NTFS Filesystems

Allocating a File

1. Bitmap modified to mark clusters as allocated

2. Create an allocated MFT record3. Create index entry in parent folder’s MFT

record or index buffer4. For non-resident file: create cluster extent

entries in file’s MFT record• Extents are contiguous chunks of disk blocks

Page 18: Lecture 11:  The FAT, VFAT, and NTFS Filesystems

Deleting a File

1. Cluster references in $BITMAP file zeroed

2. MFT allocation flag zeroed – marked for deletion

3. Index entry deleted, all entries below it are moved up (except if it is the last entry)

• NTFS overwrites MFT entries marked for deletion before creating new ones

• Non-resident attributes of a file may still be found, even if MFT entry is deleted

Page 19: Lecture 11:  The FAT, VFAT, and NTFS Filesystems

$LOGFILE

• Keep track of filesystem transactions to enable recovery

• Transactions: operations that change file system data or the volume’s directory structure

• Keeps track of completion of steps in file deletion or creation – pick up where you left off, etc

Page 20: Lecture 11:  The FAT, VFAT, and NTFS Filesystems

Information in $LOGFILE

• Index entries from folders (name, MAC times)

• Copy of MFT record (all begin with word ‘File’ followed by hex character “2A”

• Link file headers• Index buffers (begin with “INDX”)• A good way to find file names that no

longer exist elsewhere

Page 21: Lecture 11:  The FAT, VFAT, and NTFS Filesystems

File and Folder PermissionsSpecial Permissions Full

Control

Modify Read &

Execute

List Folder

Contents

Read Write

Traverse Folder/Execute File X X X X

List Folder/Read Data X X X X X

Read Attributes X X X X X

Read Extended Attributes X X X X X

Create Files/Write Data X X X

Create Folders/Append Data X X X

Write Attributes X X X

Write Extended Attributes X X X

Delete Subfolders/Files X

Delete X X

Read Permissions X X X X X X

Change Permissions X

Take Ownership X

Synchronize X X X X X X

Page 22: Lecture 11:  The FAT, VFAT, and NTFS Filesystems

NTFS Compression

• Individual files, entire folders, or volumes• Can be read/written by any Windows application

without 3rd party compression utilities• Compression filter driver in NTFS automatically

compresses/decompresses in real-time when file is used

• Data stream contains info on whether any buffer in the stream is compressed by gap of empty space following compressed section

Page 23: Lecture 11:  The FAT, VFAT, and NTFS Filesystems

Encrypting File System

• EFS – symmetric key encryption + public key technology.

• EFS users are issued a digital certificate with public key/private key pair

• Uses logged on user’s keys

• Real-time automatic encryption/decryption when user works with encrypted files

Page 24: Lecture 11:  The FAT, VFAT, and NTFS Filesystems

Sparse Files• Files with large sections of empty data –

compresses it• Large sections of zeroes are not allocated

spacehttp://www.ntfs.com/ntfs-sparse.htm

Page 25: Lecture 11:  The FAT, VFAT, and NTFS Filesystems

Recovery Deleted NTFS Fileshttp://www.ntfs.com/disk-scan.htm

• The www.ntfs.com example uses these parameters:– Total Sectors 610406

– Cluster size 512 bytes

– One Sector per Cluster

– MFT starts from offset 0x4000, non-fragmented

– MFT record size 1024 bytes

– MFT Size 1968 records

Page 26: Lecture 11:  The FAT, VFAT, and NTFS Filesystems

Example

• Scan all 1968 MFT for flag indicating file marked for deletion

• MFT record number 57 contains our recently deleted file "My Presentation.ppt“

• MFT entries have predefined structure• Begins with standard “FILE” record header• 8 fields into record, in byte 23 is Flag field

• 00 = marked deleted• 01 = in use

Page 27: Lecture 11:  The FAT, VFAT, and NTFS Filesystems

• Offset 0 1 2 3 4 5 6 7 8 9 A B C D E F 00012400 46 49 4C 45 2A 00 03 00 9C 74 21 03 00 00 00 00 FILE*...?t!..... 00012410 47 00 02 00 30 00 00 00 D8 01 00 00 00 04 00 00 G...0...O....... 00012420 00 00 00 00 00 00 00 00 05 00 03 00 00 00 00 00 ................ 00012430 10 00 00 00 60 00 00 00 00 00 00 00 00 00 00 00 ....`........... 00012440 48 00 00 00 18 00 00 00 20 53 DD A3 18 F1 C1 01 H....... SY?.nA. 00012450 00 30 2B D8 48 E9 C0 01 C0 BF 20 A0 18 F1 C1 01 .0+OHeA.A?  .nA. 00012460 20 53 DD A3 18 F1 C1 01 20 00 00 00 00 00 00 00 SY?.nA. ....... 00012470 00 00 00 00 00 00 00 00 00 00 00 00 02 01 00 00 ................ 00012480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00012490 30 00 00 00 78 00 00 00 00 00 00 00 00 00 03 00 0...x........... 000124A0 5A 00 00 00 18 00 01 00 05 00 00 00 00 00 05 00 Z............... 000124B0 20 53 DD A3 18 F1 C1 01 20 53 DD A3 18 F1 C1 01 SY?.nA. SY?.nA. 000124C0 20 53 DD A3 18 F1 C1 01 20 53 DD A3 18 F1 C1 01 SY?.nA. SY?.nA. 000124D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000124E0 20 00 00 00 00 00 00 00 0C 02 4D 00 59 00 50 00 .........M.Y.P. 000124F0 52 00 45 00 53 00 7E 00 31 00 2E 00 50 00 50 00 R.E.S.~.1...P.P. 00012500 54 00 69 00 6F 00 6E 00 30 00 00 00 80 00 00 00 T.i.o.n.0...€... 00012510 00 00 00 00 00 00 02 00 68 00 00 00 18 00 01 00 ........h....... 00012520 05 00 00 00 00 00 05 00 20 53 DD A3 18 F1 C1 01 ........ SY?.nA. 00012530 20 53 DD A3 18 F1 C1 01 20 53 DD A3 18 F1 C1 01 SY?.nA. SY?.nA. 00012540 20 53 DD A3 18 F1 C1 01 00 00 00 00 00 00 00 00 SY?.nA......... 00012550 00 00 00 00 00 00 00 00 20 00 00 00 00 00 00 00 ........ ....... 00012560 13 01 4D 00 79 00 20 00 50 00 72 00 65 00 73 00 ..M.y. .P.r.e.s. 00012570 65 00 6E 00 74 00 61 00 74 00 69 00 6F 00 6E 00 e.n.t.a.t.i.o.n. 00012580 2E 00 70 00 70 00 74 00 80 00 00 00 48 00 00 00 ..p.p.t.€...H... 00012590 01 00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 ................ 000125A0 6D 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 m.......@....... 000125B0 00 DC 00 00 00 00 00 00 00 DC 00 00 00 00 00 00 .U.......U...... 000125C0 00 DC 00 00 00 00 00 00 31 6E EB C4 04 00 00 00 .U......1neA.... 000125D0 FF FF FF FF 82 79 47 11 00 00 00 00 00 00 00 00 yyyy‚yG......... 000125E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000125F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 ................ ............... 00012600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

Page 28: Lecture 11:  The FAT, VFAT, and NTFS Filesystems

Example (2)

• Can see Flag set to deleted (in red)• See short and long filenames (in blue)• Offset 0x188, non-resident DATA attribute

(green), interested in:– Compression unit size (0 = non-compressed)

– Allocated size of attribute: (0xDC00 = 56320 bytes)

– Real size of attribute: (0xDC00 = 56320 bytes)

– Data Runs

Page 29: Lecture 11:  The FAT, VFAT, and NTFS Filesystems

Example – The Data Runs

• We find the values: 31 6E EB C4 04 00– 0x31

• 0x3 = 3 bytes allocated to hold the value of the start cluster offset

• 0x1 = 1 byte allocated to hold the value of the length of the data run = 0x6E

• 0x6E = 110 clusters• 0xEBC404 = start cluster offset = 31255• 0x00 = end of data runs (not fragmented)

Page 30: Lecture 11:  The FAT, VFAT, and NTFS Filesystems

Example – Getting the Data

• Cluster size = 512 bytes• 110 clusters * 512 bytes = 56320 bytes

= Real/Allocated size attributes• Since we have 512 byte clusters, offset

=512 * 312555 = 160028160 = 0x0989D600

• Or use dd# dd if=./ntfs.img bs=51200 count=110 skip=312555 | nc \> –w 3 forensic.net 31337

Page 31: Lecture 11:  The FAT, VFAT, and NTFS Filesystems

References

• http://www.ntfs.com/