Studienbrief 6 Analyse des FAT-Dateisystems Seite 83

Ähnliche Dokumente
GJU IT-forensics course

Computerforensik. Wintersemester 2010/2011

Computerforensik. Wintersemester 2011/2012

Vorlesung Computerforensik. Kapitel 5: Dateisystemforensik und FAT-Analyse

Studienbrief 7 Analyse des NTFS-Dateisystems Seite 113

Computerforensik. Wintersemester 2010/2011

Inhalt. Allgemeines zu Dateisystemen. Linux-Dateisysteme am Beispiel von ext2/ext3. Microsoft-Dateisysteme FAT NTFS

Dateisystem: Einführung

Dateisystem: Einführung

Computerforensik. Wintersemester 2010/2011

Einführung Leistungsmerkmale Aufbau am Beispiel FAT16. Das Filesystem FAT. Peter Schmid. Hochschule für Technik Zürich Studiengang Informatik

Computerforensik. Wintersemester 2009/2010

Betriebssysteme K_Kap11B: Files, Filesysteme Datenstrukturen

Systeme I: Betriebssysteme Übungsblatt 3

Studienbrief 5 Dateisystemforensik Seite 71

Übersicht. UNIX-Dateisystem (ext2) Super-User unter Linux werden MSDOS: FAT16 und FAT32

6.2 FAT32 Dateisystem

Einführung in Dateisysteme

Kap. 8: Dateisysteme (E3 EXT2 Dateisystem) 1

Betriebssysteme Teil 16: Dateisysteme (Beispiele)

Aufbau des FAT32 Dateisystems

Dateisystem: Einführung

Dateisystem: Einführung

Jeder Datenträger besitzt einen I-Node-Array. Jede Datei auf dem Datenträger hat einen I-Node-Eintrag.

Halt! Wo bin ich überhaupt?... C:\

8. Massenspeicher und Dateisysteme

altec ComputerSysteme Entwicklungsdokumentation Image-Dateien Datum: Oktober 12, 2010 Autor: René Bellmer altec ComputerSysteme GmbH

Betriebssysteme 1. Thomas Kolarz. Folie 1

IT Sicherheit: IT-Forensik

MMC/SD FAT 16 mit AVR und C

Digital Forensics. Slackspace DI Robert Jankovics DI Martin Mulazzani

Lern- und Arbeitsauftrag <LA_305_1716_PaperDisk.doc>

Dateisysteme. Erweiterte Anforderungen an Speicher

IT Sicherheit: IT-Forensik

DATEIVERWALTUNG INHALTSVERZEICHNIS. STANZL Martin 4. HB/a. Verwendete Literatur: Konzepte der Betriebssysteme (Seiten 91-97)

Laufwerke unter Linux - Festplatten - - USB Sticks - September 2010 Oliver Werner Linuxgrundlagen 1

Implementierung eines Dateisystems für Java-basierte eingebettete Systeme

Übersicht. Boot Prozess, Arten von Festplatten, Standards

Einführung FAT - File Allocation Table NTFS - New Technology Filesystem HFS - Hierachical Filesystem ext - Extended Filesystem Zusammenfassung

5.2 Analyse des File Slack

Partitionieren und Formatieren

6.1.5 Verzeichnisdateien

Systeme 1. Kapitel 3 Dateisysteme WS 2009/10 1

LNM Dateikonverter Version V2.5

Studienbrief 4 Datenträgerforensik Seite 45

Digitale Forensik. Teile 7 und 8: Dateisystemanalyse und (kommerzielle) Tools. Schulung Bundespolizeiakademie Juli 2007

Arbeiten mit der Shell Teil 1

Digitale Forensik Schulung Bundespolizeiakademie März 2009

Diplom-Ingenieur (BA) für Informationstechnik Ronny Bodach 2011 Eyewitness Forensic Software

BACKUP Datensicherung unter Linux

Notiz. 1 Grundlagen. 1.1 Festplatten Know How. Gerhard Brünner. Thema Datum Seite File Allocation Table von 34

Optimierung von Windows für SSD Inhalt

Digitale Forensik Schulung Bundespolizeiakademie März 2009

Datenstrukturen bei Datenübernahme

Indexes. I. Figures. Indexes Page 209

Master-Boot-Record sichern

2. Darstellung von Information im Computer

Dateisystem 2, RegEx, Manpages

Smart GPS Sync. Bedienungsanleitung. Smart GPS Sync. Bedienungsanleitung

PicAxe M2 - Das Speicherkompendium. Ausgabe Matthias Heuschele / SSE

Bericht erstellt von: Version: 1.0 Letzte Änderung:

Forensik-Tools. Überblick über Open-Source Tools zur forensischen Datenträgeruntersuchung UNIVERSITÄT

Multibooting mit Windows 2000 und Windows XP

Die Soforthilfe bei Datenverlust! für Windows 95/98/ME/NT/2000/XP

Proseminar Konzepte von Betriebssystem- Komponenten (KVBK) Vortrag zum Thema: Speicheraddressierung, Segmentierung, Paging

2 2. Tag. 2.1 Das Dateisystem. das Dateisystem organisiert die Speicherung von Daten. viele Betriebssysteme haben verschiedene Dateisysteme

Strings. Daten aus Dateien einlesen und in Dateien speichern.

Arbeiten mit der Shell Teil 1

Top 3 Herausforderungen bei der forensischen Analyse von macos

, 2014W Übungsgruppen: Mo., Mi.,

Gelöschte Bilder und Dateien einfach wiederherstellen! GELÖSCHTE BILDER UND DATEIEN EINFACH WIEDERHERSTELLEN! 2 SYSTEMVORAUSSETZUNGEN 3

Technische Praxis der Computersysteme. Technische Praxis der Computersysteme

Die Soforthilfe bei gelöschten Dateien! für Windows 95(OSR2)/98/ME/NT4/2000/XP

Dateisysteme. Datei: Objekt zum Abspeichern von Daten Die Datei wird vom Dateisystem als Teil des Betriebssystems verwaltet. c~åüüçåüëåüìäé açêíãìåç

Modell Bahn Verwaltung. Tutorial. Links. Min. Programm Version 0.65, März w w w. r f n e t. c h 1 / 11

[Arbeiten mit dem Nvu Composer]

Modell Bahn Verwaltung. Tutorial. Decoder Datei. Min. Programm Version 0.65, März w w w. r f n e t. c h 1 / 10

C-Pointer (Zeiger, Adressen) vs. C++ Referenzen

BreakerVisu External Profiles Assistant

Systeme I: Betriebssysteme Kapitel 3 Dateisysteme. Wolfram Burgard

Arbeiten mit der Shell Teil 1

Projekt 3 Variablen und Operatoren

Arbeitsabläufe FinanzProfiT Version 4.25

1 Zahlentheorie. 1.1 Kongruenzen


Inhaltsverzeichnis. Das Norton Utilities Buch. Einleitung

Olga Perevalova Universität Hamburg

Dateisystem 2, Suchen & Finden, Manpages

Arbeiten mit der Shell Teil 1

Das ext2-dateisystem

Vorlesung Datenstrukturen

Workbooster File Exchanger Command Line Tool

Was machen wir heute? Betriebssysteme Tutorium 10. Frage 10.1.a. Frage 10.1.a

Verzeichnisbaum. Baumartige hierarchische Strukturierung Wurzelverzeichnis (root directory) Restliche Verzeichnisse baumartig angehängt

Was ist ein Dateisystem? Wozu dient es? Lokale Dateisysteme. Speichergrößen. Inhalt der Präsentation

Papierkorb Beschreibe kurz und prägnant den Unterschied zwischen Papierkorb entleeren und Papierkorb sicher entleeren.

ASCII-Datei der Lagerartikel

JegiPortal. TrueCrypt Einrichten. Herbert Zach Version 2 vom

Transkript:

Seite 83 61 Einführung Das in den 1970er Jahren von Microsoft entwickelte FAT-Dateisystem besitzt einen einfachen Aufbau und wurde vorwiegend für das damalige Microsoft etriebssystem DOS und ältere Windows-Varianten eingesetzt Mit der Zeit musste das FAT-Dateisystem weiterentwickelt werden, so dass es heute in verschiedenen Varianten existiert Heute wird es überwiegend für Wechseldatenträger (beispielsweise US-Sticks oder SD-Karten für Digitalkameras) verwendet, weil alle gängigen etriebssysteme problemlos mit dem FAT-Dateisystem umgehen können Es ist daher aktuell und vermutlich auch in naher Zukunft von edeutung Eine zentrale Datenstruktur des Dateisystems ist die File Allocation Table (FAT) Hierbei handelt es sich um eine Tabelle, die Zeiger fester Größe auf FS-löcke/Cluster enthält und damit Aussagen über deren elegtstatus ermöglicht Die itlänge eines Zeigers ist charakteristisch für die vorliegende FAT-Version, dh FAT12, FAT16 und FAT32 haben jeweils 12 it, 16 it und 32 it lange Zeiger Die itlänge eines FAT-Eintrags bestimmt die maximal adressierbare Anzahl Cluster im Dateisystem, z bei FAT16 gibt es höchstens 2 16 = 65536 Cluster (tatsächlich sind einige der 16-it-Werte vorbelegt und können daher nicht zur Clusteradressierung verwendet werden) Die mögliche Gesamtgröße des Dateisystems lässt sich somit schnell anhand der Clustergröße und der itlänge der FAT-Pointer ermitteln FAT ist ein einfaches Dateisystem, das jedoch nicht dem abstrakten Referenzmodell von Carrier (vgl Abschnitt 52) folgt eispielsweise werden Dateinamen und Metadaten gemeinsam in den Verzeichniseinträgen gespeichert, so dass eine Trennung in FAT nicht sinnvoll ist Weiterhin gibt es im FAT-Dateisystem keine Dateisystem-Anwendungsdaten, insbesondere gibt es kein Journal Anwendungsfall Wechseldatenträger File Allocation Table, FAT Einfacher Aufbau LA 0 1 Reservierter ereich S S F FAT ereich S D FAT 0 FAT 1 Wurzelverzeichnis Datenbereich Clusterbereich D S Abb 61: Layout eines FAT12/16-Dateisystems S - ootsektor DS - Dateisystem-Slack Cluster Adresse 2 3 4 Ein FAT-Dateisystem besteht von vorne nach hinten betrachtet aus drei ereichen: einer Reserved Area (reservierter ereich), einer FAT-Area (FAT-ereich) sowie einer Data Area (Datenbereich), die wir im Folgenden jeweils erläutern Veranschaulicht finden Sie das Layout für FAT12/16 in Abbildung 61, für FAT32 in Abbildung 62 bzw in Abbildung 63 Layout Reserved Area: Der reservierte ereich beginnt immer im ootsektor, also dem ersten Datenträgerblock der FAT-Partition bei LA 0 ei FAT12/16 besteht der reservierte ereich manchmal nur aus dem ootsektor, bei FAT32 enthält er immer weitere Sektoren am Anfang des Dateisystems, um zusätzliche Datenstrukturen über das Dateisystem bereitzustellen (z ein ackup des ootsektors in Sektor 6, Informationen zum elegtstatus der Cluster in der FSINFO-Datenstruktur in Sektor 1) Der reservierte ereich enthält einen Großteil der Dateisystemdaten, unter Anderem seine eigene Größe Er wird nicht über Cluster, sondern über Sektoren adressiert FAT Area: Der FAT-ereich beginnt immer im Sektor direkt hinter dem reservierten ereich Die LA des ersten Sektors des FAT-ereichs bezeichnen wir

Seite 84 mit S F Der FAT-ereich enthält eine oder mehrere FATs (meist sind es zwei FATs: eine primäre FAT sowie eine ackup FAT) Die Größe des FAT-ereichs lässt sich aus dem ootsektor ermitteln Wie auch der reservierte ereich wird der FAT-ereich über Sektoren adressiert, Clusteradressen gibt es dort nicht Data Area: Der Datenbereich beginnt im Sektor direkt hinter dem FAT-ereich Die LA des ersten Sektors des Datenbereichs bezeichnen wir mit S D Der Datenbereich enthält Verzeichnisse und Inhaltsdaten, wobei Verzeichnisse (bis auf das Wurzelverzeichnis) an einer beliebigen Stelle im Datenbereich stehen können Das Wurzelverzeichnis muss bei FAT12/16 am Anfang des Datenbereichs stehen (also direkt hinter dem FAT-ereich, siehe Abbildung 63), der erste Sektor des Wurzelverzeichnisses ist also S D ei FAT32 kann das Wurzelverzeichnis an einer beliebigen Stelle im Datenbereich liegen (siehe Abbildung 63) Die Lage des Wurzelverzeichnisses ist bei FAT32 im ootsektor angegeben, oft liegt das Wurzelverzeichnis bei FAT32 ebenfalls am Anfang des Datenbereichs (siehe Abbildung 62) Wir bezeichnen die Clusteradresse des ersten Clusters des FAT32-Wurzelverzeichnisses mit C R Oft gilt also C R = 2 (siehe Abbildung 62), denn bei FAT32 beginnt die Clusteradressierung direkt am Anfang des Datenbereichs Abb 62: Layout eines FAT32-Dateisystems mit Wurzelverzeichnis am Anfang des Datenbereichs LA 0 1 S F S I 6 Reservierter ereich S SF FAT ereich S D FAT 0 FAT 1 Wurzelverzeichnis Datenbereich Clusterbereich D S Cluster Adresse S - ootsektor FSI - File System Info Sektor S - ackup ootsektor DS - Dateisystem-Slack 2 3 4 5 Abb 63: Layout eines FAT32-Dateisystems mit Wurzelverzeichnis an einer beliebigen Stelle im Datenbereich LA 0 1 S F S I 6 Reservierter ereich S SF S D FAT ereich Datenbereich FAT 0 FAT 1 Wurzelverzeichnis Clusterbereich Clusterbereich D S Cluster Adresse S - ootsektor FSI - File System Info Sektor S - ackup ootsektor DS - Dateisystem-Slack 2 3 CR CR+1 Adressierung Wichtig und gewöhnungsbedürftig ist die Adressierung der einzelnen ereiche Im reservierten ereich sowie FAT-ereich erfolgt die Adressierung über Sektoren, weil das Dateisystem dort keine Cluster nutzt Die kleinste Clusteradresse bei FAT ist 2, die Lage von Cluster 2 ist bei FAT12/16 und bei FAT32 unterschiedlich: Für FAT12/16 beginnt Cluster 2 direkt hinter dem Wurzelverzeichnis im Datenbereich Die zugehörige LA ist also größer als S D Für FAT32 liegt Cluster 2 am Anfang des Datenbereichs Cluster 2 beginnt also bei LA S D

62 Dateisystemdaten (reservierter ereich) Seite 85 Wir haben das in Merksatz 61 zusammengefasst Merksatz 61: Adressierung in einem FAT Dateisystem Der reservierte ereich sowie der FAT-ereich werden über Sektoren adressiert Die kleinste Clusteradresse ist 2, ihre Lage ist M für FAT12/16 direkt hinter dem Wurzelverzeichnis im Datenbereich, für FAT32 am Anfang des Datenbereichs Typischerweise bleiben am Ende des Datenbereichs Sektoren übrig, die nicht zu einem Cluster zusammengefasst werden können, weil deren Anzahl kleiner ist als die Anzahl der Sektoren pro Cluster Diese Sektoren können Sie nicht über das Dateisystem adressieren Wir nennen diese Sektoren am Ende des Datenbereichs Dateisystemslack oder File System Slack Das Sleuthkit bezeichnet diese Sektoren als non-clustered Diese müssen separat analysiert werden Dateisystemslack 62 Dateisystemdaten (reservierter ereich) Der reservierte ereich enthält die Dateisystemdaten eines FAT-Dateisystems Damit legen die Daten im reservierten ereich das Layout des FAT-Dateisystems fest In diesem Abschnitt erläutern wir die zentralen Datenstrukturen im reservierten ereich, aus denen das Layout eines FAT-Dateisystems bestimmt wird Dazu gehen wir insbesondere auf die essenziellen Daten im ootsektor ein Wie Sie bereits aus Abschnitt 61 wissen, unterscheidet sich der reservierte ereich für ein FAT12/16-Dateisystem von dem reservierten ereich eines FAT32- Dateisystems dahingehend, dass es zusätzliche Datenstrukturen über das Dateisystem gibt, die ein FAT32 verlässlicher (z ackup Kopie des ootsektors) sowie performanter (z elegtstatus der Cluster in der FSINFO-Datenstruktur) machen Die essenziellen Datenstrukturen jedes FAT-ootsektors finden sie in Tabelle 61, auf die zusätzlichen essenziellen Datenstrukturen für FAT32 gehen wir in Tabelle 62 ein Nicht-essenzielle Einträge im ootsektor wie OEM-Name (Offset 3 bis 10), Medientyp an Offset 21 oder die Magic Number (Hexdump 55aa am Ende des ootsektors) behandeln wir nicht Einige essenzielle Einträge von Tabelle 61 erläutern wir im Folgenden Die Größe eines Sektors wird vom Datenträger vorgegeben, FAT fragt diesen Wert beim Formatieren ab und schreibt ihn an das Offset 11 bis 12 im ootsektor Die Sektorgröße ist ein essenzieller Wert, weil sie als Einheit für weitere Größen des Dateisystems dient zum eispiel wird die Clustergröße in Offset 13 in der Einheit Sektoren angegeben Auch wenn FAT vier Werte für die Sektorgröße zulässt, werden Sie dort einen der Werte 512 oder 4096 finden (der Wert wird in der Einheit yte angegeben) Der reservierte ereich beginnt immer mit dem ootsektor in Sektor 0 am Anfang des Dateisystems An Offset 14 bis 15 steht ein 16-it-Wert, der die Größe des reservierten ereichs in Sektoren angibt Damit ist die Lage des reservierten ereichs im Dateisystem eindeutig spezifiziert Weil der FAT-ereich direkt hinter dem reservierten ereich liegt (siehe Abschnitt 61), ist damit auch die Sektoradresse des ersten Sektors des FAT-ereichs bekannt Diese bezeichnen wir in den Layoutabbildungen mit S F Informationen zum FAT-ereich befinden sich an Offset 16 (Anzahl der FATs mit dem typischen Wert zwei) sowie an Offset 22 bis 23; dort finden Sie die Angabe zur Legt Layout fest FAT12/16 vs FAT32 Sektorgröße, Clustergröße Lage des reservierten ereichs FAT-ereich

Seite 86 Tabelle 61: Essenzielle Daten an Offset 0 bis 35 des FAT-ootsektors für alle FAT-Varianten Adresse (dez) Adresse (hex) eschreibung 11-12 0-0C Größe eines Sektors in ytes Erlaubt sind 512, 1024, 2048, 4096 13 0D Größe eines Clusters in Sektoren Erlaubt sind nur die Werte 1, 2, 4, 8, 16, usw, jedoch maximal 32 Ki 14-15 0E-0F Größe des reservierten ereichs in Sektoren 16 10 Anzahl an FATs (typischerweise 2) 17-18 11-12 Maximale Anzahl an Einträgen im Wurzelverzeichnis Für FAT16 typischerweise 512 Für FAT32 = 0 (da in separater Datenstruktur definiert) 19-20 13-14 16-it-Wert der Größe des Dateisystems in Sektoren; falls mehr als 16 it zur Darstellung notwendig sind, benutze Offset 32-35 und setze hier eine Null ein 22-23 16-17 Anzahl Sektoren pro FATx (nur x=12,16) Für FAT32 = 0 (da in separater Datenstruktur definiert) 32-35 20-23 32-it-Wert der Größe des Dateisystems in Sektoren; falls die Darstellung an Offset 19-20 genutzt wird, muss hier der Wert Null stehen Größe einer FAT in Sektoren, sofern es sich um ein FAT12- oder FAT16-Dateisystem handelt Für FAT32 wird dieses 16-it-Feld auf den Wert Null gesetzt und stattdessen ein 32-it-Wert in der FAT32-spezifischen Datenstruktur genutzt (siehe Tabelle 62) Aus der Anzahl der FATs sowie der Größe einer FAT ergibt sich die Größe des FAT-ereichs Weil sich der Datenbereich direkt dem FAT-ereich anschließt (siehe Abschnitt 61), ist damit auch die Sektoradresse des ersten Sektors des Datenbereichs bekannt Diese bezeichnen wir in den Layoutabbildungen mit S D Dateisystemgröße Lage des File System Slack FAT32-spezifische Werte FSINFO Die Größe des Dateisystems finden Sie entweder an Offset 19 bis 20 (sofern sich die Größe als 16-it-Wert darstellen lässt) oder an Offset 32 bis 35 (sofern zur Darstellung der Größe des Dateisystems ein 32-it-Wert notwendig ist) Aus der Größe des Dateisystems sowie der Kenntnis der Größe des reservierten ereichs sowie des FAT-ereichs kann die Größe des Datenbereichs einfach berechnet werden Damit ist es dann auch möglich, die überzähligen Sektoren am Ende des Datenbereichs also den File System Slack zu bestimmen Ein FAT32-Dateisystem legt ab Offset 36 weitere essenzielle Daten im ootsektor ab, die in Tabelle 62 angegeben sind Wichtig ist die Größe einer FAT an Offset 36 bis 39, die für FAT32 als 32-it-Wert angegeben ist Als Größeneinheit dienen Sektoren Ein weiterer wichtiger Wert ist die Lage des Wurzelverzeichnisses an Offset 44 bis 47, die in FAT32 variabel im Datenbereich ist Die Lage wird über die Clusteradresse des ersten Clusters des Wurzelverzeichnisses angegeben Oft finden Sie hier den Wert 2, dh auch für FAT32 liegt das Wurzelverzeichnis am Anfang des Datenbereichs Auf Seite 75 haben Sie erfahren, dass moderne Dateisysteme eine itmap- Datenstruktur pflegen, um den elegtstatus der Cluster des Dateisystems vorzuhalten Die itmap-datenstruktur dient in erster Linie der Laufzeiteffizienz bei der

62 Dateisystemdaten (reservierter ereich) Seite 87 Adresse (dez) Adresse (hex) eschreibung 00-35 00-23 Siehe Tabelle 61 36-39 24-27 32-it-Wert der Größe einer FAT in Sektoren 40-41 28-29 Schreibmodus für die FATs 42-43 2A-2 Major und Minor Versionsnummer des Dateisystems 44-47 2C-2F Clusteradresse des ersten Clusters des Wurzelverzeichnisses Tabelle 62: Essenzielle Daten ab Offset 36 des FAT32-ootsektors Verwaltung der Cluster FAT32 hat mit dem FSINFO-Sektor eine sehr rudimentäre itmap-struktur Die zwei relevanten Angaben im FSINFO-Sektor sind die Anzahl nicht-allozierter Cluster im Dateisystem sowie die Clusteradresse des ersten nichtallozierten Clusters Typischerweise liegt die FSINFO-Datenstruktur in Sektor 1 (ist also Teil des reservierten ereichs), ihre Lage steht als nicht-essenzieller Eintrag in Offset 48 bis 49 des ootsektors Die Datenstrukturen in dem FSINFO-Sektor finden Sie in Tabelle 63 Adresse (dez) Adresse (hex) eschreibung 00-03 00-03 Signatur RRaA im Hexdump 04-483 04-1E3 Ungenutzt 484-487 1E4-1E7 Signatur rraa im Hexdump 488-491 1E8-1E Anzahl nicht-allozierter Cluster 492-495 1EC-1EF Clusteradresse des ersten nicht-allozierten Clusters Tabelle 63: Datenstruktur in dem FSINFO-Sektor eispiel 61: Ausgabe von FAT32-Dateisystemdaten mittels fsstat In diesem eispiel betrachten wir erneut die Ausgabe von fsstat für den US Stick aus eispiel 51 In der folgenden Darstellung konzentrieren wir uns auf das Layout des Dateisystems # fsstat -o 63 /dev/sdb less FILE SYSTEM INFORMATION -------------------------------------------- File System Type: FAT32 [REMOVED] Next Free Sector (FS Info): 8224 Free Sector Count (FS Info): 2006936 Sectors before file system: 63 File System Layout (in sectors) Total Range: 0-2015167 * Reserved: 0-4271 ** oot Sector: 0 ** FS Info Sector: 1 ** ackup oot Sector: 6 * FAT 0: 4272-6231 * FAT 1: 6232-8191 * Data Area: 8192-2015167 ** Cluster Area: 8192-2015167 *** Root Directory: 8192-8199

Seite 88 [REMOVED] CONTENT INFORMATION -------------------------------------------- Sector Size: 512 Cluster Size: 4096 Total Cluster Range: 2-250873 Zunächst sehen wir unter CONTENT INFORMATION, dass die Sektorgröße 512 yte beträgt und ein Cluster acht Sektoren umfasst (weil die Clustergröße 4096 yte ist) Die kleinste Clusteradresse ist 2, die größte 250873 Unter File System Layout (in sectors) finden wir wichtige Informationen zum Dateisystemlayout Das Dateisystem umfasst 2015167 + 1 = 2015168 Sektoren Der reservierte ereich belegt die Sektoren 0 bis 4271, wobei wie üblich der ootsektor in Sektor 0, die FSINFO-Datenstruktur in Sektor 1 und die ackup-kopie des ootsektors in Sektor 6 liegt Der FAT-ereich beginnt in Sektor S F = 4272 Es gibt zwei FATs, deren Größe jeweils 6231 4272 + 1 = 1960 Sektoren ist Der Datenbereich beginnt in Sektor S D = 8192 Weil wir ein FAT32-Dateisystem betrachten, beginnt dort auch der Clusterbereich (dh Cluster 2 beginnt in Sektor 8192) Das Wurzelverzeichnis liegt in Cluster 2 Die zwei relevanten Angaben der FSINFO-Datenstruktur besagen, dass der nächste freie Cluster in Sektor 8224 beginnt und dass noch 2006936 Sektoren nicht-alloziert sind Der US-Stick ist also weitgehend ungenutzt Wichtig bei der Ausgabe von fsstat der FSINFO-Datenstruktur ist, dass das Sleuthkit statt der Einheit Cluster die Einheit Sektoren verwendet Umrechnung Sektor- Cluster-Adressen Zum Abschluss dieses Abschnitts über Dateisystemdaten eines FAT-Dateisystems betrachten wir die Umrechnung von Sektoradressen (also LAs) zur entsprechenden Clusteradresse und umgekehrt Dazu seien folgende Parameter bekannt: Sektoradresse von Cluster 2: S Cl2 Anzahl der Sektoren pro Cluster: n Ist nun eine Clusteradresse Cl k gegeben, dann müssen wir bei der erechnung der zugehörigen Sektoradresse S Clk beachten, dass 2 die kleinste Clusteradresse ist und pro Cluster n Sektoren belegt werden Es liegen Cl k 2 Cluster vor dem Cluster mit Clusteradresse Cl k, so dass wir zur Sektoradresse S Cl2 noch (Cl k 2) n Sektoren hinzuaddieren müssen Für die gesuchte Sektoradresse S Clk ergibt das S Clk = (Cl k 2) n + S Cl2 (61) Auflösen der Gleichung (61) nach Cl k ergibt die umgekehrte erechnung von Cl k aus S Clk : S Clk S Cl2 + 2 = Cl k (62) n

62 Dateisystemdaten (reservierter ereich) Seite 89 eispiel 62: Umrechnung Cluster- zu Sektoradressen In diesem eispiel betrachten wir den US Stick aus eispiel 61 Damit sind die Werte der Parameter wie folgt: Sektoradresse von Cluster 2: S Cl2 = 8192 (weil Cluster 2 in einem FAT32-Dateisystem am Anfang des Datenbereichs liegt) Anzahl der Sektoren pro Cluster: n = 8 Für die Sektoradresse des ersten Sektors von Cluster 100 gilt dann nach Gleichung (61): S Cl100 = (100 2) 8 + 8192 = 8972 Umgekehrt ergibt sich die Clusteradresse des Clusters, in dem der Sektor mit LA 10000 liegt, aus Gleichung (62): 10000 8192 8 + 2 = 226 Da die Division ganzzahlig aufgeht, liegt der Sektor am Anfang von Cluster 226 Für den Sektor mit LA 12347 erhalten wir aus Gleichung (62): 12347 8192 8 + 2 = 521375 = 521 + 3 8 Der Sektor liegt also in Cluster 521 und ist der vierte Sektor dieses Clusters

Seite 90 K Kontrollaufgabe 61 Gegeben sei der Hexdump des ootsektors eines FAT-Dateisystems einer Flash-Speicherkarte aus einer Digitalkamera: $ hexdump -C image-digitalkamera_fs_fatdd less 0000 eb 00 90 20 20 20 20 20 20 20 20 00 02 20 01 00 0010 02 00 02 00 00 f8 f3 00 3f 00 20 00 f9 00 00 00? 0020 07 5f 1e 00 80 00 29 5b 71 24 3e 00 00 00 00 00 _)[q$> 0030 00 00 00 00 00 00 46 41 54 31 36 20 20 20 00 00 FAT16 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 * 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa U Skizzieren Sie das Layout des FAT-Dateisystems, indem Sie folgende Fragen beantworten: OEM-Name (Hexdump, String) Größe eines Sektors in ytes (Hexdump, Hex-Zahl, Dezimalzahl) Größe eines Clusters in Sektoren (Hexdump, Hex-Zahl, Dezimalzahl) Größe der Reserved Area in Sektoren (Hexdump, Hex-Zahl, Dezimalzahl) Anzahl der FATs (Hexdump, Hex-Zahl, Dezimalzahl) Größe einer FAT in Sektoren (Hexdump, Hex-Zahl, Dezimalzahl) Max Dateianzahl im Wurzelverzeichnis (Hexdump, Hex-Zahl, Dezimalzahl) Größe des Wurzelverzeichnisses (Größe in ytes, Größe in Sektoren) Um welche FAT-Variante handelt es sich vermutlich? Geben Sie insbesondere die LA der folgenden ereiche an: Reserved Area, FAT Area, Wurzelverzeichnis, Cluster 2 und Cluster 3 63 Metadaten in File Allocation Tables Metadaten in FAT sind Verzeichniseinträge und die Zeiger in den File Allocation Tables (FAT) Letztere sind im FAT-ereich abgelegt Verzeichniseinträge in FAT sind statische Datenstrukturen der Länge 32 yte, die wichtige Informationen wie Dateiname, Adresse des ersten Clusters des Dateiinhalts, Dateigröße sowie die MAC-Zeitstempel speichern Wir gehen auf die Analyse von Verzeichniseinträgen in Abschnitt 64 ein Cluster Chain Zum Auffinden der Cluster, die die Inhaltsdaten einer Datei enthalten, geht das FAT-Dateisystem wie folgt vor (den Prozess finden Sie in Abbildung 64) Der Nutzer übergibt dem etriebssystem den Dateinamen FAT speichert den Dateinamen in dem Verzeichniseintrag der Datei gemeinsam mit der Adresse des ersten Datenclusters In Abbildung 64 heißt die Datei filetxt, die Clusteradresse des Startclusters der Datei ist 30 Zum Auffinden der weiteren Datencluster wird die FAT benötigt Der Eintrag an der Adresse 30 in der FAT enthält den Zeiger auf die Adresse des zweiten Datenclusters der Datei oder den Hinweis, dass es keinen weiteren Cluster gibt (EOF, End of File) In Abbildung 64 ist die Clusteradresse

63 Metadaten in File Allocation Tables Seite 91 Verzeichniseintrag FAT 0 28 Abb 64: Datenverwaltung unter FAT [1] Dateiname Startcluster Dateigröße filetxt 30 5953 0 29 31 30 34 31 0 32 EOF 34 des zweiten Datenclusters 31, weil an Adresse 30 der FAT der Wert 31 steht Dieses Vorgehen wird nun rekursiv angewendet, bis die EOF-Markierung eingelesen wird Dieser Zusammenhang wird auch als Cluster Chain bezeichnet In Abbildung 64 ist die Clusteradresse des dritten Datenclusters 34, weil an Adresse 31 der FAT der Wert 34 steht Dieser Cluster steht am Ende der Cluster Chain, weil an Adresse 34 der FAT die EOF-Markierung steht Die Cluster Chain ist damit 30-31-34 Die Länge der Cluster Chain einer Datei ergibt sich aus der Dateigröße und der Clustergröße Die Clustergröße ist fest für das Dateisystem, sie ergibt sich aus der entsprechenden Angabe des ootsektors Die Dateigröße steht im Verzeichniseintrag der Datei Die Länge der Cluster Chain ist dann offensichtlich Dateigröße Länge der Cluster Chain = (63) Clustergröße Dateigröße Dabei bedeutet Clustergröße das Aufrunden auf die nächst größere ganze Zahl des ruchs, weil die Länge der Cluster Chain eine ganze Zahl ist Länge der Cluster Chain eispiel 63: Länge einer Cluster Chain Wir berechnen die Länge der Cluster Chain aus Abbildung 64 Die Dateigröße ist 5953 yte, die Clustergröße sei 2048 yte Die Länge der Cluster Chain nach Gleichung (63) ist dann 5953 Länge der Cluster Chain = = 291 = 3 2048 Es gibt drei unterschiedliche FAT-Varianten, die jeweils nach der Länge ihrer Zeiger (in its) benannt werden: FAT12, FAT16, FAT32 ei FAT12 ist die Länge eines Zeigers in der FAT 12 it lang ei FAT16 ist die Länge eines Zeigers in der FAT 16 it lang ei FAT32 ist die Länge eines Zeigers in der FAT 32 it lang Die Adressen der Zeiger in der FAT beginnen bei Adresse 0, die für die primäre FAT am Anfang des FAT-ereichs liegt Die Adressen werden dann sequenziell

Seite 92 hochgezählt Zum eispiel belegt in FAT16 ein Zeiger zwei ytes, die FAT-Adresse 2 beginnt also bei Offset 4, weil zwei Zeiger vor dieser Adresse gespeichert werden K Kontrollaufgabe 62: Lage eines FAT32-Zeigers Geben Sie das Offset des Zeigers an der FAT-Adresse 42 relativ zum eginn der FAT in einem FAT32-Dateisystem an edeutung eines FAT-Eintrags Ein Zeiger an der Adresse k der FAT hat folgende edeutung, die wir in Tabelle 64 zusammenfassen: 1 Zunächst gibt der Zeiger den elegtstatus des zugehörigen Clusters mit Clusteradresse k an Der Zeiger hat den Wert 0 genau dann, wenn Cluster k nicht-alloziert ist und durch das Dateisystem zum Schreiben von Inhaltsdaten genutzt werden kann 2 Ist Cluster k belegt und nicht der letzte Cluster der Cluster Chain (dh es gibt noch mindestens einen weiteren Cluster mit Inhaltsdaten hinter Cluster k), dann steht an Adresse k der FAT die Clusteradresse des nächsten Clusters der Cluster Chain itte beachten Sie in Tabelle 64 den jeweils maximalen Wert für jede FAT-Variante Wichtig im Fall von FAT32 ist, dass die höchstwertigen vier its der Zeiger nicht verwendet werden und stets den Wert Null haben Es stehen also nur 28 it zur Adressierung zur Verfügung 3 Aus historischen Gründen gibt es für jede FAT-Variante einen speziellen Wert, der Cluster k als beschädigt markiert Auf diesen Wert sollten Sie heute kaum noch stoßen Für FAT12 zum eispiel lautet dieser Wert 0xff7 4 Schließlich gibt es noch jeweils acht Werte für jede FAT-Variante, um das EOF-Label zu kodieren Cluster k ist dann alloziert und der letzte Cluster der Cluster Chain der Datei Meist finden Sie den höchsten dieser Werte in einem FAT-Dateisystem vor Tabelle 64: edeutung der Zeigerwerte in einer FAT FAT-Adressen 0, 1 Wert des Zeigers in FAT12 Wert des Zeigers in FAT16 Wert des Zeigers in FAT32 edeutung 0x000 0x0000 0x00000000 Nicht-alloziert, kann für Inhaltsdaten genutzt werden 0x002 bis 0xff6 0x0002 bis 0xfff6 0x00000002 bis 0x0ffffff6 Clusteradresse des nächsten Clusters der Inhaltsdaten (der Wert 1 wird nicht verwendet) 0xff7 0xfff7 0x0ffffff7 eschädigt, kann für Inhaltsdaten nicht genutzt werden 0xff8 bis 0xfff 0xfff8 bis 0xffff 0x0ffffff8 bis 0x0fffffff EOF-Label Da die Clusteradressierung für Inhaltsdaten erst bei 2 beginnt, werden die ersten beiden FAT-Einträge nicht für die Datencluster benötigt und haben eine andere Funktion Eintrag 0 gibt den Medientyp des Laufwerks an, Eintrag 1 den dirty Status, der beispielsweise bei einem Systemabsturz gesetzt wird

63 Metadaten in File Allocation Tables Seite 93 eispiel 64: FAT-Einträge in FAT16 Wir betrachten die FAT-Partition der Digitalkamera aus Kontrollaufgabe 61 Wir wissen, dass es ein FAT16-Dateisystem ist, dass der FAT-ereich an LA 1 der Dateisystempartition startet und dass ein Cluster die Größe 16 Ki hat Wir nutzen blkcat, um den ersten Sektor der primären FAT auszulesen $ blkcat image-digitalkamera_fs_fatdd 1 xxd less 0000000: f8ff ffff ffff ffff ffff 0600 0700 0800 0000010: 0900 0a00 0b00 0c00 0d00 0e00 0f00 1000 0000020: 1100 1200 1300 1400 1500 1600 1700 1800 0000030: 1900 1a00 1b00 1c00 1d00 1e00 1f00 2000 0000040: 2100 2200 2300 2400 2500 2600 2700 2800!"#$%& ( 0000050: 2900 2a00 2b00 2c00 2d00 2e00 2f00 3000 )*+,-/0 0000060: 3100 3200 3300 3400 3500 3600 3700 3800 12345678 [REMOVED] 00001b0: d900 da00 db00 dc00 dd00 de00 df00 e000 00001c0: e100 e200 ffff e400 e500 e600 e700 e800 [REMOVED] Cluster 2 ist der letzte Cluster einer Cluster Chain, weil an Adresse 2 der FAT der Wert 0xffff steht Eine analoge Aussage gilt für Cluster 3 sowie Cluster 4 An Adresse 5 der FAT steht der Little-Endian-kodierte Wert 0x0006 Also ist Cluster 5 alloziert, der folgende Cluster der Cluster Chain dieser Datei ist Cluster 6 Es fällt nun auf, dass an Adresse 6 der FAT der Zeiger den Wert 7 hat, usw Also liegt eine nicht-fragmentierte Datei vor, deren EOF-Label am yte-offset 0x1c4 der FAT steht Das entspricht der FAT-Adresse 0x1c4 452 2 2 = = 226 Dieser Wert entspricht dem FAT-Zeiger (Hexdump e200) direkt vor dem EOF-Label Also umfasst diese Datei mindestens 226 5 + 1 = 222 Cluster ei der angegeben Clustergröße von 16 Ki sind das 222 16 Ki = 347 Mi Eine plausible ildgröße für eine Digitalkamera Kontrollaufgabe 63: Erster Cluster der Cluster Chain Wie können Sie nur mittels Informationen aus der FAT herausfinden, ob Cluster 5 in eispiel 64 der erste Cluster der Cluster Chain ist oder nicht? K eim Löschen einer Datei werden typischerweise lediglich die FAT-Einträge der Cluster dieser Datei auf 0 gesetzt Die Inhaltsdaten bleiben in den Clustern erhalten Zur Analyse bzw zum Auffinden nicht-allozierter Inhaltsdaten wird die FAT nach Einträgen mit dem Wert 0 durchsucht und die dazugehörigen Datencluster ausgelesen Gegebenenfalls sind auch Cluster zu analysieren, die als beschädigt markiert sind Am Ende einer FAT bleiben typischerweise ytes oder Sektoren übrig, die nicht für FAT-Einträge genutzt werden Diesen ereich nennt man FAT-Slack Der FAT-Slack ist also der ereich zwischen dem letztem FAT-Eintrag und dem nächstem ereich des FAT-Dateisystems (also nächste FAT oder Datenbereich) Wie auch File Slack, Volume Slack oder File System Slack ist der FAT-Slack separat zu analysieren, da er nicht über ein Dateisystem erreicht wird Löschen einer Datei FAT-Slack

Seite 94 Ausgabe der Cluster Chains mit fsstat Auf Seite 74 haben Sie das Tool fsstat aus dem Sleuthkit kennengelernt Es gibt grundlegende Informationen zum Dateisystem aus Im Fall eines FAT-Dateisystems enthält die Ausgabe von fsstat auch Informationen zu allen allozierten Cluster Chains Eine exemplarische Ausgabe dieser Sektion in der Ausgabe von fsstat finden Sie in eispiel 65 eispiel 65: Cluster Chains in der Ausgabe von fsstat Wir betrachten die File Allocation Table des FAT-Dateisystems der Digitalkamera aus eispiel 64 und sehen uns die Informationen zu den Cluster Chains in der Ausgabe von fsstat an $ fsstat image-digitalkamera_fs_fatdd [REMOVED] FAT CONTENTS (in sectors) -------------------------------------------- 519-550 (32) -> EOF 551-582 (32) -> EOF 583-614 (32) -> EOF 615-7718 (7104) -> EOF 7719-12646 (4928) -> EOF 12647-19526 (6880) -> EOF 19527-25894 (6368) -> EOF 25895-33286 (7392) -> EOF 33287-40166 (6880) -> EOF Die Ausgabe von fsstat gibt in dem Abschnitt FAT CONTENTS alle allozierten Cluster Chains an Die Adressen- und Größenangabe ist in der Einheit Sektoren Die erste Cluster Chain beginnt in Sektor 519 und endet in Sektor 550 Das entspricht einer Länge von 32 Sektoren Es handelt sich dabei um Cluster 2 und vermutlich um ein Verzeichnis, weil ein Cluster aus 32 Sektoren besteht Es folgen Cluster 3 sowie Cluster 4 Die zugehörigen FAT-Einträge finden Sie in den gleichen Farben in eispiel 64, ebenso die Cluster Chain der Datei, die die Sektoren 615 bis 7718 belegt K Kontrollaufgabe 64: Lage und Größe des Wurzelverzeichnisses Wie bestimmt ein FAT12/16-Dateisystem Lage und Größe des Wurzelverzeichnisses, wie ein FAT32-Dateisystem? Verzeichniseintrag 32-yte-Datenstruktur 64 Metadaten in Verzeichnissen im FAT-Dateisystem In einem FAT-Dateisystem existiert für jedes Verzeichnis (außer dem Wurzelverzeichnis) bzw für jede Datei ein Verzeichniseintrag In diesem Abschnitt erhalten Sie Details zu den Metadaten eines FAT-Dateisystem, die in Verzeichniseinträgen gespeichert werden Im Unterschied zu dem klassischen Modell von rian Carrier aus Abschnitt 52 stehen Dateinamen gemeinsam mit Metadaten in einem Verzeichniseintrag Ein Verzeichniseintrag hat eine feste Länge von 32 yte In FAT gibt es zwei Arten von Verzeichniseinträgen: ein asisverzeichniseintrag enthält Informationen

64 Metadaten in Verzeichnissen im FAT-Dateisystem Seite 95 zu dem (kurzen) Dateinamen, die Adresse des ersten Datenclusters der Datei, MAC-Zeitstempel in unterschiedlicher Genauigkeit, die Dateigröße sowie Attribute Daneben gibt es noch Verzeichniseinträge, um lange Dateinamen zu speichern In diesem Abschnitt gehen wir nur auf asisverzeichniseinträge ein, lange Dateinamen besprechen wir in Abschnitt 65 Die Struktur eines asisverzeichniseintrags ist statisch, ihre Spezifikation finden Sie in Tabelle 65, wir gehen im Folgenden auf die einzelnen Datenstrukturen in einem asisverzeichniseintrag ein Adresse (dez) Adresse (hex) eschreibung 00 00 Erstes ASCII-Zeichen des Dateinamens oder 0xe5 für gelöscht oder 0x00 für nie genutzt 01-10 01-0A Restliche Zeichen des Dateinamens im Format 8+3 (acht Zeichen Dateiname, drei Zeichen Dateiendung) 11 0 Attribute (z Read only, Langer Name, Verzeichnis, siehe Tabelle 66) 12 0C Reserviert (zzt ungenutzt, Hexdump 00) 13-19 0D-13 Zeitstempel für created und last accessed (siehe Tabelle 67) 20-21 14-15 Nur FAT32: Höherwertige ytes der Clusteradresse des ersten Clusters der Datei 22-25 16-19 Zeitstempel für last modified (siehe Tabelle 67) 26-27 1A-1 Niederwertige ytes der Clusteradresse des ersten Clusters der Datei 28-31 1C-1F Dateigröße in ytes (= 0 für Verzeichnisse) In Offset 0 bis 10 steht der Dateiname im früher üblichen 8+3-Format: acht Zeichen für den Dateinamen und drei Zeichen für die Dateiendung Später wurde auch die Möglichkeit von langen Dateinamen (Long File Names, LFN) in FAT eingeführt Auf die konzeptionelle Spezifikation langer Dateinamen gehen wir in Abschnitt 65 ein Das erste Zeichen des Dateinamens an Offset 0 enthält die Information, Tabelle 65: Struktur eines asisverzeichniseintrages bei FAT Dateiname ob die Datei alloziert ist (an Offset 0 steht ein druckbares ASCII-Zeichen), ob die Datei alloziert war und damit im Laufe der Nutzung des Dateisystems gelöscht wurde (an Offset 0 steht das nicht-druckbare ASCII-Zeichen mit Hexadezimalwert 0xe5) oder ob der Verzeichniseintrag noch nie genutzt wurde (an Offset 0 steht das Nullbyte 00) Es folgt an Offset 11 ein yte, das Attribute der Datei kodiert Die möglichen Attribute eines Eintrags finden Sie in Tabelle 66 Nach einem (aktuell) nicht genutzten yte an Offset 12 folgen die Zeitstempel für den Erzeugungszeitpunkt sowie den letzten lesenden Zugriff an Offset 13-19 Später im Verzeichniseintrag steht an Offset 22-25 noch die Zeitangabe des letzten schreibenden Zugriffs Die Kodierung der Zeitstempel ist im Vergleich zu anderen Dateisystemen ungewöhnlich, wir gehen darauf im Detail auf Seite 97 ein Im Rahmen einer IT-forensischen Untersuchung ist wichtig zu wissen, dass die Zeitstempel mit unterschiedlicher Genauigkeit gespeichert werden und dass diese getrennt nach Datum (also taggenau) sowie Zeit (also Uhrzeit am Tag) gespeichert werden An Offset 20-21 sowie 26-27 ist die Clusteradresse des ersten Clusters der Inhaltsdaten gespeichert, die weiteren allozierten Cluster ergeben sich aus der Cluster Chain Attribute Zeitstempel Clusteradresse, Dateigröße

Seite 96 Tabelle 66: Attribute in einem Verzeichniseintrag Hexdump itmuster eschreibung 01 0000 0001 Read-only: auf die Datei oder das Verzeichnis darf nur lesend zugegriffen werden 02 0000 0010 Hidden file: beim üblichen List-efehl der Objekte in dem Verzeichnis wird dieses Objekt nicht angezeigt 04 0000 0100 System file: die Datei ist eine Windows- Systemdatei 08 0000 1000 Volume label: der Eintrag enthält die Laufwerkbezeichnung (keine Datei oder Verzeichnis) Es gibt höchstens einen solchen Verzeichniseintrag im Dateisystem Gleiche ezeichnung sollte auch im ootsektor stehen 0f 0000 1111 Long file name: der Eintrag ist ein langer Dateiname (oder ein Teil davon), siehe Abschnitt 65 10 0001 0000 Directory: der Eintrag referenziert ein Verzeichnis 20 0010 0000 Archive: Archivierungsbit, typischerweise gesetzt, um ackup-tools eine Änderung der Datei seit letztem ackup anzuzeigen der FAT Am Ende eines Verzeichniseintrags steht an Offset 28-31 die Dateigröße Da die Dateigröße als 32-it-Wert kodiert wird, folgt eine maximale Dateigröße von (2 32 1) yte 2 32 yte = 4 Gi ei Verzeichniseinträgen, die ein Verzeichnis referenzieren, ist die Dateigröße als Null kodiert (siehe Tabelle 65) Die tatsächliche Verzeichnisgröße erhält man daher nur durch die zugehörige Cluster Chain in der FAT eispiel 66: Verzeichniseintrag im FAT-Dateisystem Wir betrachten den gleichen US-Stick wie bisher (etwa in eispiel 61) Wir lesen das Wurzelverzeichnis aus, das ab LA 8192 in den folgenden acht Sektoren steht und betrachten den Verzeichniseintrag ab Offset 0x280 # blkcat -o 63 /dev/sdb 8192 8 xxd less [REMOVED] 0000280: e54f 4532 4333 7e31 5044 4620 00ac 817d OE2C3~1PDF } 0000290: 2547 2547 0000 ba93 2247 9500 907a 0000 %G%G"Gz [REMOVED] Die Datei ist gelöscht, weil das erste yte des Dateinamens e5 ist Die übrigen Zeichen des Dateinamens waren OE2C3 1PDF, es war also vermutlich eine pdf-datei Das ist nur der kurze Dateiname, den langen Dateinamen erkennen wir hier nicht Das Attributbyte an Offset 11 hat den Wert 20, nach Tabelle 66 ist also das Archivierungsbit für ackuptools gesetzt Die Adresse des ersten Datenclusters steht an Offset 20 bis 21 (höherwertige ytes) sowie an Offset 26 bis 27 (niederwertige ytes) Der zugehörige Little- Endian-Wert ist 0x00000095 = 149 Aus eispiel 61 wissen wir, dass Cluster 2 am Anfang des Datenbereichs liegt und S Cl2 = 8192 gilt Weil ein Cluster

64 Metadaten in Verzeichnissen im FAT-Dateisystem Seite 97 acht Sektoren enthält (also n = 8 gilt), erhalten wir mittels Formel (62) die Sektoradresse von Cluster 149: S Cl149 = (149 2) 8 + 8192 = 9368 Das ist der erste Sektor der pdf-datei aus eispiel 52 Die Dateigröße ist gepeichert an Offset 28 bis 31, ihr Wert war 0x7a90 = 31376 ytes Wir erklären, wie in einem FAT-Dateisystem Zeitstempel kodiert werden Das Dateisystem hält drei MAC-Zeitstempel vor, und zwar für die letzte Änderung (modified), den letzten lesenden Zugriff (accessed) sowie die Erzeugung (created) Die einzelnen Offsets der Zeitstempelfelder in einem Verzeichniseintrag finden Sie in Tabelle 67 Dabei sollten Sie sich zwei Eigenarten von FAT-Zeitstempeln merken: Kodierung der Zeitstempel Die Genauigkeit der Zeitstempel ist jeweils unterschiedlich Die Kodierung geschieht getrennt nach Datum, Uhrzeit und Millisekunden, sofern diese Angabe für einen Zeitstempel überhaupt vorhanden ist Adresse (dez) Adresse (hex) eschreibung 13 0D Created (kodiert in der Einheit 10 Millisekunden) 14-15 0E-0F Created Uhrzeit (in 2-Sekunden Intervallen) 16-17 10-11 Created Datum (Jahr seit 1980) 18-19 12-13 Accessed Datum (Jahr seit 1980) 22-23 16-17 Modified Uhrzeit (in 2-Sekunden Intervallen) 24-25 18-19 Modified Datum (Jahr seit 1980) Das Datum wird in einem FAT-Dateisystem als 16-it-Wert kodiert Die Ableitung des Datums aus dem 16-it-Wert finden Sie exemplarisch für den Hexdump 2247 in Abbildung 65 Im ersten Schritt muss der Hexdump als Little-Endian-kodierte Zahl interpretiert werden, in Abbildung 65 also als 0x4722 Das Datum wird dann durch drei itsequenzen für Jahr-Monat-Tag kodiert, wobei die einzelnen itsequenzen wie folgt zu interpretieren sind: Tabelle 67: Offsets der Zeitstempelfelder bei FAT Datumangabe Jahresangabe: Die its 15 bis 9 stellen das Jahr bezüglich des Referenzjahres 1980 dar In Abbildung 65 ergibt der itstring 0100011 den dezimalen Wert 35 und damit das Jahr 1980 + 35 = 2015 Der größte darstellbare Wert ist der Einserbitstring, der den Wert 2 7 1 = 127 hat Damit ist 1980 + 127 = 2107 das letzte darstellbare Jahr Monatsangabe: Es gibt zwölf Monate, daher nutzt FAT die folgenden vier its 8 bis 5 zur Kodierung des Monats Dabei bleiben die (dezimalen) Werte 0 sowie 13 bis 15 ungenutzt In Abbildung 65 ergibt der itstring 1001 den dezimalen Wert 9 und damit den Monat September Tagesangabe: Es gibt maximal 31 Tage in einem Monat, daher nutzt FAT die verbleibenden fünf its 4 bis 0 zur Kodierung des Tages In Abbildung 65 ergibt der itstring 00010 den dezimalen Wert 2 und damit den zweiten Tag im Monat Insgesamt erhalten wir in Abbildung 65 daher das Datum 02 September 2015 Ein

Seite 98 Abb 65: Datumangabe unter FAT Hexdump: Little Endian: 2247 0x4722 0100 011 1 001 0 0010 Jahr Monat Tag 0100 011 1 001 0 0010 Dezimal: Datum: 35 9 2015 September 2 2 eispiel zur estimmung des Datums aus dem Hexdump eines Verzeichniseintrags finden Sie in eispiel 67 Uhrzeitangabe Die Uhrzeit wird in einem FAT-Dateisystem als 16-it-Wert kodiert Die Ableitung der Uhrzeit aus dem 16-it-Wert finden Sie exemplarisch für den Hexdump ba93 in Abbildung 66 Im ersten Schritt muss der Hexdump als Little-Endian-kodierte Zahl interpretiert werden, in Abbildung 66 also als 0x93ba Die Uhrzeit wird dann im Format Stunde-Minute-Sekunde kodiert, wobei die einzelnen its folgende edeutung haben: Stundenangabe: Die its 15 bis 11 stellen die Stunde dar In Abbildung 66 ergibt der itstring 10010 den dezimalen Wert 18 Die Stundenwerte 24 bis 31 werden nicht genutzt Abb 66: Uhrzeitangabe unter FAT Hexdump: Little Endian: ba93 0x93ba 1001 0 011 101 1 1010 Dezimal: Stunden Minuten Sekunden 1001 0 011 101 1 1010 18 29 26 Zeit: 18 Uhr 29 Minuten 52 Sekunden Minutenangabe: Es gibt 60 Minuten, daher nutzt FAT die folgenden sechs its 10 bis 5 zur Kodierung der Minute Dabei bleiben die (dezimalen) Werte 60 bis 63 ungenutzt In Abbildung 66 ergibt der itstring 011101 den dezimalen Wert 29 Sekundenangabe: Es gibt 60 Sekunden, allerdings können die verbleibenden fünf its 4 bis 0 nur 32 Werte darstellen Daher nutzt FAT eine Zwei- Sekunden-Kodierung, dh der durch den itstring dargestellte Dezimalwert wird mit zwei multipliziert, um die Sekunden zu erhalten In Abbildung 66 ergibt der itstring 11010 den dezimalen Wert 26, womit der Wert 52 Sekunden dargestellt wird Insgesamt erhalten wir in Abbildung 66 daher die Uhrzeit 18 Uhr 29 Minuten und 52 Sekunden Ein weiteres eispiel zur estimmung der Uhrzeit aus dem Hexdump eines Verzeichniseintrags finden Sie in eispiel 67

64 Metadaten in Verzeichnissen im FAT-Dateisystem Seite 99 Für den Erzeugungszeitpunkt gibt es an Offset 13 eines Verzeichniseintrags noch die Angabe über ruchteile von Sekunden Da die Uhrzeit nur auf gerade Sekunden genau angegeben wird und mit einem yte 256 unterschiedliche Werte kodiert werden können, stellt FAT in Offset 13 die Zahlen 0 bis 199 dar, die in der Einheit 10 Millisekunden zu interpretieren sind 1 Daher geben manche Tools für den Erzeugungszeitpunkt auch ungerade Sekunden in der Uhrzeit aus, wenn die Anzahl der 10-Millisekunden den Wert 100 (und damit eine Sekunde) überschreitet Millisekunden im Zeitstempel created Ein eispiel zur estimmung des Datums aus dem Hexdump eines Verzeichniseintrags finden Sie in eispiel 67 eispiel 67: Zeitstempel im FAT-Dateisystem Wir betrachten die Zeitstempel im gleichen Verzeichniseintrag wie in eispiel 66 Wir lesen das Wurzelverzeichnis aus, das ab LA 8192 steht und betrachten den Eintrag ab Offset 0x280 # blkcat -o 63 /dev/sdb 8192 8 xxd less [REMOVED] 0000280: e54f 4532 4333 7e31 5044 4620 00ac 817d OE2C3~1PDF } 0000290: 2547 2547 0000 ba93 2247 9500 907a 0000 %G%G"Gz [REMOVED] Die Datumangabe des letzten schreibenden Zugriffs steht an Offset 24 bis 25 Der Hexdump ist 2247, das ist genau der Wert, den wir in Abbildung 65 betrachtet haben Also lautet das Datum für last modified 02 September 2015 Die Datumangabe des Erzeugungszeitpunkts steht an Offset 16 bis 17 Der Hexdump ist 2547 und damit gleich 2547 für den Hexdump des letzten lesenden Zugriffs an Offset 18 bis 19 Das zugehörige Datum berechnen wir in der folgenden Tabelle Accesssed Datum Created Uhrzeit Hexdump: 2547 817d Hex-Wert: 0x4725 0x7d81 itstring: 0100 011 1 001 0 0111 0111 1 101 100 0 0001 Jahr Stunde itstring: 0100011 01111 Dezimal: 35 15 Monat Minute itstring: 1001 101100 Dezimal: 9 44 Tag Sekunde itstring: 00111 00001 Dezimal: 5 1 Ergebnis: 05 Sep 2015 15:44:02 (siehe unten) Die Uhrzeit des letzten schreibenden Zugriffs steht an Offset 22 bis 23 Der Hexdump ist ba93, das ist genau der Wert, den wir in Abbildung 66 betrachtet haben Also lautet die Uhrzeit für last modified 18 Uhr 29 Minuten 52 Sekunden 1 http://ntfscom/exfat-time-stamphtm, 18052016

Seite 100 Die Uhrzeit des Erzeugungszeitpunkts steht an Offset 14 bis 15 Der Hexdump ist 817d, wir haben diesen in der vorangegangenen Tabelle hergeleitet Eine Uhrzeit für last accessed sieht FAT nicht vor Schließlich steht an Offset 13 noch die Anzahl der Zehn-Millisekunden des Erzeugungszeitpunkts (dh kodiert in der Einheit 10 ms) Der Wert ac kodiert 0xac 10 ms = 172 10 ms = 1,72 s, so dass die Uhrzeit der Erzeugung 15 Uhr 44 Minuten 03 Sekunden und 720 Millisekunden ist K Kontrollaufgabe 65: Zeitstempel in FAT estimmen Sie das Datum, wenn dieses in einem FAT-Dateisystem als Hexdump 8132 kodiert ist estimmen Sie die Uhrzeit in einem FAT-Dateisystem zum Hexdump f653 Metadatenadressen gemäß Sleuthkit Auf Seite 79 haben Sie Tools aus dem Sleuthkit kennengelernt, die Zugriff auf Informationen des Dateisystems über die Metadatenadresse eines Objekts ermöglichen Die wichtigsten dieser Tools sind istat, icat sowie ils Da das FAT-Dateisystem allerdings keine expliziten Metadatenadressen kennt (das FAT- Dateisystem kann überall im Datenbereich ein Verzeichnis und damit die Metadaten des FAT-Dateisystems ablegen), nutzt rian Carrier folgende Metadatenadressierung (bitte beachten Sie dabei, dass ein Verzeichniseintrag stets die Länge 32 yte hat): Das Wurzelverzeichnis erhält die Metadatenadresse 2 Hintergrund ist, dass das extx-dateisystem unter dieser Metadatenadresse das Wurzelverzeichnis referenziert und Carrier sich von extx inspirieren ließ Die erste Sequenz der Länge 32 yte im Datenbereich erhält die Metadatenadresse 3 Das ist das Offset 0 bis 31 im ersten Sektor des Datenbereichs mit Sektoradresse S D Die zweite Sequenz der Länge 32 yte im Datenbereich erhält die Metadatenadresse 4 Das ist das Offset 32 bis 63 im ersten Sektor des Datenbereichs mit Sektoradresse S D Die dritte Sequenz der Länge 32 yte im Datenbereich erhält die Metadatenadresse 5 Das ist das Offset 64 bis 95 im ersten Sektor des Datenbereichs mit Sektoradresse S D Iterativ wird so jede 32-yte lange Sequenz im Datenbereich mit einer Metadatenadresse ausgestattet, obwohl ein Großteil dieser Sequenzen kein Verzeichniseintrag ist Dann kommt es bei Aufruf eines Sleuthkit-Tools wie istat zu einer Fehlermeldung K Kontrollaufgabe 66: Metadatenadressierung in FAT Wir betrachten das FAT16-Dateisystem der Digitalkamera aus Kontrollaufgabe 61 Der Datenbereich beginnt in Sektor 487 (es gilt also S D = 487), das Wurzelverzeichnis belegt 32 Sektoren und die Sektorgröße ist 512 yte Geben Sie die Metadatenadresse der ersten 32-yte-Sequenz in Cluster 2 an

64 Metadaten in Verzeichnissen im FAT-Dateisystem Seite 101 eispiel 68: Zugriff auf Root-Verzeichnis mittels Metadatenadresse Wir betrachten die SD-Karte einer Digitalkamera (siehe zum eispiel Kontrollaufgabe 61), deren FAT16-Dateisystempartition als Image image-digitalkamera_fs_fatdd vorliegt Wir lassen uns mit Hilfe des Tools icat aus dem Sleuthkit den Hexdump des Rootverzeichnisses ausgeben (dazu nutzen wir die Metadatenadresse 2): $ icat image-digitalkamera_fs_fatdd 2 hexdump -C 00000: 4443 494d 2020 2020 2020 2010 0000 4869 DCIM Hi 00010: 3d3a 4a3a 0000 dd8a 4a3a 0200 0000 0000 =:J:J: 00020: 0000 0000 0000 0000 0000 0000 0000 0000 * 04000 Wir sehen, dass genau ein Eintrag im Wurzelverzeichnis alloziert ist und vermutlich auch nie ein weiterer alloziert war (weil ab Offset 0x20 nur Nullbytes stehen) Die Inhalte dieses Verzeichniseintrags sollen Sie in Kontrollaufgabe 67 bestimmen Kontrollaufgabe 67: Hexdump eines Verzeichniseintrags in FAT estimmen Sie folgende Inhalte des einzigen allozierten Eintrags im Wurzelverzeichnis aus eispiel 68 (den Hexdump des FAT-ereichs des Dateisystems finden Sie in eispiel 64): Dateiname, Adresse des ersten Datenclusters, weitere Datencluster, Attribute, Dateigröße, Metadatenadresse für Tools aus dem Sleuthkit K Die Lage des Wurzelverzeichnisses wird bei der Formatierung festgelegt, sie unterscheidet sich für FAT12/16 sowie FAT32 eim Anlegen eines weiteren Verzeichnisses wird ein Cluster alloziert und dieser mit Nullbytes überschrieben Damit erreicht FAT, dass nie allozierte Verzeichniseinträge sofort erkannt werden Die Dateigröße des neuen Verzeichnisses im Elternverzeichnis wird auf den Wert Null gesetzt (siehe Tabelle 65), daher kann die Größe eines Verzeichnisses nur durch Abschreiten der zugehörigen Cluster Chain in der FAT bestimmt werden Die ersten beiden Verzeichniseinträge eines neuen Verzeichnisses sind und, also ein Eintrag für das Verzeichnis selbst und ein Eintrag für das Elternverzeichnis Eine Ausnahme bildet auch hier das Wurzelverzeichnis, das diese zwei Einträge nicht hat Die Zeitstempel für und werden nie geändert und weisen daher Inkonsistenzen zum Elternverzeichnis auf Anlegen eines Verzeichnisses eispiel 69: Hexdump eines Verzeichnisses Wir betrachten die SD-Karte einer Digitalkamera aus eispiel 68 Dort haben wir gesehen, dass es im Wurzelverzeichnis genau einen Eintrag für das Verzeichnis DCIM gibt Dieser Verzeichniseintrag hat die Metadatenadresse 3, wir sehen uns den Hexdump dieses Verzeichnisses mit Hilfe des Tools icat aus dem Sleuthkit an $ icat image-digitalkamera_fs_fatdd 3 hexdump -C

Seite 102 0000 2e 20 20 20 20 20 20 20 20 20 20 10 00 00 49 69 Ii 0010 3d 3a 3d 3a 00 00 49 69 3d 3a 02 00 00 00 00 00 =:=:Ii=: 0020 2e 2e 20 20 20 20 20 20 20 20 20 10 00 00 49 69 Ii 0030 3d 3a 3d 3a 00 00 49 69 3d 3a 00 00 00 00 00 00 =:=:Ii=: 0040 31 30 30 44 53 43 49 4d 20 20 20 10 00 00 49 69 100DSCIM Ii 0050 3d 3a 4a 3a 00 00 e6 8a 4a 3a 03 00 00 00 00 00 =:J:J: 0060 31 30 31 44 53 43 49 4d 20 20 20 10 00 64 5c 51 101DSCIM d\q 0070 41 3b 7d 3b 00 00 a6 99 7d 3b 04 00 00 00 00 00 A;};}; 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 * 4000 Wir sehen, dass genau vier Einträge alloziert sind, nämlich der erste Eintrag (Offset 0x00 bis 0x1F) für das aktuelle Verzeichnis, der zweite Eintrag (Offset 0x20 bis 0x3F) für das Elternverzeichnis (also das Wurzelverzeichnis), der dritte Eintrag (Offset 0x40 bis 0x5F) für das Verzeichnis 100DSCIM sowie der vierte Eintrag (Offset 0x60 bis 0x7F) für das Verzeichnis 101DSCIM Löschen eines Objekts Namenskonflikte gelöschter Objekte Abb 67: Verwaiste Verzeichniseinträge Löscht man eine Datei oder ein Verzeichnis, so wird das erste Zeichen des Namens im zugehörigen Verzeichniseintrag auf 0xe5 gesetzt, der Rest des Verzeichniseintrages, insbesondere der Verweis auf das erste Datencluster, bleibt erhalten Die Cluster der Inhaltsdaten werden in der FAT auf nicht-alloziert (also auf den Wert Null) gesetzt Dadurch ist eine Rekonstruktion der Daten bei nicht-fragmentierten 2 Dateien oder Verzeichnissen einfach möglich, sofern die Inhaltscluster nicht bereits neu überschrieben wurden Für fragmentierte Dateien hängt die Wiederherstellung vom Allokationsalgorithmus des Dateisystems ab Da beim Löschen eines Objektes das erste Zeichen des Namens mit 0xe5 überschrieben wird, kann es zu einem Namenskonflikt kommen Die gelöschten ilder mit den Dateinamen vasejpg und nasejpg werden beispielsweise jeweils zu _asejpg Und der gelöschte Dateiname _ornjpg könnte sich zum eispiel auf das gelöschte ild bornjpg statt auf ein Nacktbild beziehen Cluster 50 Cluster 105 _erzeichnis 105 filetxt 86 bildjpg 50 31 201 105 50 docpdf 310 Cluster 50 Cluster 105 50 105 31 50 file1png 300 filetxt 86 bildjpg docpdf 201 310 2 Sind die Inhaltsdaten nicht fragmentiert, so sind alle Cluster aufeinanderfolgend Mit Hilfe des ersten Clusters und der Dateigröße kann man so die Cluster der Inhaltsdaten des gelöschten Objekts herausschreiben

64 Metadaten in Verzeichnissen im FAT-Dateisystem Seite 103 eim Löschen eines Verzeichnisses wird das erste yte des zugehörigen Verzeichniseintrags im Elternverzeichnis auf e5 gesetzt Die übrigen Informationen bleiben aber erhalten, insbesondere die Clusteradresse des ersten Clusters des gelöschten Verzeichnisses Dadurch kann ein Tool wie fls beim Abschreiten des Verzeichnisbaums auch die Verzeichniseinträge eines gelöschten Verzeichnisses auffinden und auflisten, da ein Verzeichnis meist nur aus einem Cluster besteht Wird allerdings der Verzeichniseintrag des gelöschten Verzeichnisses im Elternverzeichnis neu belegt, geht die Information auf die Clusteradresse der Inhaltsdaten des gelöschten Verzeichnisses verloren Das gelöschte Verzeichnis kann dann über den Verzeichnisbaum nicht gefunden werden Die Einträge in einem solchen Verzeichnis heißen verwaiste Verzeichniseinträge (Orphan Files), weil das Elternverzeichnis zunächst unbekannt ist (es kann über den zweiten Verzeichniseintrag des gelöschten Verzeichnisses gefunden werden, sofern dieser Eintrag noch existiert) In Abbildung 67 sehen Sie ein eispiel für die Entstehung verwaister Verzeichniseinträge Das Verzeichnis verzeichnis steht als dritter Verzeichniseintrag in seinem Elternverzeichnis in Cluster 50 eim Löschen von verzeichnis bleibt der Pointer auf die Clusteradresse 105 erhalten Wird nun eine neue Datei (in Abbildung 67 ist das file1png) in den dritten Verzeichniseintrag des Elternverzeichnisses geschrieben, dann geht der Hinweis auf die Inhaltsdaten von _erzeichnis in Cluster 105 verloren Verwaiste Verzeichniseinträge eispiel 610: Verwaiste Verzeichniseinträge In diesem eispiel betrachten wir erneut die Ausgabe von fls für den US Stick aus eispiel 54 Dort sehen Sie den Anfang der Ausgabe von fls, in dem folgenden Abschnitt der Ausgabe sehen Sie verwaiste Dateien Dazu legt das Sleuthkit ein virtuelles Verzeichnis $OrphanFiles an Darin sehen Sie gelöschte Dateien, die nicht über den Verzeichnisbaum gefunden werden können (daher wird der Dateityp als -/r angegeben) # fls -ar -o 63 /dev/sdb [REMOVED] d/d 32111622: $OrphanFiles + -/r * 7257476: _29-KA~1MP3 + -/r * 7257482: _30-TI~1MP3 + -/r * 7257487: _31-A~1MP3 + -/r * 7257492: _32-FA~1MP3 [REMOVED] Vermutlich handelt es sich bei den verwaisten Dateien um mp3-dateien Die Lage des gelöschten Verzeichnisses kann über die Metadatenadresse berechnet werden Das Vorgehen zur Wiederherstellung der Datei mit Metadatenadresse 7257476 sollen Sie in Kontrollaufgabe beschreiben Kontrollaufgabe 68: Wiederherstellung einer verwaisten Datei eschreiben Sie das Vorgehen zur Wiederherstellung der Datei mit Metadatenadresse 7257476 aus eispiel 610 K Zur Suche nach verwaisten Verzeichniseinträgen bzw gelöschten Verzeichnissen nehmen wir an, dass die Cluster der Inhaltsdaten des gelöschten Verzeichnisses nicht wieder alloziert sind andernfalls ist ein Auffinden verwaister Verzeichniseinträge noch schwieriger, denn sie könnten noch als File Slack in einem Cluster Suche nach gelöschten Verzeichnissen