Dateityp erkennen: Magic Bytes statt Dateiendung
Lesezeit: 5 Min.
Windows entscheidet anhand der Dateiendung, womit eine Datei geöffnet wird. Die Endung ist aber nur ein Teil des Namens und lässt sich beliebig ändern. Was eine Datei wirklich ist, verraten ihre ersten Bytes, die sogenannten Magic Bytes. Das Werkzeug liest sie aus und warnt, wenn Inhalt und Endung nicht zusammenpassen.
Was sind Magic Bytes?
Die meisten Dateiformate beginnen mit einer festen Byte-Folge, an der Programme erkennen, womit sie es zu tun haben. Diese Kennung heißt Magic Number, Magic Bytes oder Dateisignatur. Ein PDF beginnt mit dem Text %PDF-, ein Windows-Programm mit den Buchstaben MZ, ein ZIP-Archiv mit PK. Das ist unabhängig vom Dateinamen. Benennst du ein Programm in „foto.jpg“ um, bleibt es ein Programm.
Die Buchstaben MZ am Anfang jeder Windows-Programmdatei sind übrigens die Initialen von Mark Zbikowski, einem der Entwickler von MS-DOS. Seit über 40 Jahren beginnt praktisch jede EXE- und DLL-Datei mit ihnen.
Was zeigt das Werkzeug?
In der Übersicht findest du den erkannten Typ und darunter die Endung mit dem Hinweis, ob sie zum Inhalt passt. Passt sie nicht, erscheint eine Auffälligkeit. Zusätzlich warnt das Werkzeug bei doppelten Endungen wie rechnung.pdf.exe.
Diese Signaturen erkennt das Werkzeug:
- Windows-Programm (PE):
MZam Anfang und die KennungPEan der im Kopf angegebenen Stelle. Das gilt für EXE, DLL, SYS, SCR und weitere. - Linux-Programm (ELF): Bytes
7F 45 4C 46, also ein Steuerzeichen undELF. - macOS-Programm (Mach-O):
FE ED FA CEbzw.FE ED FA CFund die umgekehrten Varianten.CA FE BA BEsteht für Universal-Programme, aber auch für Java-Klassendateien. - Altes Office-Format und andere Container (OLE):
D0 CF 11 E0 A1 B1 1A E1. So beginnen .doc, .xls, .ppt, aber auch .msg und .msi. - ZIP und neues Office-Format:
50 4B 03 04, alsoPK. Das Werkzeug unterscheidet anschließend, ob es sich um ein Word-, Excel- oder PowerPoint-Dokument oder um ein gewöhnliches Archiv handelt. - PDF:
%PDF-innerhalb der ersten 1024 Bytes. - RTF:
{\rtf. - Windows-Verknüpfung (LNK): eine feste 20-Byte-Kennung am Anfang.
- ISO-Abbild: die Kennung
CD001ab Position 32769. - Archive: 7-Zip, RAR und GZIP.
Alles andere erscheint als „Text/Skript oder unbekannt“. Dazu gehören JavaScript, VBScript, PowerShell, Batch-Dateien und HTML-Anwendungen (HTA). Die haben keine Magic Bytes, weil sie reiner Text sind. Gerade diese Typen sind aber bei Angreifern beliebt. Schau bei Textdateien deshalb in den Reiter Strings & IoCs.
Wie interpretierst du das?
Die Frage ist immer: Würdest du die Datei so öffnen, wie ihre Endung es verspricht, und was würde dann tatsächlich passieren?
- Endung passt nicht, Inhalt ist ein Programm: Das ist das deutlichste Warnsignal überhaupt. Eine „Rechnung.pdf“, die in Wahrheit ein Windows-Programm ist, hat keinen harmlosen Grund.
- Endung passt nicht, Inhalt ist ein Dokument oder Archiv: Oft harmlos, etwa ein Word-Dokument, das als .zip heruntergeladen wurde. Office-Dateien sind technisch ZIP-Archive. Trotzdem genauer hinsehen.
- Endung passt, Inhalt ist ein Programm: Die Datei tarnt sich nicht. Ob sie gefährlich ist, klärt das nicht. Weiter geht es mit PE-Format und verdächtigen API-Aufrufen.
- Unbekannt: Reine Textformate haben keine Signatur. Hier entscheidet der Inhalt.
Tarntricks, die du kennen solltest
Angreifer wollen, dass ein Programm wie ein Dokument aussieht. Die Magic Bytes entlarven die meisten dieser Tricks, der Dateiname allein nicht.
Doppelte Endung
Windows blendet bekannte Dateiendungen standardmäßig aus. Aus Rechnung.pdf.exe wird im Explorer „Rechnung.pdf“, oft mit einem passenden PDF-Symbol, das der Angreifer in das Programm eingebaut hat. Das Werkzeug meldet eine doppelte Endung, wenn vor einer ausführbaren Endung ein Dokument- oder Medienformat steht. Tipp: Lass dir im Explorer unter „Anzeigen“ die Dateinamenerweiterungen dauerhaft einblenden.
Umgekehrte Schreibrichtung (RTLO)
Das Unicode-Zeichen U+202E kehrt die Schreibrichtung für den Rest des Namens um. Aus Rechnung[RTLO]fdp.exe wird in der Anzeige „Rechnungexe.pdf“. Der Name wirkt wie ein PDF, die tatsächliche Endung ist .exe. Die Magic Bytes zeigen das Programm trotzdem.
Container: ISO, IMG, ZIP
Ein ISO-Abbild lässt sich unter Windows per Doppelklick als Laufwerk einbinden. Lange Zeit ging dabei die Markierung „Aus dem Internet“ verloren, mit der Windows und Office heruntergeladene Dateien vorsichtiger behandeln. Microsoft hat das 2022 behoben, ISO und IMG tauchen aber weiterhin als Verpackung auf. Findet das Werkzeug ein ISO- oder ZIP-Archiv, solltest du wissen, was darin liegt. Die enthaltenen Dateien prüfst du am besten einzeln, nachdem du sie in einer isolierten Umgebung entpackt hast.
Verknüpfungen (LNK)
Eine .lnk-Datei zeigt im Explorer das Symbol, das der Ersteller wählt, zum Beispiel ein Word-Symbol. Beim Doppelklick startet sie aber einen Befehl, oft PowerShell oder mshta mit einer Adresse im Internet. Verknüpfungen sind in Mails und Archiven fast nie harmlos. Den Befehl darin findest du im Reiter Strings & IoCs.
Polyglotte Dateien
Manche Dateien sind gleichzeitig zwei gültige Formate, etwa ein Bild, an dessen Ende ein ZIP-Archiv hängt. Die Magic Bytes zeigen nur das Format am Anfang. Hinweise auf einen solchen Anhang liefern oft die Entropie und bei Programmen das Overlay im Reiter PE-Details.
Typische Fehlinterpretationen
- „Die Endung passt, also ist alles in Ordnung.“ Der Abgleich sagt nur, ob sich die Datei tarnt. Ein Programm namens setup.exe tarnt sich nicht und kann trotzdem Schadsoftware sein.
- „.docx als ZIP erkannt ist verdächtig.“ Nein, Office-Dokumente sind technisch ZIP-Archive. Das Werkzeug unterscheidet das anhand des Inhalts. Erscheint ein Dokument trotzdem als ZIP, fehlt ihm der typische Office-Aufbau, dann lohnt ein Blick.
- „Text/Skript oder unbekannt heißt harmlos.“ Im Gegenteil: JavaScript, VBScript und HTA-Dateien sind reiner Text und in Mailanhängen ein häufiger Angriffsweg.
- „.msi als OLE ist falsch erkannt.“ Nein, Windows-Installationspakete verwenden denselben Container wie alte Office-Dateien. Das Werkzeug erkennt das und trifft für MSI keine Makro-Aussagen.
- „Keine Endung ist verdächtig.“ Unter Windows ungewöhnlich, unter Linux und macOS normal. Entscheidend ist der Inhalt.
Den Dateityp selbst prüfen
Unter Linux und macOS zeigt der Befehl file den erkannten Typ an. Unter Windows kannst du die ersten Bytes in der PowerShell ansehen:
# Linux / macOS
file rechnung.pdf
# Windows PowerShell 7
Format-Hex -Path .\rechnung.pdf -Count 16Beginnt die Ausgabe mit 4D 5A, hast du ein Windows-Programm vor dir, egal wie die Datei heißt.