Office-Makros und Dokument-Angriffe erkennen

Lesezeit: 7 Min.

Dokumente sind seit Jahrzehnten einer der wichtigsten Wege, auf denen Schadsoftware auf Rechner kommt. Eine Word-Datei als Bewerbung, eine Excel-Tabelle als Rechnung: Der Empfänger öffnet sie, weil er solche Dateien jeden Tag öffnet. Das Werkzeug untersucht Office-Dokumente und RTF-Dateien auf die typischen Angriffstechniken, ohne das Dokument zu öffnen.

Zwei Office-Formate, zwei Bauweisen

  • Neues Format (seit Office 2007): .docx, .xlsx, .pptx und die makrofähigen Varianten .docm, .xlsm, .pptm. Technisch sind das ZIP-Archive mit XML-Dateien. Makros stecken in einer Datei namens vbaProject.bin.
  • Altes Format: .doc, .xls, .ppt. Das sind OLE-Container, eine Art Dateisystem in einer Datei mit Speicherbereichen und Datenströmen. Makros liegen dort in Bereichen wie Macros oder _VBA_PROJECT_CUR.
  • RTF: ein Textformat, das Word öffnet. RTF kann selbst keine Makros enthalten, aber eingebettete Objekte, und darüber liefen einige der wirksamsten Angriffe der letzten Jahre.

Ein Trick der Angreifer: Word erkennt das Format am Inhalt und öffnet zum Beispiel auch eine RTF-Datei oder ein makrofähiges Dokument, das in .doc umbenannt wurde. Die Endung entscheidet also nicht, was drin ist. Das Werkzeug erkennt das Format am Inhalt, siehe Dateityp und Magic Bytes.

Was zeigt das Werkzeug?

Bei Office- und RTF-Dateien erscheint der Reiter Office mit diesen Abschnitten. Leere Abschnitte werden ausgeblendet.

  • Makros: ob VBA-Makros vorhanden sind und wie die Module heißen, ob es Excel-4.0-Makroblätter gibt.
  • Externe Verweise: alle Ziele außerhalb des Dokuments, entschärft dargestellt. Nachgeladene Vorlagen und Objekte werden besonders hervorgehoben.
  • DDE und Felder: Feldbefehle, die Programme starten oder Inhalte aus dem Netz laden.
  • Eingebettete Objekte: Dateien und Objekte im Dokument, mit Warnung bei ausführbaren Dateien.
  • Aufbau: die innere Struktur, also die Einträge im ZIP-Archiv oder die Speicherbereiche im OLE-Container.

Das Werkzeug zeigt nicht den Quelltext der Makros. Dafür eignet sich olevba aus den kostenlosen oletools von Philippe Lagadec. Mehr dazu unten.

Die Angriffstechniken im Einzelnen

Die folgenden Techniken erkennt das Werkzeug. Zu jeder steht, wie sie funktioniert und wie gefährlich sie heute noch ist.

VBA-Makros

Makros sind kleine Programme in Visual Basic for Applications, die im Dokument gespeichert sind. Sie können fast alles, was ein normales Programm kann: Dateien herunterladen, Befehle ausführen, Daten lesen. Makros mit Namen wie AutoOpen, Document_Open oder Workbook_Open starten beim Öffnen automatisch, sobald der Benutzer Makros erlaubt.

Deshalb der klassische Trick: Das Dokument zeigt einen verschwommenen Inhalt und den Hinweis, man müsse „Inhalt aktivieren“ klicken, um es lesbar zu machen. Ein Klick, und das Makro läuft.

Seit 2022 blockiert Microsoft 365 Makros in Dateien aus dem Internet standardmäßig. Das hat Makro-Angriffe stark zurückgedrängt, aber nicht beendet: Ältere Office-Versionen, abweichende Richtlinien in Unternehmen und Tricks, mit denen die Internet-Markierung verloren geht, halten sie am Leben.

Das Werkzeug listet die Modulnamen. ThisDocument bzw. ThisWorkbook gehört zu jedem Makro-Projekt und sagt allein nichts. Zusätzliche Module mit zufällig wirkenden Namen sind dagegen typisch für Schadmakros.

Excel-4.0-Makros (XLM)

Vor VBA gab es in Excel eine ältere Makrosprache, die in eigenen Makroblättern steht. Sie ist schwerer zu analysieren, lange von Virenscannern schlecht erkannt worden und war deshalb um 2020 bei Angreifern sehr beliebt. Microsoft hat XLM-Makros inzwischen standardmäßig deaktiviert. Taucht ein Excel-4.0-Makroblatt in einer aktuellen Datei auf, gibt es kaum noch einen legitimen Grund dafür.

Nachgeladene Vorlagen (Remote Template Injection)

Ein Word-Dokument kann auf eine Dokumentvorlage verweisen, die beim Öffnen geladen wird, auch aus dem Internet. Das Dokument selbst enthält dann keine Makros und wirkt harmlos, die Vorlage auf dem Server des Angreifers aber schon. Diese Technik führt MITRE ATT&CK als Template Injection (T1221).

Das Werkzeug meldet jede Beziehung vom Typ attachedTemplate mit einem externen Ziel. In normalen Dokumenten zeigt eine solche Vorlage allenfalls auf einen Dateiserver im Firmennetz, nicht auf eine Adresse im Internet.

Nachgeladene Objekte

Ähnlich funktionieren externe OLE-Objekte und Frames: Das Dokument lädt beim Öffnen Inhalte von außen. 2022 wurde darüber die Schwachstelle „Follina“ (CVE-2022-30190) ausgenutzt. Ein Word-Dokument lud eine HTML-Seite, die über das Windows-Diagnoseprogramm Befehle ausführte, ohne dass Makros nötig waren. Die Lücke ist geschlossen, das Muster „Dokument lädt etwas von einem fremden Server“ bleibt ein starkes Warnsignal.

DDE-Felder

Dynamic Data Exchange ist eine alte Windows-Technik zum Datenaustausch zwischen Programmen. In Word-Feldern mit DDE oder DDEAUTO lässt sich damit ein beliebiges Programm starten, etwa die Eingabeaufforderung mit einem PowerShell-Befehl. 2017 wurde das massenhaft ausgenutzt, danach hat Microsoft DDE in Word standardmäßig abgeschaltet. Ein DDE-Feld mit einem Befehl in einem Dokument aus einer Mail ist heute praktisch immer bösartig.

Außerdem meldet das Werkzeug die Felder INCLUDEPICTURE und INCLUDETEXT, wenn sie Inhalte aus dem Internet laden. Das ist nicht unbedingt gefährlich, kann aber verraten, dass und wann jemand das Dokument geöffnet hat.

Eingebettete Objekte und Dateien

Office-Dokumente können andere Dateien enthalten, etwa eine eingebettete Tabelle. Angreifer betten stattdessen Programme, Skripte oder Verknüpfungen ein und bitten den Empfänger, doppelt darauf zu klicken. Das Werkzeug warnt bei eingebetteten Dateien mit ausführbaren Endungen und bei Dateipaketen (Ole10Native).

RTF und der Formel-Editor

Im RTF-Format können OLE-Objekte eingebettet sein. Das Steuerwort \objupdate sorgt dafür, dass ein Objekt beim Öffnen sofort geladen wird. Berühmt wurde die Kombination mit dem alten Formel-Editor von Office (Equation.3). Über eine Schwachstelle darin (CVE-2017-11882) ließ sich Code ausführen, nur durch das Öffnen des Dokuments. Microsoft hat den Formel-Editor 2018 entfernt, Angriffe damit tauchten aber noch jahrelang auf, weil viele Systeme nicht aktualisiert waren. Das Werkzeug meldet eingebettete Objekte, \objupdate und die Objektklasse Equation.3.

Verschlüsselte Dokumente

Ein passwortgeschütztes Office-Dokument ist komplett verschlüsselt. Virenscanner im Mail-Gateway können nicht hineinsehen. Angreifer schicken deshalb gern ein verschlüsseltes Dokument und schreiben das Passwort gleich in die Mail. Das Werkzeug erkennt verschlüsselte Dokumente, kann den Inhalt aber ebenfalls nicht prüfen.

Wie interpretierst du die Befunde?

Entscheidend ist die Kombination aus Befund und Kontext:

  • Makros in einem Dokument aus einer externen Mail: hohes Risiko. Legitime Geschäftspartner schicken heute nur noch selten Makro-Dokumente, und wenn, dann angekündigt.
  • Makros in einer internen Vorlage oder einem bekannten Werkzeug: oft legitim, etwa bei Kalkulationen im Controlling. Trotzdem prüfen, woher die Datei kommt.
  • Nachgeladene Vorlage oder Objekt mit Internet-Adresse: fast immer bösartig, wenn die Datei von außen kommt.
  • DDE-Feld mit Befehl, RTF mit Equation.3 und `\objupdate`: sehr hohes Risiko, praktisch kein legitimer Gebrauch.
  • Verschlüsseltes Dokument mit Passwort in der Mail: kein Beweis, aber eine bekannte Masche. Öffne es nur, wenn du den Absender auf einem anderen Weg bestätigt hast.

Die gefundenen Adressen findest du auch im Reiter Strings & IoCs. Suche sie in deinen Proxy- und DNS-Protokollen, um zu sehen, ob jemand das Dokument schon geöffnet hat. Wie du dabei vorgehst, beschreibt die Seite Strings und IoCs.

Makros selbst untersuchen

Die oletools von Philippe Lagadec sind der Standard für die Analyse von Office-Dateien. Die Installation erfolgt mit Python, am besten in einer isolierten Analyse-Umgebung:

pip install -U oletools

# Makro-Quelltext und verdächtige Schlüsselwörter
olevba verdaechtig.docm

# Schnellüberblick über ein Dokument
oleid verdaechtig.doc

# Objekte aus RTF-Dateien
rtfobj verdaechtig.rtf

olevba zeigt den Makro-Code und markiert Auto-Start-Funktionen, Download-Befehle und verdächtige Schlüsselwörter. Ein Hinweis für Fortgeschrittene: Beim sogenannten VBA-Stomping steht im Dokument harmloser Quelltext, ausgeführt wird aber ein anderer, vorkompilierter Code. olevba warnt in solchen Fällen, für die Analyse hilft dann pcodedmp.

Typische Fehlinterpretationen

  • „Keine Makros, also harmlos.“ Remote Template Injection, externe Objekte, DDE und RTF-Exploits kommen ganz ohne Makros aus.
  • „.doc oder .docx klingt harmlos.“ Die Endung sagt nichts darüber, ob Makros enthalten sind, denn Angreifer benennen Dateien um. Entscheidend ist der Inhalt. Umgekehrt zeigt das Werkzeug bei .docm ohne Makros nur einen neutralen Hinweis.
  • „ThisDocument heißt, dass beim Öffnen Code läuft.“ Das Modul gibt es in jedem Makro-Projekt. Ob darin Code steht, zeigt erst die Quelltext-Analyse.
  • „Makros sind seit 2022 kein Thema mehr.“ Sie sind seltener geworden, aber nicht verschwunden. In vielen Umgebungen gelten abweichende Einstellungen.
  • „Ein externer Verweis ist immer gefährlich.“ Hyperlinks im Text sind ebenfalls externe Verweise und völlig normal. Das Werkzeug listet sie auf, hebt aber nur Vorlagen und Objekte hervor.

Was das Werkzeug nicht erkennt

  • Den Inhalt der Makros und damit, was sie tatsächlich tun.
  • Excel-4.0-Makros im alten .xls-Format. Das Werkzeug erkennt sie nur im neuen Format.
  • Angriffe über andere Formate wie OneNote, Publisher oder PDF-Dateien mit JavaScript.
  • Sehr stark verschleierte RTF-Dateien, bei denen Steuerwörter absichtlich zerlegt wurden.
  • Den Inhalt verschlüsselter Dokumente.

Für diese Fälle helfen die oletools, eine Sandbox oder dein Sicherheitsdienstleister.

Zum Werkzeug