Communitygithub.com

MFT-Analyse zur Wiederherstellung gelöschter Dateien

Analysiere die NTFS-Master-File-Table ($MFT) mit MFTECmd, analyzeMFT und anderen Werkzeugen, um gelöschte Dateien wiederherzustellen und forensische Beweise zu sichern.

Was ist MFT-Analyse zur Wiederherstellung gelöschter Dateien?

Diese Fähigkeit befähigt einen KI-Agenten, die NTFS-Master-File-Table ($MFT) systematisch zu analysieren, um gelöschte Dateien wiederherzustellen und forensische Untersuchungen durchzuführen. Sie unterstützt führende forensische Werkzeuge wie MFTECmd und analyzeMFT und bietet sowohl automatisierte als auch manuelle Verfahren zur Extraktion von Metadaten gelöschter Dateien. Der Agent kann MFT-Einträge parsen (einschließlich Attribute wie $STANDARD_INFORMATION, $FILE_NAME und $DATA) und die Ausgabe nach Datensätzen mit der Markierung „InUse = False“ filtern, was auf gelöschte oder neu zugewiesene Dateien hinweist. Er kann auch mit ergänzenden Artefakten wie dem USN-Journal, der $LogFile und dem Papierkorb ($Recycle.Bin) korrelieren, um die Wiederherstellungsgenauigkeit zu verbessern. Die Fähigkeit umfasst Techniken zur Analyse von MFT-Slack-Space, die verbleibende Dateireste aufdecken, sowie erweiterte Korrelationen mit Volumenschattenkopien, um Dateiaktivitäten im Zeitverlauf zu verfolgen. Sie ist besonders nützlich für SOC-Analysten, Incident-Responder und Forensiker, die Sicherheitsvorfälle untersuchen, Timestomping erkennen und Datenwiederherstellungsworkflows automatisieren müssen. Ausgabeberichte enthalten strukturierte Details zu gelöschten Dateien, Abgleich von Zeitstempeln (Timestomping-Erkennung) und Metadaten zur Wiederherstellbarkeit, die als CSV für die weitere Analyse in Timeline Explorer oder Excel exportiert werden.

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

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht MFT-Analyse zur Wiederherstellung gelöschter Dateien?

Überblick

Die NTFS-Master-File-Table ($MFT) ist das zentrale Metadaten-Repository für jede Datei und jedes Verzeichnis auf einem NTFS-Volume. Jede Datei wird durch mindestens einen 1024-Byte-MFT-Eintrag repräsentiert, der Attribute wie $STANDARD_INFORMATION (Zeitstempel, Berechtigungen), $FILE_NAME (Name, übergeordnetes Verzeichnis, Zeitstempel) und $DATA (Dateiinhalt oder Cluster-Run-Pointer) enthält. Wenn eine Datei gelöscht wird, wird ihr MFT-Eintrag als inaktiv markiert (InUse-Flag gelöscht), aber die Metadaten bleiben erhalten, bis der Eintrag von einer neuen Datei neu zugewiesen wird. Diese Beständigkeit macht die MFT-Analyse zu einer primären Technik zur Wiederherstellung von Beweisen gelöschter Dateien, zur Rekonstruktion von Dateisystem-Zeitlinien und zur Erkennung von anti-forensischen Aktivitäten wie Timestomping.

Verwendung

  • Bei der Untersuchung von Sicherheitsvorfällen, die eine Analyse der MFT zur Wiederherstellung gelöschter Dateien erfordern
  • Beim Erstellen von Erkennungsregeln oder Threat-Hunting-Abfragen für diesen Bereich
  • Wenn SOC-Analysten strukturierte Verfahren für diesen Analysetyp benötigen
  • Bei der Validierung der Sicherheitsüberwachungsabdeckung für verwandte Angriffstechniken

Voraussetzungen

  • Forensisches Datenträgerabbild (E01, raw/dd, VMDK oder VHDX-Format)
  • MFTECmd (Eric Zimmerman) oder analyzeMFT (Python-basiert)
  • FTK Imager, Arsenal Image Mounter oder ähnliches zum Einhängen von Images
  • Timeline Explorer oder Excel für die CSV-Analyse
  • Python 3.8+ für benutzerdefinierte Analysescripte
  • Verständnis der NTFS-Dateisystem-Interna

MFT-Struktur und Datensatzlayout

MFT-Datensatzkopf

Jeder MFT-Datensatz beginnt mit der Signatur „FILE“ (0x46494C45) und enthält:

OffsetGrößeFeld
0x004 BytesSignatur („FILE“)
0x042 BytesOffset zur Update-Sequenz
0x062 BytesGröße der Update-Sequenz
0x088 Bytes$LogFile-Sequenznummer
0x102 BytesSequenznummer
0x122 BytesAnzahl der Hard-Links
0x142 BytesOffset zum ersten Attribut
0x162 BytesFlags (0x01 = InUse, 0x02 = Verzeichnis)
0x184 BytesVerwendete Größe des MFT-Datensatzes
0x1C4 BytesZugewiesene Größe des MFT-Datensatzes
0x208 BytesReferenz auf den Basis-Dateidatensatz
0x282 BytesNächste Attribut-ID

Wichtige MFT-Attribute

Typ-IDNameBeschreibung
0x10$STANDARD_INFORMATIONZeitstempel, Flags, Besitzer-ID, Sicherheits-ID
0x30$FILE_NAMEDateiname, übergeordnete MFT-Referenz, Zeitstempel
0x40$OBJECT_IDEindeutige GUID für die Datei
0x50$SECURITY_DESCRIPTORACL-Berechtigungen
0x60$VOLUME_NAMEDatenträgerbezeichnung (nur Volume-Metadatendateien)
0x80$DATADateiinhalt (resident bei < 700 Bytes) oder Cluster-Run-Liste
0x90$INDEX_ROOTB-Baum-Indexwurzel für Verzeichnisse
0xA0$INDEX_ALLOCATIONB-Baum-Indexeinträge für große Verzeichnisse
0xB0$BITMAPZuweisungs-Bitmap für Index oder MFT

Techniken zur Wiederherstellung gelöschter Dateien

Technik 1: MFT-Datensatzanalyse mit MFTECmd

# $MFT aus forensischem Image extrahieren mit KAPE oder FTK Imager
# $MFT mit MFTECmd parsen
MFTECmd.exe -f "C:\Evidence\$MFT" --csv C:\Output --csvf mft_full.csv

# In Timeline Explorer nach gelöschten Dateien filtern (InUse = FALSE)
# Nach Einträgen suchen, bei denen die Spalte InUse den Wert False hat

Identifizieren gelöschter Dateien in der CSV-Ausgabe:

  • InUse = False zeigt einen gelöschten oder neu zugewiesenen Datensatz an
  • ParentPath zeigt den ursprünglichen Dateipfad vor dem Löschen
  • FileSize zeigt die ursprüngliche Größe (möglicherweise wiederherstellbar)
  • Zeitstempel in den Attributen $STANDARD_INFORMATION und $FILE_NAME bleiben erhalten

Technik 2: USN-Journal-($UsnJrnl:$J)-Analyse

Das USN-Journal zeichnet alle Änderungen an Dateien auf einem NTFS-Volume auf, einschließlich Erstellung, Löschung, Umbenennung und Datenänderungsereignisse.

# USN-Journal mit MFTECmd parsen
MFTECmd.exe -f "C:\Evidence\$J" --csv C:\Output --csvf usn_journal.csv

# Wichtige USN-Reason-Codes für Löschbeweise:
# USN_REASON_FILE_DELETE     = 0x00000200
# USN_REASON_CLOSE           = 0x80000000
# USN_REASON_RENAME_OLD_NAME = 0x00001000
# USN_REASON_RENAME_NEW_NAME = 0x00002000

Technik 3: $LogFile-Transaktionsanalyse

Die $LogFile speichert NTFS-Transaktionsdatensätze, die Dateivorgänge aufdecken können, selbst nachdem das USN-Journal zyklisch überschrieben wurde.

# $LogFile mit LogFileParser parsen
LogFileParser.exe -l "C:\Evidence\$LogFile" -o C:\Output

# Nach REDO- und UNDO-Operationen suchen, die auf das Löschen von Dateien hinweisen:
# - DeallocateFileRecordSegment
# - DeleteAttribute
# - UpdateResidentValue (Löschen des InUse-Flags)

Technik 4: MFT-Slack-Space-Analyse

MFT-Slack-Space existiert zwischen dem Ende des verwendeten Teils eines MFT-Datensatzes und dem Ende der zugewiesenen 1024 Bytes. Dieser Bereich kann Überreste früherer Dateidatensätze enthalten.

import struct

def parse_mft_slack(mft_path: str, output_path: str):
    """MFT-Slack-Space extrahieren und analysieren für Überreste gelöschter Dateien."""
    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

            # FILE-Signatur überprüfen
            if record[:4] != b"FILE":
                record_num += 1
                continue

            # Verwendete Größe von Offset 0x18 holen
            used_size = struct.unpack("<I", record[0x18:0x1C])[0]

            if used_size < record_size:
                slack = record[used_size:]
                # Prüfen, ob Slack lesbare Zeichenfolgen oder Attribut-Header enthält
                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

Korrelation mit unterstützenden Artefakten

Querverweis MFT mit $Recycle.Bin

# Papierkorb mit RBCmd parsen
RBCmd.exe -d "C:\Evidence\$Recycle.Bin" --csv C:\Output --csvf recycle_bin.csv

# Korrelieren: $I-Dateien enthalten den ursprünglichen Pfad und den Löschzeitstempel
# MFT-Eintragsnummern aus $R-Dateien mit ursprünglichen MFT-Datensätzen abgleichen

Querverweis MFT mit Volumenschattenkopien

# Volumenschattenkopien auflisten
vssadmin list shadows

# Schattenkopien einhängen und $MFT aus jeder extrahieren
# MFT-Datensätze über Schattenkopien hinweg vergleichen, um Dateiänderungen über die Zeit zu verfolgen

Forensischer Wert

  • Wiederherstellung von Metadaten gelöschter Dateien: Originalname, Pfad, Größe und Zeitstempel
  • Zeitlinienrekonstruktion: Ereignisse zur Dateierstellung, -änderung, -zugriff und -löschung
  • Timestomping-Erkennung: Vergleich von $SI- und $FN-Zeitstempeln
  • Anleitung für Data Carving: MFT-Cluster-Runs zeigen auf Dateiinhalte auf dem Datenträger
  • Anti-Forensik-Erkennung: Identifizieren gelöschter oder manipulierter MFT-Datensätze

Referenzen

Beispielausgabe

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

MFTECmd v1.2.2 - MFT-Parser
==============================
Eingabe: C:\Evidence\$MFT (Größe: 384 MB)
Gesamt MFT-Einträge: 395.264

MFT-Einträge werden geparst... Erledigt (12,4 Sekunden)

--- Zusammenfassung der Wiederherstellung gelöschter Dateien ---
Gesamt Einträge:              395.264
Aktive Dateien:                245.832
Gelöschte Dateien:             149.432
  Wiederherstellbar:            87.234 (residente Daten oder nicht neu zugewiesene Cluster)
  Teilweise wiederherstellbar:  31.456 (einige Cluster überschrieben)
  Nicht wiederherstellbar:      30.742 (alle Cluster neu zugewiesen)

--- Kürzlich gelöschte Dateien (Vorfallfenster: 2024-01-15 bis 2024-01-18) ---
MFT-Eintrag | Dateiname                        | Pfad                              | Größe     | Gelöscht (UTC)         | Wiederherstellbar
----------|-----------------------------------|------------------------------------|-----------|-----------------------|------------
148923    | exfil_tool.exe                    | C:\ProgramData\Updates\           | 1.258.496 | 2024-01-17 02:45:12   | JA
148924    | exfil_tool.log                    | C:\ProgramData\Updates\           | 45.312    | 2024-01-17 02:45:14   | JA
149001    | passwords.txt                     | C:\Users\jsmith\Desktop\          | 2.048     | 2024-01-17 02:50:33   | JA
149150    | scan_results.csv                  | C:\Users\jsmith\AppData\Local\Temp | 892.416   | 2024-01-17 03:00:01   | TEILWEISE
149200    | mimikatz.exe                      | C:\Windows\Temp\                  | 1.250.816 | 2024-01-18 01:15:22   | JA
149201    | sekurlsa.log                      | C:\Windows\Temp\                  | 32.768    | 2024-01-18 01:15:25   | JA
149302    | .bash_history                     | C:\Users\jsmith\                  | 4.096     | 2024-01-18 03:00:00   | NEIN
149400    | ClearEventLogs.ps1                | C:\Windows\Temp\                  | 1.536     | 2024-01-18 03:01:12   | JA

--- $STANDARD_INFORMATION vs $FILE_NAME Zeitstempelanalyse (Timestomping-Erkennung) ---
MFT-Eintrag | Dateiname          | $SI Erstellt        | $FN Erstellt        | Delta     | Urteil
----------|---------------------|----------------------|----------------------|-----------|----------
148923    | exfil_tool.exe      | 2023-06-15 10:00:00  | 2024-01-15 14:34:02  | -214 Tage | TIMESTOMPED
149200    | mimikatz.exe        | 2022-01-01 00:00:00  | 2024-01-16 02:30:15  | -745 Tage | TIMESTOMPED

Wiederhergestellte Dateien exportiert nach: /analysis/mft_output/recovered/
Vollständiger CSV-Bericht: /analysis/mft_output/mft_analysis.csv (395.264 Zeilen)
Zeitlinien-CSV: /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,

Verwandte Skills