Post

Análisis de NTFS

Análisis de NTFS

Tabla de Contenidos

  1. Active Disk Editor
  2. Identificación a bajo nivel
  3. MFT2CSV
  4. NTFSLogFile
  5. UsnJrnl2Csv
  6. ANJP
  7. Análisis del origen de archivos
  8. Indx2Csv
  9. Recuva VS FTK Imager

1. Active Disk Editor

Vamos a identificar con la herramienta ADE, mediante la inspección de los registros MFT (1KB), cuales de ellos han sido borrados en base a la propiedad FLAGS (campo “in use” = ‘0’)

Partición NTFS con tablas MBR Vemos que se trata de una partición NTFS con tablas de particiones MBR.

Identificar inicio del boot record NTFS

La ubicación de la Master File Table (MFT) en un sistema NTFS se encuentra en el Boot Sector de la partición NTFS. Este es el primer sector de la partición (sector 0 del volumen NTFS).

Editar partición NTFS Hacemos click derecho para editar la partición NTFS

En el sector de arranque, la información relevante está estructurada como sigue:

  • Byte 48 a 55 (0x30 a 0x37): Cluster de inicio de la MFT
  • Byte 56 a 63 (0x38 a 0x3F): Cluster de inicio de la MFT espejo (MFTMirr)

Boot sector structure

Leer el valor del clúster inicial de la MFT

En el Boot Sector (primer sector de la partición NTFS), ubica los siguientes bytes:

MFT inicio cluster Byte offset 48 a 55 (0x30 a 0x37): Clúster de inicio de la MFT

Hacemos CTRL + click para ir al cluster de inicio del archivo. Otro método es hacer clic en navigate MFT

Registro MFT Esto mostrará el registro MFT

MFT en uso En este archivo MFT vemos que está en uso

Busqueda de archivos eliminados

Teniendo en cuenta que los archivos que hayan sido eliminados del registro cuentan con esa flag a 0 podemos intentar buscar manualmente cuales han sido eliminados.

Browse file records Hacemos click en browse file records para una visualización mas clara e investigamos por la carpeta de recycle bin

Observamos que existe una carpeta con documentos en su interior que existen dentro de la carpeta de reciclaje pero que existen aun en el registro.

Recycle bin contents

Lo interesante es cerca de esta dirección buscar de forma manual ficheros en los que las flags de uso queden a 0. Tras un rato de investigación encontramos un par de archivos.

Archivo texto-copia.txt Si nos fijamos bien a la derecha en el bloque verde observamos el nombre del fichero -> “texto -copia.txt”

Poco más abajo de los datos correspondientes a la carpeta encontramos el primer fichero que aun está en el disco pero que ha sido borrado del registro MFT como vemos en las flags de uso

Archivo calendarioSept2018.pdf Si nos fijamos bien a la derecha en el bloque verde observamos el nombre del fichero -> “clendarioSept2018.pdf”

Recuperar el archivo mediante FTK

Ahora que tenemos una idea a nivel más bajo de como están elimnados los ficheros del MFT vamos a utilizar el programa FTK Imager para recuperarlo. Montada la imagen de disco en el programa podremos ver más claramente que archivos no están listados en el registro y por lo tanto han sido “eliminados” del sistema.

Documento desligado Observamos como el documento anteriormente mencionado se encuentra deligado del registro

El otro documento txt lo encontramos en “carpeta” con una cruz indicando que fue eliminado

Documento txt

Para poder recuperar el documento podemos hacer click derecho y exportar

Exportar documento Esto crea una copia exacta de los datos que aun queden intactos en el disco

2. Identificación a bajo nivel

Atributos $10, $30 y $80

En NTFS, los registros de la MFT contienen diferentes atributos, cada uno con información específica sobre los archivos o directorios. Los atributos que te interesan son:

1
2
3
$10: Atributo de nombre de archivo ($FILE_NAME)
$30: Atributo de contenido del archivo ($DATA)
$80: Atributo de información de seguridad ($SECURITY_DESCRIPTOR)

Fecha de creación, modificación y acceso

Para esto buscamos el atributo $FILE-NAME correspondiente a $30

Fechas y nombre Observamos como salen todas las fechas correspondientes así como el nombre del archivo

Propiedad “non-resident” y sus valores asociados (0/1)

Atributo residente:

  • La información del atributo está contenida directamente dentro del registro MFT.
  • Por ejemplo, el nombre de un archivo pequeño puede estar almacenado directamente en el registro, sin necesidad de buscar bloques de datos adicionales.

Atributo no-residente:

  • La información del atributo no está contenida directamente en el registro MFT. En cambio, los datos del atributo están almacenados en otros bloques de disco (fuera de la MFT).
  • Esto es común cuando el tamaño del archivo es grande o cuando el atributo tiene mucha información, como el contenido de archivos grandes.

Atributo DATA residente En un archivo TXT vemos como el atributo $DATA($30) si es residente

Atributo SECURITY_DESCRIPTOR no residente Sin embargo el atributo $SECURITY_DESCRIPTOR($80) se encuentra fuera del bloque

3. MFT2CSV

Exportar el fichero de metadatos $MFT usando FTK

Al montar la imagen de nuevo en FTK podemos navegar a root para poder exportar el fichero de registros $MFT

Exportar MFT

Para poder visualizar el archivo debemos indicar al explorador que muestre ficheros ocultos y archivos del sistema. En windows 11, los tres puntos y vamos a configuración

Configuración Indx2Csv Recordar la opción dump everything y el separador

Para determinar qué archivos están presentes y cuáles han sido eliminados o sobrescritos en base a los datos hay que fijarse en ciertas columnas que indican la validez y estado de los registros en la estructura del sistema NTFS.

Registros NTFS

MFTReference y MFTReferenceSeqNo:

  • Estos campos indican el número de referencia del archivo en la MFT (Master File Table) y el número de secuencia asociado. Un valor válido será generalmente positivo y consistente.

IndexFlags:

  • Los índices indican propiedades del archivo en relación con el directorio y la MFT. Por ejemplo:
    • 0: Archivo regular
    • 1: Archivo eliminado o sobrescrito

IsNotLeaf y LastLsn:

  • LastLsn puede usarse para correlacionar operaciones recientes con archivos
  • IsNotLeaf indica si es un nodo hoja o tiene referencias a otros índices

Fechas (CTime, ATime, MTime, RTime):

  • Si las fechas de modificación o creación parecen inconsistentes o fuera de rango, esto puede ser indicativo de eliminación o corrupción

Registros eliminados Tenemos dos registros eliminados y uno posiblemente corrupto o completamente eliminado debido al numero inusualmente elevado del MFTReference

Directorio en root

Procesamos el archivo igual que antes y vemos como los documentos de texto antes se encontraban en el directorio raíz

Documentos en root Observamos datos similares a los anteriores

Directorio de recycle bin

Mediante el mismo proceso analizamos el documento y observamos que no se ha eliminado por completo nada y que todos los archivos que hay fueron movidos al mismo tiempo a la papelera

Archivos en papelera

9. Recuva VS FTK Imager

Vamos a realizar una comparación entre un software que es utilizado para recuperar archivos eliminados del disco y FTK imager. Esto nos permitirá ver como realmente las herramientas forenses son mucho más potentes que las que comercialmente son vendidas y, además suelen ser más baratas o incluso open source.

Para poder recuperar archivos de la imagen de disco mediante Recuva debemos montarlo como hicimos en el apartado 7 mediante FTK o similares

Disco en Recuva Deberíamos ver el disco montado en Recuva

Damos doble click sobre el disco y nos lo analizará en busca de archivos

Análisis Recuva

Resultados en Recuva

Supuestamente ha encontrado 80 archivos que recuperar. Si observamos bien y comparamos con lo que nos muestra FTK, algunos de esos archivos ni siquiera existen o los está confundiendo con algunos de los rastros que han ido dejando esos movimientos como los que veíamos en el punto anterior donde el fichero “texto.txt” pasó de estar en root a la “carpeta”

Resultados Recuva

Por supuesto que si intentamos recuperar cualquiera de estos documentos nos pedirá pagar la licencia.

Resultados en FTK Imager

Si analizamos manualmente el disco en FTK vemos que en la raíz del disco únicamente encontramos un documento PDF que fue eliminado aquí y no los rastros que dejó el movimiento del texto.txt, por ejemplo

Análisis FTK

Sin embargo si nos movemos al directorio carpeta vemos que si nos indica que existe el fichero texto.txt y que se encuentran los datos eliminados de otro llamado texto-copia.txt

Archivos en carpeta

El resto de documentos que indicaba Recuva realmente no están eliminados ni se llaman como lo indica. Además si necesitamos recuperar el archivo en FTK simplemente hacemos click derecho y lo exportamos, sin licencias ni nada. Windows](/assets/img/20241126_202359_Screenshot_From_2024-11-26_20-23-17.png)

Aqui habilitamos la opción de mostrar archivos ocultos y desmarcamos la opción de ocultar archivos del sistema

Opciones archivos ocultos

Ahora podemos abrir el programa:

1
https://github.com/jschicht/Mft2Csv/releases/download/v2.0.0.51/Mft2Csv_v2.0.0.51.zip

Abierto el programa podemos hacer click en elegir MFT e importarlo

Importar MFT

Dejando el resto de parámetros por defecto excepto el separador que indicaremos como “;” damos en comenzar

Configuración MFT2CSV

Analizando el CSV

En la carpeta creada contamos con varios CSV, abrimos el primero con algún procesador de hojas de cálculo

Configuración importación CSV Importante tomar esa configuración para formatear el contenido correctamente

Nos interesa estudiar qué archivos se han borrado y en qué fecha por lo que vamos a aplicar unos filtros bien sean por “in_use = 0” o “RecordActive” = DELETED/ALLOCATED

Crear filtros Creamos filtros

Encontramos los dos archivos eliminados

Archivos eliminados

Si nos movemos un poco más a la derecha podremos observar las fechas y más concretamente la de borrado:

  • Creation Time (SI_CTime): Fecha y hora de creación del archivo
  • Last Access Time (SI_ATime): Fecha y hora del último acceso al archivo
  • Last Modification Time (SI_MTime): Fecha y hora de la última modificación del archivo
  • Record Time (SI_RTime): Última vez que el registro fue modificado (utilizado para el propio registro MFT)

Datos importantes:

  • Columna clave: “RecordActive” = DELETED
  • Fecha de eliminación: 2021-02-09 a las 19:44:23.0319225 (para texto-copia.txt)
  • Fecha de eliminación: 2021-02-09 a las 19:44:23.0797836 (para calendarioSept2018.pdf)

Fechas eliminación

4. NTFSLogFile

Exportar el fichero de metadatos $LogFILE, que junto a la $MFT proporcionará datos sobre las transacciones realizadas en el sistema de archivos.

Software necesario:

1
https://github.com/jschicht/LogFileParser/releases/tag/v2.0.0.51

Para extraer el $LogFile realizamos el mismo proceso que con $MFT con FTK imager. Una vez lo tengamos procedemos a extraer los datos usando este software.

Configuración LogFileParser Importante importar el $MFT ya procesado en formato csv y seleccionar el separador como “;”

Lo abrimos exactamente igual con un procesador de hojas de cálculo

Importar LogFile CSV Una vez importado recordad aplicar los filtros automáticos

Transacciones

Buscamos las transacciones donde el campo “lf_RedoOperation” valga “DeallocateFileRecordSegment” para localizar ficheros borrados definitivamente puesto que como su nombre indica la operación fue desasignar el segmento del registro del fichero.

Campos clave:

  • lf_Offset: Posición del registro en el archivo
  • lf_MFTReference: Número de referencia del archivo en Master File Table
  • lf_RedoOperation y lf_UndoOperation: Operaciones de registro (ambos son “DeallocateFileRecordSegment” y “InitializeFileRecordSegment”)
  • lf_FileName: Nombre del archivo

Campos LogFile

Estos son registros de log de eliminación de archivos en un sistema de archivos NTFS. Cada línea representa un archivo que fue borrado, con:

  • Operación de desasignación de segmento de registro de archivo
  • Nombre del archivo eliminado
  • Información de seguimiento de cambios en la Master File Table

5. UsnJrnl2Csv

1
https://github.com/jschicht/UsnJrnl2Csv

Exportar el fichero de metadatos correspondiente al $USNJournal ( $Extend -> $USNjrl -> $J). Para esto igual que antes usamos FTK imager teniendo en cuenta los siguientes pasos:

Directorio $EXTEND Dentro del directorio $EXTEND buscamos $UsnJrnl y damos doble click en él

Exportar $J Exportamos $J

Ahora si podemos importarlo en la herramienta para poder ser procesado

Configuración UsnJrnl2Csv Recordad establecer el separador en “;” y dump everything

Una vez procesado lo encontramos en la misma carpeta del programa. Lo abrimos con un editor al igual que antes

Abrir USNJrnl CSV

Filtramos la información resultante por el campo “Reason” = “CLOSE+DELETE” para obtener las fechas de cuando se produjo el borrado definitivo de los ficheros.

Filtrar por CLOSE+DELETE

6. ANJP

Esta herramienta (descontinuada) permite realizar un procesamiento conjunto de la $MFT, $LogFile y $USNJrnl. Dispone de una pestaña donde decodificar la información (Parse) y otra donde visualizar los resultados (Report).

Añadimos los tres ficheros extraidos anteriormente y los procesamos

Procesamiento ANJP

Conectar base de datos Antes de visualizar los reportes debemos conectar con la base de datos

MFT en ANJP $MFT

LogFile en ANJP $LogFile

USNJrnl en ANJP $USNJrnl

7. Análisis del origen de archivos

Alternate Stream View

1
https://alternatestreamview.en.lo4d.com/windows

Para usar este software primero debemos montar la imagen del disco mediante FTK o similares

Montar imagen

Alternate Stream View scan En Alternate Stream View vamos a escanear la imagen del disco ya montada

¿Qué son los archivos Zone identifier?

Zone.Identifier es un atributo de archivo en sistemas de archivos Windows que se utiliza para marcar archivos descargados de Internet u otras ubicaciones externas.

Zone Identifier

Cuando se descarga un archivo de Internet, Windows agrega automáticamente el atributo Zone.Identifier para indicar que el archivo proviene de una “zona” menos confiable que los archivos locales. El atributo contiene información sobre la “zona de seguridad” del archivo, como si proviene de Internet, una intranet, etc. Esto ayuda a los programas a aplicar políticas de seguridad apropiadas. Los archivos con este atributo pueden tener restricciones, como la imposibilidad de ejecutarlos directamente por motivos de seguridad.

Por ejemplo

Nombre de flujo: Zone.Identifier:$DATA Nombre de archivo: E:26507936.pdf Nombre de flujo completo: E:26507936.pdf:Zone.Identifier Tamaño de flujo: 26 bytes Tamaño de asignación de flujo: 32 bytes Extensión: pdf Fecha de modificación: 03/02/2021 20:30:05 Fecha de creación: 09/02/2021 20:31:55 Fecha de modificación de entrada: 03/02/2021 20:30:05 Atributos de archivo: A (Archivo)

Esto indica que el flujo “Zone.Identifier:$DATA” está asociado al archivo “E:26507936.pdf”. Proporciona metadatos sobre el archivo, como su tamaño, fechas de creación y modificación, y atributos.

Ejemplo Zone Identifier

En los sistemas de archivos de Windows, los archivos con el atributo “Zone.Identifier” se encuentran junto a los archivos originales a los que están asociados. Cuando se descarga un archivo de Internet u otra ubicación externa, Windows agrega automáticamente este atributo al archivo descargado.

Entonces, los archivos “Zone.Identifier” se encuentran en la misma ubicación que los archivos a los que están vinculados, actuando como un indicador de su origen y seguridad pero no son visibles de forma directa.

FTK Imager

En FTK podremos ver menos información sobre los archivos pero para poder sacarla lo hacemos de esta manera. Una vez abierto el disco de evidencias o imagen buscamos algún archivo de interés y damos click derecho exportar “File Hash List”

Exportar Hash List

Aquí observamos los datos correspondientes al documento pdf y a su zone identifier

Datos PDF y Zone Identifier

Si hacemos click en el documento a la derecha podremos ver el contenido del zone idenfifier

Contenido Zone Identifier

8. Indx2Csv

1
https://github.com/jschicht/Indx2Csv

Para empezar vamos a exportar los ficheros de metadatos de tipo índice de directorios ($I30) de los tres directorios que aparecen en la imagen de disco.

Para esto, tomando de referencia desde la carpeta ROOT de la imaagen del disco vamos a exportar cada uno de los archivos de metadatos llamdos $I30

I30 en root El de la raiz en root

I30 en papelera El de la carpeta existente en la papelera

I30 en carpeta El de la carpeta llamada carpeta

Archivos I30

Directorio “carpeta”

Con Indx2csv ahora vamos a importar el primero

Configuración Indx2Csv Recordar la opción dump everything y el separador

Para determinar qué archivos están presentes y cuáles han sido eliminados o sobrescritos en base a los datos hay que fijarse en ciertas columnas que indican la validez y estado de los registros en la estructura del sistema NTFS

Registros NTFS

MFTReference y MFTReferenceSeqNo:

  • Estos campos indican el número de referencia del archivo en la MFT (Master File Table) y el número de secuencia asociado. Un valor válido será generalmente positivo y consistente.

IndexFlags:

  • Los índices indican propiedades del archivo en relación con el directorio y la MFT. Por ejemplo:
    • 0: Archivo regular
    • 1: Archivo eliminado o sobrescrito

IsNotLeaf y LastLsn:

  • LastLsn puede usarse para correlacionar operaciones recientes con archivos
  • IsNotLeaf indica si es un nodo hoja o tiene referencias a otros índices

Fechas (CTime, ATime, MTime, RTime):

  • Si las fechas de modificación o creación parecen inconsistentes o fuera de rango, esto puede ser indicativo de eliminación o corrupción

Registros eliminados Tenemos dos registros eliminados y uno posiblemente corrupto o completamente eliminado debido al numero inusualmente elevado del MFTReference

Directorio en root

Procesamos el archivo igual que antes y vemos como los documentos de texto antes se encontraban en el directorio raíz

Documentos en root Observamos datos similares a los anteriores

Directorio de recycle bin

Mediante el mismo proceso analizamos el documento y observamos que no se ha eliminado por completo nada y que todos los archivos que hay fueron movidos al mismo tiempo a la papelera

Archivos en papelera

9. Recuva VS FTK Imager

Vamos a realizar una comparación entre un software que es utilizado para recuperar archivos eliminados del disco y FTK imager. Esto nos permitirá ver como realmente las herramientas forenses son mucho más potentes que las que comercialmente son vendidas y, además suelen ser más baratas o incluso open source.

Para usar este software primero debemos montar la imagen del disco mediante FTK o similares

Montar imagen Deberíamos ver el disco montado en Recuva

Damos doble click sobre el disco y nos lo analizará en busca de archivos

Análisis Recuva

Resultados en Recuva

Supuestamente ha encontrado 80 archivos que recuperar. Si observamos bien y comparamos con lo que nos muestra FTK, algunos de esos archivos ni siquiera existen o los está confundiendo con algunos de los rastros que han ido dejando esos movimientos como los que veíamos en el punto anterior donde el fichero “texto.txt” pasó de estar en root a la “carpeta”

Resultados Recuva

Por supuesto que si intentamos recuperar cualquiera de estos documentos nos pedirá pagar la licencia.

Resultados en FTK Imager

Si analizamos manualmente el disco en FTK vemos que en la raíz del disco únicamente encontramos un documento PDF que fue eliminado aquí y no los rastros que dejó el movimiento del texto.txt, por ejemplo

Análisis FTK

Sin embargo si nos movemos al directorio carpeta vemos que si nos indica que existe el fichero texto.txt y que se encuentran los datos eliminados de otro llamado texto-copia.txt

Archivos en carpeta

El resto de documentos que indicaba Recuva realmente no están eliminados ni se llaman como lo indica. Además si necesitamos recuperar el archivo en FTK simplemente hacemos click derecho y lo exportamos, sin licencias ni nada.

This post is licensed under CC BY 4.0 by the author.