Zrozumienie ochronnego MBR na dyskach z partycjami GPT. Część 1.

Wprowadzenie

W tej serii wpisów na blogu będę zagłębiał się w schemat tabeli partycji GUID. Moim celem jest zapewnienie jasnego zrozumienia schematu GPT i tego, w jaki sposób umożliwia on śledczym dokładną analizę i odzyskiwanie danych z nowoczesnych urządzeń pamięci masowej. Obsługa GPT dla większych dysków, wielu partycji i ulepszonych funkcji integralności danych, takich jak redundancja i ochrona CRC, zapewnia śledczym dostęp i weryfikację wszystkich niezbędnych danych. Co więcej, kompatybilność GPT ze współczesnymi systemami operacyjnymi i oprogramowaniem układowym UEFI zwiększa możliwość przeprowadzania kompleksowych badań kryminalistycznych, czyniąc go niezbędnym do odkrywania dowodów cyfrowych i zapewnienia integralności i wiarygodności ustaleń kryminalistycznych. 

Zacznę od Protective MBR i tego, czym różni się on od tradycyjnego MBR używanego ze starszymi dyskami w BIOS-ie. Następnie omówię nagłówek GPT, a następnie tablicę wpisów GPT. Na koniec podzielę się kilkoma końcowymi przemyśleniami i wskazówkami dotyczącymi wyjaśniania tych pojęć laikom, na przykład podczas zeznawania przed sędzią lub ławą przysięgłych.

Ostatecznie, po przeczytaniu tej serii, nie będziesz miał problemu z podjęciem wyzwania CTF na naszej platformie CTF.

CZĘŚĆ 1

Ochronny MBR

Główny rekord rozruchowy (MBR) ze starszego punktu widzenia zapewniał nam mapę drogową do zlokalizowania do czterech partycji podstawowych na dysku twardym. Każdy 16-bajtowy wpis partycji prowadził nas do lokalizacji tej partycji, niezależnie od tego, czy była to partycja FAT32, czy NTFS. Jednak stary MBR miał ograniczenia, w tym między innymi:

  • Limit rozmiaru wynoszący 2 TB.
  • Ograniczenie do 4 partycji podstawowych; jeśli potrzeba ich więcej, jedna z nich zostanie wyznaczona jako partycja rozszerzona.
  • Pojedynczy punkt awarii, ponieważ MBR, który zawiera tablicę partycji, znajdował się w sektorze 0 bez kopii zapasowej.

LBA 0 (sektor logiczny 0) dysku twardego GPT zawiera tak zwany ochronny MBR, a nie starszy MBR. Pomyśl o Protective MBR jak o znaku przy wejściu do biblioteki, który mówi wszystkim: "Hej, ta biblioteka używa teraz nowego i ulepszonego systemu. Nie używaj starej metody, ponieważ tutaj nie zadziała".

Zamiast zawierać lokalizację tylko czterech partycji podstawowych na dysku, Protective MBR oznacza cały dysk jako używany przez GPT, wskazując starszym systemom, że dysk jest w pełni wykorzystywany. Protective MBR istnieje tylko dla kompatybilności wstecznej. Zawiera TYLKO jeden wpis partycji, który oznacza dysk i zapobiega błędnej interpretacji struktury dysku przez starsze narzędzia. 

Struktura ochronnego reaktora MBR

Pierwsze 440 bajtów ochronnego MBR zawiera kod rozruchowy, który nie jest używany przez systemy UEFI. Jest on ignorowany.  

Poniżej znajduje się hipotetyczny układ dysku ze świeżą instalacją systemu Windows 10 z tylko jedną partycją utworzoną podczas procesu instalacji, dysk C:. Partycja systemowa UEFI jest tworzona automatycznie i ukryta przed użytkownikiem, a partycja Microsoft Reserved jest również tworzona podczas instalacji i ukryta przed użytkownikiem. 

Tutaj możemy zobaczyć MBR Protective rezydujący w LBA 0, który wskazuje na nagłówek GPT w LBA 1.

Układ szesnastkowy ochronnego MBR

Oto przykładowy układ szesnastkowy ochronnego MBR:

Jak wspomniano wcześniej, pierwsze 440 bajtów kodu rozruchowego nie jest używane przez systemy UEFI. W niektórych systemach te pierwsze 440 bajtów może być wyzerowane. Oto ochronny MBR ze stacji roboczej, której używam do pisania tego bloga, gdzie używam dysku Samsung 1TB NVME:

Jak widać, cały Protective MBR w tym przypadku zawiera zera z wyjątkiem czterech bajtów znajdujących się na offsecie 440 (które nie są używane), pierwszego "wpisu partycji podstawowej" (który wskazuje tylko na LBA 1 - nagłówek GPT) oraz sygnatury rozruchowej znajdującej się na dwóch ostatnich bajtach sektora (0x55AA). 

Przyjrzyjmy się teraz bliżej jednemu wpisowi partycji, który istnieje w Protective MBR:

Pierwszy bajt wpisu partycji jest ustawiony na 0x00, aby wskazać, że nie jest to partycja rozruchowa. W tradycyjnym MBR wartość ta wynosiłaby 0x00 (nie bootowalna) lub 0x80 (bootowalna). Następne trzy bajty reprezentują Rozpoczęcie CHS (Cylinder/Głowa/Sektor), która będzie odpowiadać 4-bajtowej wartości w polu Rozpoczęcie LBA przy przesunięciu bajtu 8. Wartość początkowa CHS zostanie ustawiona na 0x000200 który po rozbiciu i przekonwertowaniu na adres LBA wynosi 1.

Następująca wartość jednobajtowa jest ustawiona na 0xEE dla typu systemu operacyjnego: GPT Protective. Trzybajtowa wartość na offsecie 5 jest ustawiona na adres CHS ostatniego bloku logicznego na dysku. Początkowy LBA, prowadzący nas do nagłówka partycji GPT, znajduje się na offsecie 8 dla czterech bajtów, a jego wartość zostanie ustawiona na 0x01000000 (lub LBA 1 przy odczycie little endian). Ostatnie 4 bajty rekordu w przesunięciu 12 reprezentują rozmiar dysku minus jeden. Jest on ustawiony na 0xFFFFFFFF jeśli rozmiar dysku jest zbyt duży, aby mógł być reprezentowany w tym polu, co najprawdopodobniej ma miejsce.

Naprawa ochronnego MRB

Jeśli MBR został uszkodzony, utracony lub wyczyszczony, można zastąpić sektor 0, kopiując ochronny MBR z innego dysku. Można również utworzyć go od podstaw, pozostawiając 0x00 od offsetu 0 do 446, a następnie tworząc ogólny wpis partycji wskazujący na LBA 1, upewniając się, że 0xEE istnieje na offsecie 4, aby wskazać typ GPT Protective OS. Na koniec należy umieścić sygnaturę rozruchową (0x55AA) na ostatnich dwóch bajtach sektora.

Wpis ogólny

446447448449450451452453454455456457458459460461
00000200EEFFFFFF01000000FFFFFFFF

Podpis buta

510511
55AA

W przypadku odbudowanego MBR Protective wystarczą następujące czynności:

Wnioski

W tej pierwszej części zbadaliśmy ochronny MBR i jego kluczową rolę w zapewnianiu wstecznej kompatybilności ze starszymi systemami. Zbadaliśmy, w jaki sposób Protective MBR oznacza cały dysk jako używany przez GPT, zapobiegając błędnej interpretacji struktury dysku przez starsze systemy. Dzięki zrozumieniu struktury i funkcji Protective MBR, masz teraz solidne podstawy do zagłębienia się w schemat GPT.

Idąc dalej, skupimy się na nagłówku GPT, kamieniu węgielnym schematu GPT, który definiuje układ dysku i zapewnia integralność danych. W części 2 omówimy nagłówek GPT, analizując każde pole i jego znaczenie. Bądź na bieżąco, ponieważ nadal odkrywamy zawiłości schematu GPT, dając ci wiedzę, która pozwoli ci skutecznie zarządzać i odzyskiwać dane z nowoczesnych urządzeń pamięci masowej.

Chcesz zagłębić się w strukturę GPT?

W Część 2rozkładamy Nagłówek GPT i wyjaśnić, w jaki sposób zapewnia integralność danych na dysku.
Następnie w Część 3badamy Tablica wpisów partycji GPT i co analitycy kryminalistyczni powinni wiedzieć podczas rekonstrukcji tabel partycji.

Facebook
Twitter
E-mail
Drukuj

5 Odpowiedzi

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Subskrybuj, aby być na bieżąco!

Nie przegap żadnego postu - otrzymuj powiadomienia za każdym razem, gdy opublikujemy nowy artykuł na blogu, przewodnik kryminalistyczny lub udostępnimy ważne aktualizacje.

Najnowszy post