Jak odczytać plik hibernacji systemu Windows (hiberfil.sys), aby wyodrębnić dane?

8

Muszę znaleźć to, co wszystkie dane są przechowywane w pliku hibernacji, analizując je. Jednak do tej pory udało mi się to zrobić tylko ręcznie, otwierając go w edytorze heksadecymalnym, a następnie wyszukując w nim teksty. Znalazłem o SandMan Library, ale nie ma żadnych zasobów. Masz pomysł, jak odczytać plik? A może istnieje jakieś narzędzie / biblioteka lub inna metoda?

koder
źródło
3
plik hiberfil jest obrazem pamięci RAM systemu w momencie hibernacji. jako taki, tak, Edytor Hex jest prawdopodobnie najlepszym, jaki dostaniesz. To zadanie zasadniczo nie różni się od próby odczytania zawartości pamięci RAM.
Frank Thomas
1
@FrankThomas czy wiesz, jaki jest format pliku hibernacji?
koder
@OliverSalzburg Chcę poznać strukturę danych, aby odczytać plik?
koder
1
@WernerHenze dla mojego zadania
koder

Odpowiedzi:

7

Możesz znaleźć wiele informacji na temat Hiberfil.sysna stronie ForensicWiki .

Chociaż większość struktur danych wymaganych do analizy formatu pliku jest dostępnych w symbolach debugowania Microsoft Windows, zastosowana kompresja (Xpress) była nieudokumentowana, dopóki nie została poddana inżynierii wstecznej przez Matthieu Suiche. Stworzył wraz z Nicolasem Ruffem projekt o nazwie Sandman to jedyne narzędzie typu open source, które może odczytywać i zapisywać plik hibernacji Windows.

Plik pdf projektu Sandman znajduje się tutaj .

Twórcy projektu Sandman stworzyli również narzędzie do zrzutu pamięci i Hiberfil.syspliku (i wyodrębnienia go z formatu kompresji XPress). MoonSols Windows Memory Toolkit

Niektóre inne linki na stronie ForensicWiki już nie działają, ale oto jeden z nich znalazłem: (Jeśli chcesz nurkować prosto w strukturze formatu, możesz użyć tego zasobu. W nagłówku pierwsze 8192 bajtów plik, nie trzeba ich rozpakowywać)

Format pliku hibernacji.pdf

Ten ostatni plik PDF i ostatni link na stronie ForensicWiki powinien dostarczyć wystarczającej ilości informacji o strukturze pliku Hiberfil.sys.

Pliki hibernacji składają się ze standardowego nagłówka (PO_MEMORY_IMAGE), zestawu kontekstów jądra i rejestrów, takich jak CR3 (_KPROCESSOR_STATE) i kilku tablic skompresowanych / zakodowanych bloków danych Xpress (_IMAGE_XPRESS_HEADER i _PO_MEMORY_RANGE_ARRAY).

Standardowy nagłówek istnieje przy przesunięciu 0 pliku i pokazano poniżej. Ogólnie rzecz biorąc, podpis musi być „hibr” lub „wybudzić”, aby można go było uznać za ważny, jednak w rzadkich przypadkach cały nagłówek PO_MEMORY_IMAGE został wyzerowany, co może uniemożliwić analizę pliku hibernacji w większości narzędzi. W takich przypadkach zmienność wykorzysta algorytm brutalnej siły do ​​zlokalizowania potrzebnych danych.

Odwołania w tych dokumentach powinny również udostępnić wiele innych źródeł do zbadania.

Rik
źródło
3

Gorąco polecam zapoznać się z tą odpowiedzią z security.stackexchange.com . Pokazuje świetny sposób, jak wyodrębnić dane, a także informacje o samym algorytmie.

Mam podkreślił ważnych części.

Tak, przechowuje je niezaszyfrowane na dysku. Jest to ukryty plik w C:\hiberfil.sys, który zawsze będzie tworzony w każdym systemie, który ma włączoną hibernację. Zawartość jest kompresowana za pomocą algorytmu Xpress, którego dokumentacja jest dostępna jako dokument Word od Microsoft . Matthieu Suiche przeprowadził kompleksową analizę tego jako prezentacji BlackHat w 2008 roku, którą można uzyskać w formacie PDF . Istnieje również narzędzie o nazwie MoonSols Windows Memory Toolkit, które pozwala zrzucić zawartość pliku. Nie wiem jednak, czy pozwala to na konwersję z powrotem. Być może będziesz musiał znaleźć sposób, aby to zrobić samemu.

Po wyjęciu danych można wyodrębnić lub zmodyfikować dane, w tym instrukcje. Jeśli chodzi o ograniczanie ryzyka, najlepszym rozwiązaniem jest zastosowanie szyfrowania całego dysku, takiego jak BitLocker lub TrueCrypt.

Źródło

chrześcijanin
źródło
3

Konwertuj plik hiberfil.sys do surowego obrazu za pomocą http://code.google.com/p/volatility/downloads/list . Najnowsza wersja to 2.3.1. W szczególności możesz użyć następującego wiersza poleceń, aby najpierw utworzyć surowy obraz: -f imagecopy -O hiberfil_sys.raw. Spowoduje to utworzenie nieprzetworzonego obrazu, na podstawie którego można następnie przeprowadzić zmienność, co pomoże Ci wyodrębnić informacje, takie jak proces, połączenia, gniazda i gałęzie rejestru (żeby wymienić tylko kilka). Pełna lista wtyczek znajduje się tutaj: https://code.google.com/p/volatility/wiki/Plugins . Oczywiście mandiantowa linia jest kolejnym narzędziem zapewniającym tę funkcjonalność. Mam nadzieję, że to pomogło.

labgeek
źródło