Extraindo a MFT de uma Imagem Forense

Opa, e aí galera

Tudo bem?
Hoje, nós vamos falar sobre como extrair a MFT de uma imagem forense. Obviamente que a MFT é um recurso do Windows. Então, nesse post aqui, nós estaremos analisando uma imagem forense do windows.

1) Introdução
Mas qual a importância da MFT para a análise forense de uma imagem? A MFT é o principal arquivo no NTFS. Nela estão armazenadas referências de todos os arquivos e diretórios do sistema operacional. A MFT armazena os timestamps de cada arquivo, o tamanho, o dono dos arquivos/diretórios, permissões de segurança do arquivo/diretório, etc.
Todas essas informações são armazenadas no que chamamos de MFT Entry.
Cada arquivo/diretório possui uma mft entry (entrada mft). Essa entrada mft (mft entry) é como se fosse um ponteiro, similar ao inode no mundo UNIX.
Portanto, a mft entry contém informações (metadados) sobre o arquivo ao qual ela aponta.

Normalmente, cada entrada mft (mft entry) possui 1024 KB de tamanho. Se olharmos cada entrada mft em um editor hexadecimal, vamos ver que ela começa com a string "file0" ou "file", seguida de informações específicas.
As primeiras 16 entradas da MFT são reservadas para arquivos do NTFS, por exemplo, $BitMap e $Log.

Para o NTFS, tudo é arquivo, inclusive a MFT (que contém informações sobre os arquivos). Portanto, a MFT possui uma entrada pra ela mesma. Este é o primeiro arquivo de toda MFT: uma entrada pra ela mesma, que é representada por $MFT (mft entry 0). O segundo arquivo da MFT é o arquivo $MFTMirr (mft entry 1). O objetivo de existir o $MFTMirr é se ocorrer algum tipo de problema com as primeiras entradas reservadas da mft, eu tenho o $MFTMirr. Ou seja: o $MFTMirr é um backup das 16 entradas reservadas da MFT.

2) Extraindo a MFT de uma Imagem Forense
Eu já vou partir do pressuposto de que vocês já tenham uma imagem forense de um Windows qualquer. E aí, como eu faço para extrair a MFT da imagem forense? Resposta: eu vou mostrar 2 maneiras de extrair a MFT de uma imagem forense:
  1. usando o FTK Imager
  2. usando ferramentas do sleuthkit
2.1) Extraindo com o FTK Imager
Uma maneira simples de se extrair a MFT de uma imagem forense é usar a ferramenta FTK Imager. A figura a seguir mostra um exemplo:

Depois de exportar a MFT, eu vou gerar um arquivo dela. Assim, eu posso escolher qualquer ferramenta que faça o parsing da MFT e analisá-la.
Muito simples, né? :)

2.2) Extraindo a MFT com o Sleuthkit
Uma outra forma de extrair a MFT é fazendo uso do sleuthkit.
Cabe ressaltar que o arquivo $MFT ocupa a primeira posição (posição 0) na MFT. Como eu sei disso? Basta digitar o comando fls "imagem". Assim, a linha de comando é: fls image.001

Neste exemplo, a minha imagem forense se chama image.001.
O utilitário fls lista os arquivos e os diretórios de uma imagem forense.
OBS: a imagem não está montada, por isso eu usei o fls. Se ela estivesse montada, eu poderia usar o comando ls com os parâmetros -lhi.

Depois de usar o utilitário fls, eu vou usar o utilitário icat. O icat serve para copiar um determinado arquivo da imagem forense, tendo como base um determinado inode/mft entry. Isso significa que temos que passar um endereço (número do inode/mft entry) correspondente ao arquivo que queremos copiar da imagem forense.
No nosso exemplo, eu vou copiar a MFT da imagem forense. Como o inode da MFT é 0 (zero), eu vou passar esse endereço na linha de comando do icat.
Portanto, a linha de comando do icat fica assim:
icat -i raw -f ntfs image.001 0 > MFT.raw

Que parâmetros são esses?
É simples. O parâmetro -i indica que a imagem original de onde vamos extrair a mft é uma imagem forense do tipo/formato raw. O parâmetro -f indica que o sistema de arquivos da imagem forense é NTFS. E esse parâmetro 0 (zero), como já dissemos anteriormente, é o endereço da entrada mft da própria mft. No caso, a mft possui como entrada o endereço 0 (zero). Ou seja, a mft entry da própria mft é 0 (zero).

OBS: Existem outras ferramentas que fazem esse trabalho de extrair a MFT de uma imagem forense. Como exemplo, vocês podem ver aqui.

Pronto, agora extraímos a MFT da imagem forense. Qual o próximo passo? É analisar a mft extraída.
Mas isso fica para os próximos capítulos. :)

Bom, é isso galera
Espero que seja útil para o estudo e trabalho de vocês
Um abraço!




Referências:
http://sysforensics.org/2012/01/sift-workstation-video-4-extracting-mft-using-mmls-icat-and-log2timeline/
https://whereismydata.wordpress.com/2009/06/05/forensics-what-is-the-mft/
https://whereismydata.wordpress.com/2008/08/22/file-system-mft-entries-basic/
http://www.cse.scu.edu/~tschwarz/coen252_07Fall/Lectures/NTFS.html
http://grayscale-research.org/new/pdfs/NTFS%20forensics.pdf
https://en.wikipedia.org/wiki/NTFS

Um comentário: