Communitygithub.com

análisis-mft-para-recuperación-de-archivos-eliminados

Analiza la Tabla Maestra de Archivos ($MFT) de NTFS con MFTECmd, analyzeMFT, y técnicas forenses para recuperar archivos eliminados y detectar actividad antiforense.

¿Qué es análisis-mft-para-recuperación-de-archivos-eliminados?

Esta habilidad permite a un agente de IA realizar un análisis forense completo de la Tabla Maestra de Archivos (MFT) de NTFS para recuperar evidencia de archivos eliminados. El agente puede extraer y analizar registros MFT usando herramientas como MFTECmd y analyzeMFT, identificando archivos marcados como inactivos (InUse = False) cuyos metadatos aún persisten en el disco. Además, puede correlacionar los hallazgos con otros artefactos de Windows como el diario USN ($UsnJrnl:$J), el $LogFile, la Papelera de Reciclaje y las Copias Sombra de Volumen para reconstruir líneas de tiempo completas de actividad de archivos. La habilidad también incluye detección de timestomping (manipulación de marcas de tiempo) mediante la comparación de los atributos $STANDARD_INFORMATION y $FILE_NAME, y análisis de espacio slack de MFT para recuperar fragmentos de registros sobrescritos. Está diseñada para entornos de respuesta a incidentes, caza de amenazas y análisis forense digital, y soporta formatos de imagen de disco como E01, raw/dd, VMDK y VHDX.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/mukul975/Anthropic-Cybersecurity-Skills/tree/main/skills/analyzing-mft-for-deleted-file-recovery

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Análisis de MFT para Recuperación de Archivos Eliminados

Resumen

La Tabla Maestra de Archivos ($MFT) de NTFS es el repositorio central de metadatos para cada archivo y directorio en un volumen NTFS. Cada archivo está representado por al menos un registro MFT de 1024 bytes que contiene atributos como $STANDARD_INFORMATION (marcas de tiempo, permisos), $FILE_NAME (nombre, directorio padre, marcas de tiempo) y $DATA (contenido del archivo o punteros a clusters). Cuando un archivo se elimina, su registro MFT se marca como inactivo (bandera InUse eliminada), pero los metadatos permanecen hasta que la entrada sea reasignada por un nuevo archivo. Esta persistencia hace que el análisis de MFT sea una técnica principal para recuperar evidencia de archivos eliminados, reconstruir líneas de tiempo del sistema de archivos y detectar actividad antiforense como timestomping.

Cuándo Usar

  • Al investigar incidentes de seguridad que requieren analizar MFT para recuperación de archivos eliminados
  • Al construir reglas de detección o consultas de caza de amenazas para este dominio
  • Cuando los analistas de SOC necesitan procedimientos estructurados para este tipo de análisis
  • Al validar la cobertura de monitoreo de seguridad para técnicas de ataque relacionadas

Requisitos Previos

  • Imagen de disco forense (formato E01, raw/dd, VMDK o VHDX)
  • MFTECmd (Eric Zimmerman) o analyzeMFT (basado en Python)
  • FTK Imager, Arsenal Image Mounter o similar para montar imágenes
  • Timeline Explorer o Excel para análisis CSV
  • Python 3.8+ para scripts de análisis personalizados
  • Comprensión de los internos del sistema de archivos NTFS

Estructura del Registro MFT y su Diseño

Cabecera del Registro MFT

Cada registro MFT comienza con la firma "FILE" (0x46494C45) y contiene:

OffsetTamañoCampo
0x004 bytesFirma ("FILE")
0x042 bytesOffset a la secuencia de actualización
0x062 bytesTamaño de la secuencia de actualización
0x088 bytesNúmero de secuencia de $LogFile
0x102 bytesNúmero de secuencia
0x122 bytesContador de enlaces duros
0x142 bytesOffset al primer atributo
0x162 bytesBanderas (0x01 = InUse, 0x02 = Directorio)
0x184 bytesTamaño usado del registro MFT
0x1C4 bytesTamaño asignado del registro MFT
0x208 bytesReferencia al registro base del archivo
0x282 bytesID del siguiente atributo

Atributos Clave de MFT

ID de TipoNombreDescripción
0x10$STANDARD_INFORMATIONMarcas de tiempo, banderas, ID de propietario, ID de seguridad
0x30$FILE_NAMENombre de archivo, referencia MFT padre, marcas de tiempo
0x40$OBJECT_IDGUID único para el archivo
0x50$SECURITY_DESCRIPTORPermisos ACL
0x60$VOLUME_NAMEEtiqueta del volumen (solo archivos de metadatos del volumen)
0x80$DATAContenido del archivo (residente si <700 bytes) o lista de clusters
0x90$INDEX_ROOTRaíz del índice B-tree para directorios
0xA0$INDEX_ALLOCATIONEntradas del índice B-tree para directorios grandes
0xB0$BITMAPMapa de bits de asignación para el índice o MFT

Técnicas de Recuperación de Archivos Eliminados

Técnica 1: Análisis de Registros MFT con MFTECmd

# Extraer $MFT de la imagen forense usando KAPE o FTK Imager
# Analizar el $MFT con MFTECmd
MFTECmd.exe -f "C:\Evidence\$MFT" --csv C:\Output --csvf mft_full.csv

# Filtrar archivos eliminados (InUse = FALSE) en Timeline Explorer
# Buscar entradas donde la columna InUse sea False

Identificación de Archivos Eliminados en la Salida CSV:

  • InUse = False indica un registro eliminado o reasignado
  • ParentPath muestra la ubicación original del archivo antes de la eliminación
  • FileSize muestra el tamaño original (aún puede ser recuperable)
  • Las marcas de tiempo en los atributos $STANDARD_INFORMATION y $FILE_NAME persisten

Técnica 2: Análisis del Diario USN ($UsnJrnl:$J)

El Diario USN registra todos los cambios en los archivos de un volumen NTFS, incluyendo creación, eliminación, renombrado y modificación de datos.

# Analizar el Diario USN con MFTECmd
MFTECmd.exe -f "C:\Evidence\$J" --csv C:\Output --csvf usn_journal.csv

# Códigos de razón USN clave para evidencia de eliminación:
# USN_REASON_FILE_DELETE     = 0x00000200
# USN_REASON_CLOSE           = 0x80000000
# USN_REASON_RENAME_OLD_NAME = 0x00001000
# USN_REASON_RENAME_NEW_NAME = 0x00002000

Técnica 3: Análisis de Transacciones de $LogFile

El $LogFile almacena registros de transacciones NTFS que pueden revelar operaciones de archivos incluso después de que el Diario USN haya sido ciclado.

# Analizar $LogFile con LogFileParser
LogFileParser.exe -l "C:\Evidence\$LogFile" -o C:\Output

# Buscar operaciones REDO y UNDO que indiquen eliminación de archivos:
# - DeallocateFileRecordSegment
# - DeleteAttribute
# - UpdateResidentValue (limpiando la bandera InUse)

Técnica 4: Análisis de Espacio Slack de MFT

El espacio slack de MFT existe entre el final de la porción usada de un registro MFT y el final de los 1024 bytes asignados. Esta área puede contener restos de registros de archivos anteriores.

import struct

def parse_mft_slack(mft_path: str, output_path: str):
    """Extraer y analizar el espacio slack de MFT en busca de restos de archivos eliminados."""
    with open(mft_path, "rb") as f:
        record_size = 1024
        record_num = 0
        slack_findings = []

        while True:
            record = f.read(record_size)
            if len(record) < record_size:
                break

            # Verificar firma FILE
            if record[:4] != b"FILE":
                record_num += 1
                continue

            # Obtener tamaño usado desde el offset 0x18
            used_size = struct.unpack("<I", record[0x18:0x1C])[0]

            if used_size < record_size:
                slack = record[used_size:]
                # Verificar si el slack contiene cadenas legibles o cabeceras de atributos
                if any(c > 0x20 and c < 0x7F for c in slack[:50]):
                    slack_findings.append({
                        "record": record_num,
                        "used_size": used_size,
                        "slack_size": record_size - used_size,
                        "slack_preview": slack[:100].hex()
                    })

            record_num += 1

    return slack_findings

Correlación con Artefactos de Apoyo

Correlación MFT con $Recycle.Bin

# Analizar la Papelera de Reciclaje con RBCmd
RBCmd.exe -d "C:\Evidence\$Recycle.Bin" --csv C:\Output --csvf recycle_bin.csv

# Correlacionar: Los archivos $I contienen la ruta original y la marca de tiempo de eliminación
# Coincidir los números de entrada MFT de los archivos $R con los registros MFT originales

Correlación MFT con Copias Sombra de Volumen

# Listar copias sombra de volumen
vssadmin list shadows

# Montar copias sombra y extraer $MFT de cada una
# Comparar registros MFT entre copias sombra para rastrear cambios de archivos a lo largo del tiempo

Valor Forense

  • Recuperación de metadatos de archivos eliminados: Nombre de archivo original, ruta, tamaño y marcas de tiempo
  • Reconstrucción de líneas de tiempo: Eventos de creación, modificación, acceso y eliminación de archivos
  • Detección de timestomping: Comparación de marcas de tiempo de $SI vs $FN
  • Guía para carving de datos: Los clusters de MFT apuntan al contenido del archivo en el disco
  • Detección antiforense: Identificación de registros MFT borrados o manipulados

Referencias

Ejemplo de Salida

$ MFTECmd.exe -f "C:\Evidence\$MFT" --csv /analysis/mft_output

MFTECmd v1.2.2 - Analizador de MFT
==============================
Entrada: C:\Evidence\$MFT (Tamaño: 384 MB)
Total de Entradas MFT: 395,264

Analizando entradas MFT... Hecho (12.4 segundos)

--- Resumen de Recuperación de Archivos Eliminados ---
Entradas Totales:          395,264
Archivos Activos:          245,832
Archivos Eliminados:       149,432
  Recuperables:            87,234 (datos residentes o clusters no reasignados)
  Parcialmente Recuperables: 31,456 (algunos clusters sobrescritos)
  No Recuperables:         30,742 (todos los clusters reasignados)

--- Archivos Eliminados Recientemente (Ventana de Incidente: 2024-01-15 a 2024-01-18) ---
Entrada MFT | Nombre de Archivo                | Ruta                               | Tamaño    | Eliminado (UTC)        | Recuperable
------------|-----------------------------------|------------------------------------|-----------|------------------------|------------
148923      | exfil_tool.exe                    | C:\ProgramData\Updates\            | 1,258,496 | 2024-01-17 02:45:12   | SÍ
148924      | exfil_tool.log                    | C:\ProgramData\Updates\            | 45,312    | 2024-01-17 02:45:14   | SÍ
149001      | passwords.txt                     | C:\Users\jsmith\Desktop\           | 2,048     | 2024-01-17 02:50:33   | SÍ
149150      | scan_results.csv                  | C:\Users\jsmith\AppData\Local\Temp | 892,416   | 2024-01-17 03:00:01   | PARCIAL
149200      | mimikatz.exe                      | C:\Windows\Temp\                   | 1,250,816 | 2024-01-18 01:15:22   | SÍ
149201      | sekurlsa.log                      | C:\Windows\Temp\                   | 32,768    | 2024-01-18 01:15:25   | SÍ
149302      | .bash_history                     | C:\Users\jsmith\                   | 4,096     | 2024-01-18 03:00:00   | NO
149400      | ClearEventLogs.ps1                | C:\Windows\Temp\                   | 1,536     | 2024-01-18 03:01:12   | SÍ

--- Análisis de Marcas de Tiempo $STANDARD_INFORMATION vs $FILE_NAME (Detección de Timestomping) ---
Entrada MFT | Nombre de Archivo  | $SI Creado          | $FN Creado          | Delta    | Veredicto
------------|--------------------|---------------------|---------------------|----------|-----------
148923      | exfil_tool.exe     | 2023-06-15 10:00:00 | 2024-01-15 14:34:02 | -214 días | TIMESTOMPED
149200      | mimikatz.exe       | 2022-01-01 00:00:00 | 2024-01-16 02:30:15 | -745 días | TIMESTOMPED

Archivos recuperados exportados a: /analysis/mft_output/recovered/
Reporte CSV completo: /analysis/mft_output/mft_analysis.csv (395,264 filas)
CSV de línea de tiempo: /analysis/mft_output/mft_timeline.csv

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

abusing-dpapi-for-credential-access

Extract and decrypt Windows DPAPI-protected secrets (Credential Manager, browser logins/cookies, Wi-Fi credentials, KeePass keys) online or offline using SharpDPAPI, SharpChrome, Mimikatz, or Impacket

abusing-shadow-credentials-for-privesc

Take over Active Directory accounts by writing attacker-controlled public keys to msDS-KeyCredentialLink (Shadow Credentials) with pyWhisker, Whisker, or Certipy, then authenticate via PKINIT to recover the target

achieving-cmmc-level-2-compliance

>-

acquiring-disk-image-with-dd-and-dcfldd

Create forensically sound bit-for-bit disk images with dd or dcfldd on a Linux forensic workstation, preserving evidence integrity through hash verification (MD5/SHA) during acquisition. Use when imaging a suspect drive, USB device, or memory card for investigation, preserving volatile disk evidence during incident response, or producing a verified copy for legal or law-enforcement proceedings before any destructive analysis.

analyzing-active-directory-acl-abuse

Detect dangerous ACL misconfigurations in Active Directory using ldap3

analyzing-android-malware-with-apktool

Perform static analysis of Android APK malware using apktool for resource decompilation, jadx for Java source recovery, and androguard for manifest inspection, dangerous permission-combination detection, and identification of obfuscated code, dynamic code loading, and reflection-based API calls. Use to statically triage a suspicious APK without executing it or to build mobile malware detection rules.

analyzing-api-gateway-access-logs

Parses API Gateway access logs (AWS API Gateway, Kong, Nginx) to detect

analyzing-apt-group-with-mitre-navigator

Query ATT&CK data with attackcti, mitreattack-python, and stix2, then build MITRE ATT&CK Navigator layers and multi-layer heatmap overlays mapping one or more APT groups

analyzing-azure-activity-logs-for-threats

Queries Azure Monitor activity logs and sign-in logs via azure-monitor-query

analyzing-bootkit-and-rootkit-samples

Analyzes bootkit and advanced rootkit malware infecting the Master

analyzing-browser-forensics-with-hindsight

Parse Chromium-based browser databases with Hindsight to extract and correlate browsing history, downloads, cookies, cached content, autofill data, saved passwords, and extensions from Chrome, Edge, Brave, Opera, and Vivaldi into a unified timeline (XLSX, JSON, or SQLite output). Use during incident response, insider-threat investigations, or criminal cases when you need to reconstruct a user

analyzing-campaign-attribution-evidence

Systematically evaluate cyber-campaign evidence to attribute an operation to a threat actor, using the Diamond Model and Analysis of Competing Hypotheses (ACH) to weigh infrastructure overlaps, TTP consistency, malware code similarity, and timing/language artifacts into confidence-weighted attribution assessments. Use when an incident investigation needs a defensible attribution confidence level.

analyzing-certificate-transparency-for-phishing

Monitor Certificate Transparency logs using crt.sh and Certstream to

analyzing-cloud-storage-access-patterns

Detect abnormal access in AWS S3, GCS, and Azure Blob Storage by analyzing CloudTrail Data Events, GCS audit logs, and Azure Storage Analytics for after-hours bulk downloads, new-IP access, and API-call spikes (e.g. GetObject) via statistical baselines and time-series anomaly detection. Use when investigating suspected cloud data exfiltration or building related detection rules.

analyzing-cobalt-strike-beacon-configuration

Extract and analyze Cobalt Strike beacon configuration from PE files

analyzing-cobaltstrike-malleable-c2-profiles

Parse and analyze Cobalt Strike Malleable C2 profiles with dissect.cobaltstrike (profiles and beacon-payload configs) and pyMalleableC2 (AST parsing) to extract HTTP/DNS transforms, URIs, headers, sleep/jitter, and injection behavior, then generate network detection signatures. Use when reverse-engineering a captured malleable profile or building detections against Cobalt Strike Beacon traffic.

analyzing-command-and-control-communication

Analyzes malware C2 communication over HTTP, HTTPS, DNS, and custom

analyzing-cyber-kill-chain

Analyzes intrusion activity against the Lockheed Martin Cyber Kill Chain

analyzing-disk-image-with-autopsy

Perform comprehensive forensic analysis of raw (dd), E01, or AFF disk images with Autopsy and The Sleuth Kit, recovering deleted files, examining metadata and embedded artifacts, keyword searching, and building investigation timelines with visual reports. Use for structured analysis of a forensic disk image or when stakeholders need visual reports from evidence.

analyzing-dns-logs-for-exfiltration

Analyzes DNS query logs to detect data exfiltration via DNS tunneling,

Skills relacionados