Come leggere il file di ibernazione di Windows (hiberfil.sys) per estrarre i dati?


8

Ho bisogno di trovare tutti i dati memorizzati nel file di ibernazione analizzandolo. Tuttavia, fino ad ora, sono riuscito a farlo solo manualmente aprendolo in un editor esadecimale e quindi cercando testi in esso. Ho scoperto la Biblioteca SandMan ma non ci sono risorse presenti. Qualche idea su come leggere il file? O c'è qualche strumento / libreria o altro metodo per farlo?


3
un file hiberfil è un'immagine della ram dei sistemi al momento del letargo. in quanto tale, sì, un editor esadecimale è probabilmente il migliore che otterrai. Questa attività non è sostanzialmente diversa dal tentativo di leggere il contenuto della RAM.
Frank Thomas,


1
@FrankThomas sai qual è il formato del file di ibernazione?
coder

@OliverSalzburg Voglio sapere qualche struttura di dati per leggere il file?
coder

1
@WernerHenze per il mio incarico
codificatore

Risposte:


7

Puoi trovare molte informazioni Hiberfil.syssulla pagina ForensicWiki .

Sebbene la maggior parte delle strutture di dati necessarie per analizzare il formato del file siano disponibili nei simboli di debug di Microsoft Windows, la compressione utilizzata (Xpress) non è stata documentata fino a quando non è stata decodificata da Matthieu Suiche. Ha creato con Nicolas Ruff un progetto chiamato Sandman è l'unico strumento open source in grado di leggere e scrivere il file di ibernazione di Windows.

Il pdf del progetto Sandman si trova qui .

I creatori del progetto Sandman hanno anche creato uno strumento per scaricare la memoria e il Hiberfil.sysfile (ed estrarlo dal formato di compressione XPress). MoonSols Windows Memory Toolkit

Alcuni degli altri collegamenti nella pagina di ForensicWiki non funzionano più, ma qui ne ho trovato uno: (Se vuoi immergerti direttamente nella struttura del formato puoi usare questa risorsa. Per l'intestazione, i primi 8192 byte del file, non è necessario decomprimerli)

Hibernation File Format.pdf

Questo ultimo PDF e l' ultimo link nella pagina di ForensicWiki dovrebbero fornire informazioni sufficienti sulla struttura del file Hiberfil.sys.

I file di ibernazione sono costituiti da un'intestazione standard (PO_MEMORY_IMAGE), un insieme di contesti e registri del kernel come CR3 (_KPROCESSOR_STATE) e diversi array di blocchi di dati Xpress compressi / codificati (_IMAGE_XPRESS_HEADER e _PO_MEMORY_RANGE_ARRAY).

L'intestazione standard esiste all'offset 0 del file e viene mostrata di seguito. Generalmente, il membro Signature deve essere "hibr" o "wake" per essere considerato valido, tuttavia in rari casi l'intera intestazione PO_MEMORY_IMAGE è stata azzerata, il che può impedire l'analisi del file di ibernazione nella maggior parte degli strumenti. In questi casi, la volatilità utilizzerà un algoritmo a forza bruta per individuare i dati di cui ha bisogno.

I riferimenti in questi documenti dovrebbero darti molte altre fonti da esplorare.


3

Consiglio vivamente di dare un'occhiata a questa risposta da security.stackexchange.com . Mostra un ottimo modo, come estrarre i dati e anche le informazioni sull'algoritmo stesso.

Ho evidenziato le parti importanti.

Sì, lo memorizza non crittografato sul disco. È un file nascosto in C:\hiberfil.sys, che verrà sempre creato su qualsiasi sistema in cui è abilitato l'ibernazione. I contenuti vengono compressi utilizzando l'algoritmo Xpress, la cui documentazione è disponibile come documento Word da Microsoft . Matthieu Suiche ne ha fatto un'analisi completa come una presentazione di BlackHat nel 2008, che puoi ottenere in formato PDF . C'è anche uno strumento chiamato MoonSols Windows Memory Toolkit che ti consente di scaricare il contenuto del file. Non so se ti permetta di riconvertire, però. Potrebbe essere necessario lavorare su un modo per farlo da soli.

Una volta estratti i dati, è possibile estrarre o modificare i dati, comprese le istruzioni. In termini di mitigazione, la soluzione migliore è utilizzare la crittografia dell'intero disco come BitLocker o TrueCrypt.

fonte


3

Converti il ​​file hiberfil.sys in un'immagine non elaborata utilizzando http://code.google.com/p/volatility/downloads/list . L'ultima versione al momento è 2.3.1. In particolare, è possibile utilizzare la seguente riga di comando per creare prima l'immagine non elaborata: -f imagecopy -O hiberfil_sys.raw. Ciò creerà un'immagine non elaborata per l'esecuzione della volatilità e consentirà di estrarre informazioni come processo, connessioni, socket e hive del registro (solo per citarne alcuni). Un elenco completo dei plug-in è disponibile qui: https://code.google.com/p/volatility/wiki/Plugins . Naturalmente, la redline obbligatoria è un altro strumento che fornisce tale funzionalità. Spero che questo abbia aiutato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.