Der schützende MBR auf GPT-partitionierten Festplatten. Teil 1.

Einführung

In dieser Reihe von Blog-Beiträgen werde ich mich eingehend mit dem GUID Partition Table Schema befassen. Mein Ziel ist es, ein klares Verständnis des GPT-Schemas zu vermitteln und zu zeigen, wie es forensischen Ermittlern ermöglicht, Daten von modernen Speichergeräten genau zu analysieren und wiederherzustellen. Die Unterstützung von GPT für größere Festplatten, mehrere Partitionen und verbesserte Datenintegritätsfunktionen wie Redundanz und CRC-Schutz gewährleistet, dass Ermittler auf alle erforderlichen Daten zugreifen und diese überprüfen können. Darüber hinaus verbessert die Kompatibilität von GPT mit modernen Betriebssystemen und UEFI-Firmware die Fähigkeit zur Durchführung umfassender forensischer Untersuchungen, was es für die Aufdeckung digitaler Beweise und die Sicherstellung der Integrität und Zuverlässigkeit forensischer Ergebnisse unverzichtbar macht. 

Ich beginne mit dem Protective MBR und wie er sich von dem traditionellen MBR unterscheidet, der bei Legacy-Laufwerken im BIOS verwendet wird. Als nächstes werde ich Ihnen den GPT-Header und dann das GPT-Entry-Array vorstellen. Abschließend werde ich einige abschließende Gedanken und Tipps geben, wie man diese Konzepte einem Laien erklären kann, z. B. wenn man vor einem Richter oder einer Jury aussagt.

Nachdem Sie diese Serie gelesen haben, werden Sie keine Probleme mehr haben, eine CTF-Herausforderung auf unserer CTF-Plattform zu bewältigen.

TEIL 1

Der schützende MBR

Der Master-Boot-Record (MBR) lieferte uns einen Fahrplan, um bis zu vier primäre Partitionen auf einer Festplatte zu finden. Jeder 16-Byte-Partitionseintrag führte uns zum Speicherort der jeweiligen Partition, unabhängig davon, ob es sich um FAT32 oder NTFS handelte. Der alte MBR wies jedoch einige Einschränkungen auf, unter anderem:

  • Eine Größenbeschränkung von 2 TB.
  • Begrenzt auf 4 primäre Partitionen; wenn mehr benötigt werden, wird eine dieser primären Partitionen als erweiterte Partition bezeichnet.
  • Ein einzelner Fehlerpunkt, da sich der MBR, der die Partitionstabelle enthält, im Sektor 0 befand und keine Sicherung vorhanden war.

LBA 0 (logischer Sektor 0) einer GPT-Festplatte enthält einen so genannten Protective MBR und keinen Legacy MBR. Stellen Sie sich den Protective MBR als ein Schild am Eingang der Bibliothek vor, das jedem sagt: "Hey, diese Bibliothek verwendet jetzt ein neues und verbessertes System. Verwenden Sie nicht die alte Methode, denn die funktioniert hier nicht."

Der Protective MBR enthält nicht nur die Position der vier primären Partitionen auf dem Laufwerk, sondern kennzeichnet die gesamte Festplatte als von GPT verwendet, was älteren Systemen anzeigt, dass die Festplatte voll ausgelastet ist. Der Protective MBR existiert nur aus Gründen der Abwärtskompatibilität. Er enthält NUR einen Partitionseintrag, der die Festplatte kennzeichnet und verhindert, dass ältere Tools die Festplattenstruktur falsch interpretieren. 

Aufbau des schützenden MBR

Die ersten 440 Bytes des geschützten MBR enthalten Boot-Code, der von UEFI-Systemen nicht verwendet wird. Er wird ignoriert.  

Unten sehen Sie ein hypothetisches Layout einer Festplatte mit einer frischen Windows 10-Installation, bei der nur eine Partition während des Installationsprozesses erstellt wurde, das Laufwerk C:. Die UEFI-Systempartition wird automatisch erstellt und vor dem Benutzer verborgen, und die Microsoft Reserved Partition wird ebenfalls während der Installation erstellt und vor dem Benutzer verborgen. 

Hier sehen wir den Protective MBR auf LBA 0, der auf den GPT-Header auf LBA 1 verweist.

Hex-Layout des schützenden MBR

Hier ist ein Beispiel für das Hex-Layout des Protective MBR:

Wie bereits erwähnt, werden die ersten 440 Bytes des Boot-Codes von UEFI-Systemen nicht verwendet. Auf einigen Systemen sind diese ersten 440 Bytes auf Null gesetzt. Hier ist der Protective MBR von der Workstation, die ich zum Schreiben dieses Blogs verwende, wobei ich ein Samsung 1 TB NVME-Laufwerk verwende:

Wie Sie sehen können, enthält der gesamte Protective MBR in diesem Fall Nullen mit Ausnahme der vier Bytes bei Offset 440 (die nicht verwendet werden), des ersten "primären Partitionseintrags" (der lediglich auf LBA 1 - den GPT-Header - verweist) und der Boot-Signatur, die sich in den letzten beiden Bytes des Sektors (0x55AA) befindet. 

Schauen wir uns nun den einen Partitionseintrag an, der in einem Protective MBR existiert:

Das erste Byte des Partitionseintrags ist auf 0x00 gesetzt, um anzuzeigen, dass es sich nicht um eine bootfähige Partition handelt. In einem traditionellen MBR würde dieser Wert entweder 0x00 (nicht bootfähig) oder 0x80 (bootfähig) sein. Die nächsten drei Bytes repräsentieren die CHS starten Stelle (Zylinder/Kopf/Sektor), die dem 4-Byte-Wert in der Datei LBA starten Feld an Byte-Offset 8. Der CHS-Startwert wird gesetzt auf 0x000200 die, aufgeschlüsselt und in eine LBA-Adresse umgewandelt, 1 ist.

Der folgende Ein-Byte-Wert wird auf 0xEE für den Betriebssystemtyp: GPT Schutzmaßnahmen. Der Drei-Byte-Wert an Offset 5 wird auf die CHS-Adresse des letzten logischen Blocks auf der Festplatte gesetzt. Die Anfangs-LBA, die uns zum GPT-Partitions-Header führt, befindet sich an Offset 8 für vier Bytes, und der Wert wird gesetzt auf 0x01000000 (oder LBA 1 beim Lesen in Little Endian). Die letzten 4 Bytes des Datensatzes an Offset 12 stellen die Größe der Festplatte minus eins dar. Sie wird gesetzt auf 0xFFFFFFFF wenn die Größe des Datenträgers zu groß ist, um in diesem Feld dargestellt zu werden, was höchstwahrscheinlich der Fall ist.

Reparatur eines MRB-Schutzes

Wenn der MBR beschädigt wurde, verloren gegangen ist oder gelöscht wurde, können Sie Sektor 0 ersetzen, indem Sie den MBR von einem anderen Laufwerk kopieren. Sie können auch einen neuen MBR erstellen, indem Sie 0x00 von Offset 0 bis 446 beibehalten und dann einen generischen Partitionseintrag erstellen, der auf LBA 1 verweist, und sicherstellen, dass 0xEE an Offset 4 vorhanden ist, um den GPT Protective OS-Typ anzugeben. Abschließend platzieren Sie die Boot-Signatur (0x55AA) an den letzten beiden Bytes des Sektors.

Generischer Eintrag

446447448449450451452453454455456457458459460461
00000200EEFFFFFF01000000FFFFFFFF

Boot-Signatur

510511
55AA

Für einen neu erstellten Protective MBR würde das Folgende ausreichen:

Schlussfolgerung

In dieser ersten Folge haben wir uns mit dem Protective MBR und seiner entscheidenden Rolle bei der Gewährleistung der Abwärtskompatibilität mit älteren Systemen beschäftigt. Wir haben untersucht, wie der Protective MBR die gesamte Festplatte als von GPT verwendet kennzeichnet und damit verhindert, dass ältere Systeme die Struktur der Festplatte falsch interpretieren. Mit dem Verständnis der Struktur und Funktion des Protective MBR haben Sie nun eine solide Grundlage, um tiefer in das GPT-Schema einzutauchen.

Im weiteren Verlauf werden wir uns auf den GPT-Header konzentrieren, den Eckpfeiler des GPT-Schemas, der das Festplattenlayout definiert und die Datenintegrität gewährleistet. In Teil 2 werden wir den GPT-Header aufschlüsseln und jedes Feld und seine Bedeutung untersuchen. Bleiben Sie dran, wenn wir die Komplexität des GPT-Schemas weiter enträtseln und Sie mit dem Wissen ausstatten, das Sie brauchen, um Daten von modernen Speichergeräten effektiv zu verwalten und wiederherzustellen.

Möchten Sie tiefer in die GPT-Struktur eintauchen?

Unter Teil 2wir schlüsseln die GPT-Kopfzeile und erläutern Sie, wie es die Datenintegrität auf der Festplatte sicherstellt.
Dann in Teil 3erforschen wir die GPT Partition Eintrag Array und was forensische Analysten bei der Rekonstruktion von Partitionstabellen wissen müssen.

Facebook
Twitter
E-Mail
Drucken

5 Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert