Qué es la MFT (Master File Table) y por qué es clave en NTFS

Última actualización: 24/02/2026
Autor: Isaac
  • La MFT ($MFT) es la base de datos interna de NTFS que describe todos los archivos y directorios de un volumen, incluidos metadatos, permisos y ubicaciones físicas.
  • Cada registro MFT contiene múltiples atributos (como $STANDARD_INFORMATION, $FILE_NAME o $DATA) cuya combinación permite reconstruir con precisión la actividad histórica de los archivos.
  • La MFT crece dentro de una zona reservada para reducir la fragmentación, puede desfragmentarse y ofrece información que se puede extraer y analizar con herramientas como The Sleuth Kit, MFTECmd o Velociraptor.
  • En análisis forense y threat hunting, la MFT actúa como memoria persistente del sistema, permitiendo detectar borrados, timestomping, uso de malware y técnicas antiforenses al correlacionarla con artefactos como USN Journal o $LogFile.

Esquema Master File Table MFT en NTFS

La Master File Table (MFT) es el corazón del sistema de archivos NTFS en Windows. Cada vez que creas, modificas, mueves o borras un archivo en un volumen NTFS, esa acción deja huella en este enorme “libro de registro” interno. Para quien solo usa el ordenador, la MFT es completamente invisible; pero para administradores, peritos forenses y especialistas en seguridad, es una mina de oro de información técnica e histórica.

Podemos imaginar la MFT como unas antiguas “páginas amarillas” donde aparece un listado detallado de todos los archivos y carpetas que existen -y en muchos casos han existido- en el sistema: nombres, rutas, tamaños, permisos, fechas y hasta contenido de algunos ficheros pequeños. Entenderla en profundidad permite desde optimizar el rendimiento hasta reconstruir incidentes de seguridad muy sofisticados.

Qué es la MFT (Master File Table) en NTFS

En un volumen NTFS (por ejemplo, al inicializar un disco duro), la MFT es un archivo especial llamado $MFT que almacena una entrada (o varias) para cada archivo y directorio del sistema, incluida la propia MFT. Es decir, NTFS se describe a sí mismo dentro de este fichero maestro. Cada entrada de la MFT contiene los metadatos esenciales: tamaño del archivo, marcas de fecha y hora, permisos, ubicación de los datos en disco y otros atributos internos.

Desde el punto de vista lógico, la MFT funciona como una base de datos de registros de archivos: cada fila representa un objeto (archivo o carpeta) y cada columna serían los distintos atributos (nombre, timestamps, datos de seguridad, etc.). En entornos de informática forense se suele comparar la MFT con una especie de “memoria histórica” del volumen NTFS porque conserva rastro de objetos ya borrados durante bastante tiempo.

Además de su función descriptiva, la MFT controla qué clústeres están ocupados o libres en la partición, ya sea directamente o a través de archivos especiales como $Bitmap. De esta forma NTFS sabe qué zonas del disco puede reutilizar al crear nuevos archivos, sin solapar datos existentes.

En otros sistemas de archivos como FAT16 o FAT32, la estructura análoga es la File Allocation Table (FAT). FAT es mucho más simple: básicamente mantiene un mapa de qué clusters pertenecen a cada archivo, con menos metadatos, menos seguridad y sin muchas de las capacidades avanzadas de NTFS. La MFT, en cambio, ofrece un modelo mucho más robusto y escalable, especialmente en discos grandes y sistemas modernos.

Master File Table MFT en análisis forense

Estructura interna de la Master File Table

Cada archivo o directorio que gestiona NTFS está representado por al menos un registro MFT de tamaño fijo (normalmente 1024 bytes). Estos registros se conocen como segmentos de registro de archivo y comienzan con un encabezado estándar, seguido de uno o varios atributos estructurados. Cada atributo a su vez tiene su propio encabezado, tipo, nombre opcional y valor.

En NTFS, una referencia de archivo (File Reference Number o FRN) apunta al segmento base de ese registro en la MFT. Ese identificador permite seguir el “ciclo de vida” de un archivo: creación, renombrado, movimiento a otra carpeta, eliminación y posible reutilización posterior de la misma entrada para un nuevo archivo.

Los primeros registros de la MFT están reservados a archivos internos críticos. Por ejemplo, dentro de la numeración de segmentos MFT versión 3 se definen posiciones especiales como:

  • 0: $MFT → el propio archivo de la MFT.
  • 5: directorio raíz (\) → la carpeta raíz del volumen.
  • 6: $Bitmap → archivo que indica qué clústeres del volumen están asignados.
  • 8: $BadClus → archivo que marca los clústeres defectuosos del disco.

Estos ficheros del sistema ocupan las primeras entradas y están siempre presentes, por lo que cualquier análisis serio de MFT debe tenerlos en cuenta. Después de estas posiciones reservadas, el resto de registros representan tanto archivos de usuario como otros archivos internos de NTFS.

Atributos clave dentro de cada registro MFT

Los registros de la MFT están formados por varios atributos que describen el archivo desde diferentes ángulos (temporal, lógico, físico, de seguridad…). Algunos de los más importantes, tanto a nivel de funcionamiento como de análisis forense, son los siguientes:

El atributo $STANDARD_INFORMATION guarda las marcas de tiempo MACB (Modified, Accessed, Changed, Birth), atributos de archivo, identificadores de seguridad y banderas de estado. Es la principal fuente de información temporal que muestran muchas herramientas y la que utiliza, por ejemplo, el propio Explorador de Windows para reflejar las fechas de creación, modificación y último acceso.

El atributo $FILE_NAME contiene el nombre del archivo, su relación con el directorio padre y otro conjunto de timestamps. Este segundo bloque temporal es crucial porque, aunque la información estándar puede ser manipulada por procesos de usuario (por ejemplo con técnicas de timestomping), las fechas de $FILE_NAME solo pueden cambiar a través del kernel del sistema. Comparar ambos atributos ayuda a descubrir manipulaciones intencionadas.

  Como el virus del archivo impedía que se completara correctamente, esta operación no tuvo éxito.

A través de $DATA se describe dónde están almacenados físicamente los datos del archivo en el disco. Para archivos pequeños, parte o todo el contenido puede estar residente dentro del propio registro MFT, lo que permite recuperar información incluso si el fichero ya no existe como tal en el sistema de archivos visible.

El atributo $SECURITY_DESCRIPTOR almacena la información de seguridad asociada al archivo: listas de control de acceso (ACL), permisos, propietario, etc. Analizar este atributo es muy útil cuando se investigan escaladas de privilegios o accesos indebidos a recursos protegidos.

Existen otros atributos avanzados como $OBJECT_ID, $REPARSE_POINT o $EA que se emplean para funcionalidades especiales: identificadores únicos de objetos, puntos de reanálisis, enlaces simbólicos, flujos alternativos de datos (ADS), etc. Mucho malware abusa de estos mecanismos para esconderse, persistir o desviar rutas de acceso a ficheros.

Registros especiales y “núcleo” de la MFT

A nivel lógico, dentro de la MFT se distinguen ciertos registros que tienen un papel especial en la descripción de la propia tabla y del volumen:

  • El primer registro actúa como descriptor de la MFT y contiene información sobre la propia tabla maestra.
  • El segundo registro alberga una copia de respaldo del descriptor, de modo que haya redundancia mínima para proteger la integridad de la MFT.
  • El tercer registro hace referencia al archivo de registro ($LogFile), donde se guardan las transacciones realizadas sobre la partición (muy útil en recuperación de datos y análisis de fallos).
  • A continuación se encuentran otros registros del sistema que conforman lo que a menudo se llama el “núcleo” de la MFT, que describe la estructura y el comportamiento básico del volumen NTFS.

Estos primeros registros, numerados 0, 1, 2, 3 y siguientes, son siempre ficheros del sistema, aunque no todos estén directamente relacionados con el archivo $MFT. Entre ellos encontramos propiedades como $mft (archivo principal), su espejo, el $LogFile y información sobre el propio volumen.

Por ejemplo, el archivo $MFT incluye un atributo $DATA sin nombre que no es otra cosa que la secuencia completa de segmentos de registro MFT, uno detrás de otro. Además, contiene un atributo $BITMAP sin nombre que indica qué registros de la MFT están en uso y cuáles libres.

De forma similar, el archivo $Bitmap tiene un atributo $DATA donde marca los clústeres del volumen que están asignados. Y el archivo $BadClus posee un atributo $DATA llamado “$BAD” que incluye una entrada por cada clúster defectuoso detectado, para que NTFS no lo vuelva a utilizar.

Cuando ya no hay espacio suficiente dentro de un único segmento MFT para guardar todos los atributos de un archivo, NTFS asigna segmentos adicionales. La relación entre ese registro base y los extra se gestiona mediante el atributo “Attribute List”, que indica dónde está cada fragmento de información asociado al fichero.

Cómo crece y se gestiona la MFT en el disco

Conforme añadimos archivos a un volumen NTFS, la MFT va aumentando de tamaño porque requiere nuevas entradas para registrar esos objetos. Cuando borramos archivos, sus registros en la MFT no desaparecen inmediatamente: se marcan como liberados para poder ser reutilizados, pero el espacio de disco que ocupan sigue reservado. En consecuencia, el tamaño físico del archivo $MFT no disminuye, aunque internamente tenga huecos reutilizables.

Para evitar que la MFT acabe completamente fragmentada por todo el volumen, NTFS reserva de antemano una zona contigua en el disco conocida como “zona MFT”. El objetivo es que el archivo $MFT pueda crecer de forma ordenada dentro de ese espacio reservado, minimizando los saltos entre fragmentos que empeoran el rendimiento.

Esta zona MFT tiene un tamaño predeterminado calculado durante el montaje del volumen según la capacidad de la unidad. El sistema puede ampliarla mediante ciertas claves de Registro, pero no es posible reducir la zona por debajo del valor definido automáticamente. Ampliar la zona MFT no implica que los usuarios pierdan espacio disponible para sus datos, simplemente mejora la reserva interna para la tabla.

Ahora bien, NTFS también puede asignar archivos y directorios de usuario dentro de la zona MFT cuando el espacio fuera de ella se agota. Dependiendo del tipo de carga del volumen (muchos archivos pequeños o pocos archivos muy grandes), se terminará de ocupar antes la zona reservada o la parte no reservada.

En discos con pocos ficheros grandes, se suele llenar primero el espacio no reservado. En cambio, en volúmenes con muchísimos archivos pequeños es habitual que la zona MFT se ocupe antes. Sea cual sea la situación, la fragmentación del archivo $MFT comienza cuando una de estas dos regiones (reservada o no reservada) se asigna completamente y la otra empieza a utilizarse para mantener el crecimiento.

Fragmentación de la MFT y desfragmentación

La MFT, pese a ser un archivo del sistema, se puede fragmentar igual que cualquier otro fichero. Esta fragmentación no solo afecta al rendimiento de acceso a los metadatos, sino que también complica el análisis forense y la recuperación de datos, ya que la tabla se encuentra dividida en múltiples trozos dispersos por la unidad.

Para mitigar este problema, es posible desfragmentar la propia MFT con herramientas adecuadas. Lo recomendable antes de iniciar el proceso es dejar la mayor cantidad de espacio libre posible al principio de la zona MFT, de modo que el desfragmentador tenga margen para reorganizar los segmentos contiguos sin rebasar la reserva.

  Cómo recuperar archivos eliminados con Windows File Recovery CLI

Si durante la desfragmentación se llegara a ocupar completamente la zona MFT reservada, debe existir espacio sin asignar fuera de esa zona para que el proceso siga adelante sin llenar todo el volumen ni provocar nuevos puntos calientes de fragmentación.

Para consultar el estado actual de la tabla maestra, podemos analizar la unidad con el desfragmentador de disco y revisar el informe. Ahí se muestran, entre otras estadísticas, el tamaño del archivo $MFT y el número de fragmentos en los que se encuentra dividido.

En entornos más técnicos, también es posible obtener información de la MFT mediante el control de E/S FSCTL_GET_NTFS_VOLUME_DATA, que devuelve datos estructurados del volumen NTFS, incluido el tamaño y la distribución de la tabla maestra.

Diferencias entre FAT y MFT (NTFS)

Conviene tener claro que la FAT (File Allocation Table) y la MFT no son lo mismo, aunque a veces se comparen como estructuras equivalentes. FAT se usa en sistemas de archivos más antiguos como FAT16 y FAT32, muy frecuentes en dispositivos extraíbles por su amplia compatibilidad.

En un volumen FAT, la tabla de asignación se limita a rastrear qué clusters pertenecen a cada archivo, con una organización más simple y menos metadatos adicionales. Esto se traduce en menos funcionalidades: sin permisos avanzados, sin compresión nativa de archivos, sin cifrado integrado, sin registros detallados de seguridad, etc.

La MFT de NTFS, por el contrario, actúa como una auténtica base de datos de archivos y directorios. Cada objeto tiene al menos una entrada con metadatos muy completos (nombre, timestamps múltiples, permisos, propietario, atributos especiales…). Todo esto permite mejores prestaciones, mayor robustez ante fallos y grandes capacidades para la recuperación de información.

Por este motivo, NTFS con su MFT es el estándar en los sistemas Windows modernos, mientras que FAT sigue vivo en memorias USB, tarjetas, pequeños dispositivos y entornos donde lo prioritario es la compatibilidad entre muchos sistemas operativos y no tanto las funciones avanzadas.

La MFT como fuente de evidencia forense (DFIR)

Desde la perspectiva de la respuesta a incidentes y el análisis forense digital (DFIR), la MFT se convierte en uno de los artefactos más valiosos de Windows. No es solo un índice técnico de archivos actuales, sino una especie de diario detallado que conserva huellas de actividades pasadas, incluso de archivos ya borrados y zonas de disco reutilizadas.

Al existir múltiples marcas temporales por archivo (MACB de $STANDARD_INFORMATION y de $FILE_NAME), es posible reconstruir líneas de tiempo con gran precisión: cuándo se creó un fichero, cuándo se modificó, cuándo se accedió por última vez y cuándo se cambió su entrada en la MFT.

Esta riqueza temporal permite, por ejemplo, detectar técnicas de timestomping, mediante las cuales un atacante manipula las fechas visibles para ocultar su actividad. Si las fechas de $STANDARD_INFORMATION y $FILE_NAME no cuadran, el analista puede sospechar alteraciones deliberadas.

La MFT también resulta esencial para identificar malware, scripts o herramientas eliminadas tras un incidente. Aunque el archivo ya no aparezca en el sistema, su registro puede permanencer cierto tiempo en la MFT, conservando el nombre original, la ruta, el tamaño y algunos atributos clave.

Además, comparar la MFT con otros artefactos como el USN Journal, $LogFile, Prefetch, Amcache o ShimCache ayuda a descubrir inconsistencias que delatan movimientos antiforenses: borrados masivos, renombrados sospechosos, uso de flujos de datos alternativos, manipulación directa de estructuras NTFS, entre otros. Para automatizar parte de este trabajo y cotejar evidencias se pueden emplear scripts para comparar dos textos y archivos en PowerShell o CMD.

Análisis de la MFT con herramientas especializadas

En seguridad informática y forense se utilizan muchas herramientas capaces de leer y parsear la MFT directamente. Entre las más conocidas se encuentran MFTECmd.exe, AnalyzeMFT.py, Autopsy o X-Ways, que permiten convertir el contenido bruto de la tabla maestra en una vista legible (por ejemplo, una tabla tipo Excel) con campos como nombre de archivo, ruta completa, timestamps, tamaño, flags de borrado, etc.

En su trabajo diario, muchos peritos extraen la MFT directamente del disco para evitar depender del sistema operativo en vivo. Una forma clásica, usando The Sleuth Kit, es emplear el comando:

icat \\.\C: 0 > E:\destino\$MFT

En este ejemplo, icat es la herramienta del paquete The Sleuth Kit que sirve para extraer un archivo desde el sistema de ficheros bruto; \\.\C: apunta al dispositivo físico que representa la unidad C:, el número 0 indica el inode o entrada MFT correspondiente siempre a $MFT en NTFS, y el redireccionamiento > E:\destino\$MFT vuelca el contenido a un fichero separado para su posterior análisis offline.

Una vez exportada la tabla, se puede volcar su contenido a formatos más cómodos (CSV, tablas, vistas en herramientas gráficas) y centrarse en los campos de mayor interés: rutas completas, firmas temporales, atributos de borrado, indicadores de movimiento de ficheros, etc. También es habitual exportar resultados de scripts para producir informes automatizados o alimentar otras herramientas de análisis.

Velociraptor y explotación avanzada de la MFT

En escenarios corporativos modernos, plataformas como Velociraptor dan un salto cualitativo en cómo se aprovecha la MFT para DFIR y threat hunting. En lugar de limitarse a un análisis local, Velociraptor permite recopilar y procesar la MFT de múltiples endpoints de forma remota, tanto en vivo como post-mortem.

  Guía definitiva para automatizar tareas en Hyper-V con PowerShell

Uno de sus puntos fuertes es que incluye parseo nativo de estructuras NTFS, de modo que no depende de utilidades externas para entender el contenido de la tabla maestra. Además, su lenguaje de consulta VQL (Velociraptor Query Language) facilita automatizar búsquedas, correlaciones y detección de patrones sospechosos.

Dentro del repositorio de artefactos de Velociraptor, destacan varios relacionados directamente con NTFS y la MFT, como:

  • Windows.NTFS.MFT → extracción y análisis de la tabla maestra.
  • Windows.Forensics.NTFS → enfoque forense sobre volúmenes NTFS.
  • Windows.NTFS.Usn → correlación con el diario USN para seguir cambios de archivos.
  • Windows.System.Prefetch → revisión de programas ejecutados recientemente.
  • Windows.Detection.Timestomp → detección automática de timestomping mediante la comparación de timestamps.

Combinando estos artefactos, la MFT deja de ser un simple archivo pasivo para convertirse en un sensor forense distribuido, capaz de ofrecer visibilidad histórica de lo que ha pasado en cientos o miles de máquinas de una organización.

Consultas VQL y correlación con USN Journal

Una de las grandes ventajas de Velociraptor es poder correlacionar la información de la MFT con el USN Journal mediante consultas VQL. Esto permite reconstrucciones de actividad muy detalladas, centradas en directorios sensibles como %TEMP%, AppData o ProgramData, donde a menudo se descargan o ejecutan cargas maliciosas.

Por ejemplo, es posible formular consultas que devuelvan para cada archivo su nombre, ruta completa, fechas de creación, modificación y cambios de entrada MFT, junto a la razón de cambio registrada en el USN (creación, borrado, renombrado, etc.). Filtrando por rutas y ordenando por tiempo, se obtienen líneas temporales de infección muy precisas.

Este tipo de análisis permite responder preguntas como: qué archivos se crearon justo antes de que apareciera una conexión de C2, qué binarios se borraron inmediatamente después de una actividad sospechosa, o qué directorios se han usado como área de staging por parte del adversario.

Gracias a este enfoque, la MFT se convierte en una pieza clave del puzzle de threat hunting: no solo muestra el estado actual de los ficheros, sino que, combinada con otros artefactos, ayuda a reconstruir el relato completo del ataque con un alto grado de confianza.

Propiedades temporales: $STANDARD_INFORMATION y $FILE_NAME

Una característica muy relevante de NTFS es que dispone de ocho campos de fecha y hora relacionados con cada archivo: cuatro asociados al atributo $STANDARD_INFORMATION ($SI) y otros cuatro al atributo $FILE_NAME. Lo habitual es que solo veamos, por interfaz gráfica de Windows, los valores de $SI, pero para el análisis forense los de $FILE_NAME son igual o más importantes.

En las propiedades de un fichero, las fechas de creación, modificación y último acceso que vemos corresponden a las de $STANDARD_INFORMATION. Además, existe un cuarto campo asociado al “cambio” de la entrada (es decir, la modificación interna de la MFT). Estos valores se emplean en herramientas como fls, mactime, timestomp o find.

El gran detalle es que los timestamps de $STANDARD_INFORMATION pueden ser alterados por procesos de usuario. Existen utilidades de timestomping que permiten cambiar la fecha de creación, modificación y acceso de forma masiva para camuflar actividades maliciosas o hacer parecer antiguos unos archivos que en realidad son recientes.

En cambio, los timestamps de $FILE_NAME solo pueden ser cambiados por el kernel, normalmente cuando se ejecutan operaciones genuinas del sistema de archivos (movimientos, renombrados reales, etc.). Por tanto, comparar ambos conjuntos de fechas es una técnica clásica para identificar ficheros cuyos metadatos temporales han sido tocados de manera indebida.

Otra propiedad importante es que muchas de estas fechas se almacenan en formato GMT (UTC). Esto obliga al analista a tener muy en cuenta las zonas horarias y posibles cambios de horario de verano al reconstruir líneas temporales, para no sacar conclusiones erróneas sobre el orden real de los eventos.

En definitiva, las propiedades temporales de la MFT son tan ricas que, bien interpretadas, pueden revelar si un archivo se ha copiado, movido, ejecutado o manipulado en un intento de borrar huellas, incluso cuando los atacantes han sido cuidadosos usando herramientas antiforenses.

Con todo lo anterior, la Master File Table se entiende mejor como la memoria forense persistente del sistema de archivos NTFS. En un contexto de amenazas cada vez más sofisticadas, con malware que se ejecuta en memoria, eliminación agresiva de evidencias y uso de técnicas antiforenses, la MFT sigue siendo una de las pocas fuentes que conserva rastros objetivos, verificables y cronológicamente coherentes. Dominar su estructura, su evolución y las forms de analizarla con herramientas como The Sleuth Kit o Velociraptor es clave para cualquier profesional que quiera entender de verdad qué ha pasado en un sistema Windows y poder explicarlo con rigor técnico y valor probatorio.

Cómo inicializar un disco duro nuevo que no aparece en el Explorador de Archivos
Artículo relacionado:
Cómo inicializar un disco duro nuevo que no aparece en el Explorador de Archivos