Análisis de NTFS
Tabla de Contenidos
- Active Disk Editor
- Identificación a bajo nivel
- MFT2CSV
- NTFSLogFile
- UsnJrnl2Csv
- ANJP
- Análisis del origen de archivos
- Indx2Csv
- 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’)
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).
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)
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:
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
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.
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.
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.
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
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.
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
Para poder recuperar el documento podemos hacer click derecho y exportar
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
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.
En un archivo TXT vemos como el atributo $DATA($30) si es 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
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
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.
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
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
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
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
Deberíamos ver el disco montado en Recuva
Damos doble click sobre el disco y nos lo analizará en busca de archivos
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”
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
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
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
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
Dejando el resto de parámetros por defecto excepto el separador que indicaremos como “;” damos en comenzar
Analizando el CSV
En la carpeta creada contamos con varios CSV, abrimos el primero con algún procesador de hojas de cálculo
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
Encontramos los dos 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)
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.
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
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
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:
Dentro del directorio $EXTEND buscamos $UsnJrnl y damos doble click en él
Ahora si podemos importarlo en la herramienta para poder ser procesado
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
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.
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
Antes de visualizar los reportes debemos conectar con la base de datos
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
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.
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.
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”
Aquí observamos los datos correspondientes al documento pdf y a su zone identifier
Si hacemos click en el documento a la derecha podremos ver el contenido del zone idenfifier
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
El de la carpeta existente en la papelera
El de la carpeta llamada carpeta
Directorio “carpeta”
Con Indx2csv ahora vamos a importar el primero
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
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
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
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
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
Deberíamos ver el disco montado en Recuva
Damos doble click sobre el disco y nos lo analizará en busca de archivos
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”
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
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
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.