Como ler o arquivo de hibernação do Windows (hiberfil.sys) para extrair dados?


8

Preciso encontrar o que todos os dados estão armazenados no arquivo de hibernação, analisando-os. No entanto, até agora, só consegui fazê-lo manualmente, abrindo-o em um editor Hex e depois pesquisando textos nele. Eu descobri a SandMan Library, mas não há nenhum recurso presente. Alguma idéia de como ler o arquivo? Ou existe alguma ferramenta / biblioteca ou outro método para fazer isso?


3
um arquivo hiberfil é uma imagem da ram do sistema no momento em que foi hibernada. portanto, sim, é provável que um Editor Hex seja o melhor que você obterá. Essa tarefa não é essencialmente diferente de tentar ler o conteúdo da sua RAM.
Frank Thomas


11
@FrankThomas, você sabe qual é o formato do arquivo de hibernação?
Codificador

@OliverSalzburg Quero conhecer alguma estrutura de dados para ler o arquivo?
Codificador

11
@WernerHenze for my assignment
codificador

Respostas:


7

Você pode encontrar muitas informações sobre isso Hiberfil.sysna página ForensicWiki .

Embora a maioria das estruturas de dados necessárias para analisar o formato do arquivo esteja disponível nos símbolos de depuração do Microsoft Windows, a compactação usada (Xpress) não foi documentada até a engenharia reversa de Matthieu Suiche. Ele criou com Nicolas Ruff um projeto chamado Sandman é a única ferramenta de código aberto que pode ler e gravar o arquivo de hibernação do Windows.

O pdf do projeto Sandman é encontrado aqui .

Os criadores do projeto Sandman também criaram uma ferramenta para despejar a memória e o Hiberfil.sysarquivo (e extraí-lo do formato de compressão XPress). MoonSols Windows Memory Toolkit

Alguns dos outros links da página ForensicWiki não funcionam mais, mas aqui encontrei um: (Se você quiser mergulhar diretamente na estrutura do formato, poderá usar este recurso. Para o cabeçalho, os primeiros 8192 bytes do arquivo, você não precisa descompactá-los)

Formato de arquivo de hibernação.pdf

Este último PDF e o último link na página ForensicWiki devem fornecer informações suficientes sobre a estrutura da Hiberfil.sys.

Os arquivos de hibernação consistem em um cabeçalho padrão (PO_MEMORY_IMAGE), um conjunto de contextos e registros do kernel como CR3 (_KPROCESSOR_STATE) e várias matrizes de blocos de dados Xpress compactados / codificados (_IMAGE_XPRESS_HEADER e _PO_MEMORY_RANGE_ARRAY).

O cabeçalho padrão existe no deslocamento 0 do arquivo e é mostrado abaixo. Geralmente, o membro Signature deve ser "hibr" ou "wake" para ser considerado válido, no entanto, em casos raros, todo o cabeçalho PO_MEMORY_IMAGE foi zerado, o que pode impedir a análise do arquivo de hibernação na maioria das ferramentas. Nesses casos, a volatilidade usará um algoritmo de força bruta para localizar os dados necessários.

As referências nesses documentos devem fornecer muitas outras fontes para explorar também.


3

Eu recomendo que você dê uma olhada nesta resposta em security.stackexchange.com . Ele mostra uma ótima maneira, como extrair os dados e também informações sobre o próprio algoritmo.

Eu destaquei as partes importantes.

Sim, ele não é criptografado no disco. É um arquivo oculto em C:\hiberfil.sys, que sempre será criado em qualquer sistema com a hibernação ativada. O conteúdo é compactado usando o algoritmo Xpress, cuja documentação está disponível como um documento do Word da Microsoft . Matthieu Suiche fez uma análise abrangente dele como uma apresentação do BlackHat em 2008, que você pode obter em PDF . Há também uma ferramenta chamada MoonSols Windows Memory Toolkit que permite despejar o conteúdo do arquivo. Eu não sei se isso permite que você se converta novamente. Você pode ter que trabalhar em uma maneira de fazer isso sozinho.

Depois de extrair os dados, é possível extrair ou modificar dados, incluindo instruções. Em termos de mitigação, sua melhor solução é usar a criptografia de disco completo, como o BitLocker ou o TrueCrypt.

Fonte


3

Converta o arquivo hiberfil.sys em uma imagem bruta usando http://code.google.com/p/volatility/downloads/list . A versão mais recente a partir de agora é 2.3.1. Especificamente, você pode usar a seguinte linha de comandos para criar primeiro a imagem não processada: -f imagecopy -O hiberfil_sys.raw. Isso criará uma imagem bruta para você executar a volatilidade, contra a qual o ajudará a extrair informações como processo, conexões, soquetes e seções do registro (apenas para citar alguns). Uma lista completa dos plug-ins pode ser encontrada aqui: https://code.google.com/p/volatility/wiki/Plugins . Obviamente, o redline mandante é outra ferramenta que fornece essa funcionalidade. Espero que isso tenha ajudado.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.