← Zurück zum Blog

MFT-Parser: MFTECmd, omerbenamram/mft und Browser

· 4 Min. Lesezeit

Ein MFT-Parser ist ein Werkzeug, das $MFT — die Master File Table an der Wurzel jedes NTFS-Volumes — liest und ihre 1.024-Byte-Einträge in etwas verwandelt, mit dem ein Mensch oder ein nachgelagertes Werkzeug etwas anfangen kann: CSV, JSON, eine Zeitleiste, einen durchsuchbaren Index. Es gibt drei Projekte, die in der Praxis zählen. Dieser Artikel vergleicht sie ehrlich und sagt Ihnen, wann jedes die richtige Wahl ist.

MFTECmd (Eric Zimmerman)

MFTECmd ist der De-facto-Standard in der Incident Response. Es ist ein Windows-exklusives .NET-CLI, kostenlos nutzbar, das $MFT, $Boot, $J (das $UsnJrnl:$J-Änderungsprotokoll), $SDS (den Sicherheitsdeskriptor-Stream aus $Secure) und $LogFile analysiert. Die Ausgabe ist CSV im bodyfile-nahen Layout, das die übrigen Tools von Eric Zimmerman (Timeline Explorer, KAPE, RECmd) erwarten.

Nutzen Sie es, wenn:

  • Sie an einer Windows-Analyse-Arbeitsstation sitzen.
  • Sie eine CSV wollen, die Sie im Timeline Explorer öffnen und interaktiv durchsteigen können.
  • Sie KAPE einsetzen — MFTECmd ist der mitgelieferte Parser für das MFT-Target.
  • Sie $J-Parsing im selben Workflow brauchen.

Verzichten Sie darauf, wenn: Sie unter macOS oder Linux ohne .NET-Runtime arbeiten oder das Parsing in ein anderes Programm einbetten wollen.

Ein begleitendes GUI, MFT Explorer, durchblättert $MFT interaktiv in einer Baumansicht. Die meisten Analysten nutzen beide: MFTECmd für die Batch-Analyse, MFT Explorer, wenn sie einen bestimmten Eintrag verfolgen müssen.

omerbenamram/mft (Rust-Crate + CLI)

Das Crate omerbenamram/mft ist die Parser-Bibliothek, die diese Seite verwendet. Es kommt sowohl als Rust-Abhängigkeit (cargo add mft) als auch als eigenständiges CLI (mft_dump). Das CLI gibt CSV oder JSON aus; die Bibliothek macht die vollständige Eintragsstruktur für die programmatische Nutzung verfügbar.

Nutzen Sie es, wenn:

  • Sie MFT-Parsing in eine größere Rust-Pipeline, einen Server oder ein WebAssembly-Ziel einbetten müssen.
  • Sie JSON-Ausgabe wollen, um sie in jq, OpenSearch oder eine eigene Datenbank zu pipen.
  • Sie unter Linux oder macOS sind und kein .NET installieren wollen.
  • Sie einen auditierbaren Parser wollen — der Code ist klein, idiomatisches Rust, und das Testkorpus liegt im Repository.

Verzichten Sie darauf, wenn: Sie eine schlüsselfertige Analyst-Erfahrung mit GUI und integriertem Timeline-Tooling wollen.

Das Crate läuft, zu WebAssembly kompiliert, hinter dem Browser-Parser auf der Startseite.

Browser-basiertes Parsing (diese Seite)

Der Parser dieser Seite nimmt das Crate omerbenamram/mft, kompiliert es zu WebAssembly und führt es in einem Web Worker aus. Sie legen eine $MFT-Datei auf die Seite ab und die Einträge erscheinen in einer paginierten, durchsuchbaren Tabelle. Nichts wird hochgeladen; das Binary bleibt im Speicher Ihres Browsers.

Nutzen Sie es, wenn:

  • Sie ohne jede Installation einen schnellen Blick in eine $MFT werfen wollen.
  • Richtlinien das Senden von Beweismaterial an einen Cloud-Dienst verbieten. Das WebAssembly-Parsing geschieht lokal — Sie können das überprüfen, indem Sie das Netzwerk trennen, bevor Sie die Datei ablegen.
  • Sie eine Triage-Sicht mit einer Kollegin teilen wollen, die keine Forensik-Toolchain installiert hat.
  • Sie NTFS-Strukturen demonstrieren oder unterrichten und einen interaktiven Spielplatz wollen.

Verzichten Sie darauf, wenn: Sie eine mehrere Gigabyte große $MFT aus einem stark genutzten Server haben (das Speichermodell skaliert linear) oder Ausgaben benötigen, die sich in eine umfassendere Eric-Zimmerman-Pipeline integrieren.

Wie sie sich vergleichen

| Merkmal | MFTECmd | omerbenamram/mft | Browser-Parser | |---------|---------|------------------|----------------| | Plattform | Windows (.NET) | Linux / macOS / Windows / WebAssembly | Jeder moderne Browser | | Installation | Eine Binärdatei | cargo install oder Download | Keine | | Ausgabe | CSV (Timeline-Explorer-Schema) | CSV / JSON | Interaktive Tabelle + CSV-Export | | $UsnJrnl:$J | Ja | Nein (eigenes Crate omerbenamram/usn) | Browser-Parser verlinkt eine $J-Ansicht | | $LogFile | Ja | Nein | Nein | | Skriptbar | Nur CLI | Bibliothek + CLI | Nein (UI-gesteuert) | | Datenschutz | Lokal | Lokal | Lokal (per Netzwerk-Isolation überprüfbar) |

Welchen wählen?

Für einen routinemäßigen IR-Einsatz auf einer Windows-Arbeitsstation: MFTECmd. Es ist der Weg des geringsten Widerstands und fügt sich in KAPE und Timeline Explorer ein.

Für eine Pipeline, die viele Datenträger ingestiert, unter Linux läuft oder JSON will: omerbenamram/mft. Das CLI ist schnell und die Bibliothek der sauberste Weg, MFT-Parsing zu Ihrem eigenen Werkzeug hinzuzufügen.

Für eine einmalige Triage, eine feindliche Netzwerksituation, einen Klassenraum oder eine Kollegin ohne Forensik-Maschine: der Browser-Parser dieser Seite.

Die drei sind komplementär. Die meisten erfahrenen Prüfer greifen zu dem, was zur Situation passt, statt sich auf einen festzulegen.

Externe Ressourcen