Botnet Andromeda/Gamarue ist wieder im Anmarsch

16.03.2015
G DATA Blog

Angriffe mithilfe von Dokumenten, die mit Makros angereichert sind, scheinen wieder in Mode zu kommen. Die Sicherheitsexperten von G DATA haben in den vergangenen Wochen mehrere Fälle analysiert, in denen aktive Inhalte in Dokumenten eine Infektion auslösten. Die Experten möchten zwei unterschiedliche Herangehensweisen erläutern, die beide dasselbe Ziel haben: den Benutzer mit Malware zu infizieren, so dass der Computer im Botnet Andromeda/Gamarue als Zombie-PC agiert. Informationen zu Makros und den Standardeinstellungen in Windows-Betriebssystemen finden Sie im Abschnitt „Was ist ein Makro?“ am Ende des Artikels. Ganz am Ende dieses Artikels finden Sie auch alle Hashwerte der in den beiden Fällen analysierten Samples.

1. Fall: Komplexes Sample mit einem Verhalten, das russischen Matrjoschka-Puppen ähnelt

1. Phase: Makro in MS Word-Dokument

Der Angriff wird über ein präpariertes Word-Dokument gestartet. In vielen Fällen wird ein solches Dokument mithilfe von Spam-Mails verbreitet. In diesem Fall lässt die Bezeichnung des Dokuments vermuten, dass es einen Vertrag enthält. Sie lautet hier umova-3828.doc; „umowa“ ist das polnische Wort für „Vertrag“. Sobald das Dokument geöffnet wird, wird die folgende Meldung angezeigt, falls der Benutzer nicht die automatische Ausführung von Makros aktiviert hat:

Screenshot des geöffneten, manipulierten Word Dokuments

Wie wir sehen, wird eine offizielle Sicherheitswarnung angezeigt. Diese Warnung weist darauf hin, dass die Ausführung von Makros derzeit deaktiviert ist. Sie enthält eine Schaltfläche, mit der die Verwendung von Makros in dem Dokument aktiviert werden kann. 

Auch über den schriftlichen Inhalt des Dokuments wird dazu aufgefordert, Makros zu aktivieren. Interessant ist, dass die Angreifer hier jedoch eine falsche Pluralform des englischen Worts „Macro“ verwenden. Einige Benutzer könnten an dieser Stelle schon stutzig werden. 

Beachten Sie jedoch in jedem Fall Folgendes: Wir empfehlen Ihnen, Makros in einer Situation NICHT zu aktivieren, in der Ihnen ein fremdes Dokument aus einer unbekannten Quelle vorliegt, egal, was der Text besagt. Der folgende Screenshot zeigt Teile des Makro-Quellcodes, der in das Dokument eingebettet ist:

Der Zweck des ersten Code-Abschnitts ist es, einen Dateinamen zu generieren. In unserem Fall lautet der Dateiname TEMPopenwrite.exe (siehe Zeile 35). Bemerkenswert ist Folgendes: Wir nehmen an, dass dem Malware-Entwickler ein Fehler unterlaufen ist: Er vergaß, in Zeile 35 „\“ einzufügen, weshalb der Dateiname TEMPopenwrite.exe statt openwrite.exe (im Ordner TEMP) lautet.

Mit dem übrigen abgebildeten Code sollen Daten aus dem Word-Dokument extrahiert, dekodiert und in der zuvor erzeugten Datei gespeichert werden. Die letzte Zeile schließlich gestattet die Ausführung der zuvor extrahierten Binärdatei. 

2. Phase: Steganographie

Steganographie bezeichnet das Verstecken einer Datei oder Nachricht in einer anderen Datei.[1] 
TEMPopenwrite.exe ist ein interessanter Packer, der in .NET programmiert wurde. Der Hauptzweck von TEMPopenwrite.exe ist das Extrahieren einer gespeicherten Ressource, und zwar eines Bitmap-Bilds, das in der zugehörigen .resource-Datei gespeichert ist. Die R-, G- und B-Werte aus jedem einzelnen Pixel des Bitmap-Bildes werden dazu verwendet, ein Byte-Array zu generieren, das dann nicht mehr verschleiert bzw. auch entschlüsselt wird:

Code, um Information aus einem Bitmap zu extrahieren

Hier die eigentliche Bitmap in 500-facher Vergrößerung:

Das Ergebnis ist eine neue .NET-Datei, die wir Binary2 nennen wollen. Diese wird dann geladen und ausgeführt.

3. Phase: Einsetzen der Payload

Betrachten wir nun die dritte Phase, in der es um Binary2 geht. Nach der Ausführung der Datei wird mit der Funktion VirtualAlloc() eine Payload direkt in den Speicher geschrieben, zu dieser gewechselt und diese ausgeführt. Der folgende Codeausschnitt zeigt die Payload und die Verwendung von VirtualAlloc():

Code, der die benutzung von VirtualAlloc() zeigt

4. Phase: die Payload in Aktion

Die Payload gilt als die vierte Phase des Droppers. Ihre erste Aufgabe ist das Parsen der ursprünglichen .NET-Binärdatei TEMPopenwrite.exe. Der .exe-Code wird gelesen, eine bestimmte Stelle im Code wird überprüft, und Daten von dieser Stelle werden entschlüsselt. Der folgende Codeausschnitt zeigt den Teil der Payload, mit dem TEMPopenwrite.exe gelesen wird:

Code, um TEMPopenwrite.exe zu lesen

Die extrahierten Daten werden entschlüsselt und auf dem Computer im Verzeichnis %appdata% unter dem Dateinamen msnjauzge.exe gespeichert. 

5. Phase: die eigentliche Infektion des Systems

Den letzten Schritt dieser Infektionskette bildet die Ausführung von msnjauzge.exe. Mit der ersten Ausführung gelangt ein Autostart-Eintrag in die Registry, damit die Datei einen Systemneustart überlebt. Diese Datei ist sozusagen die innerste unserer Matrjoschka-Puppen.

G DATA Illustration, um die Stufen des Angriffs im aktuellen Fall zu verdeutlichen

2. Fall: Ein wesentlich einfacheres Konzept

Wir haben von Word-Dokumenten erfahren, die vorgeblich Rechnungen für BahnCards der Deutschen Bahn darstellen sollen. Diese Dokumente wurden als Anhänge von Spam-E-Mails gesendet. Ihr Name lautet BAHNCARD_5268.doc oder ähnlich.

Das von uns analysierte Sample weist ein sehr ähnliches Verhalten wie das komplexe Sample aus Fall 1 auf – zumindest was den Anfang und das Ende betrifft. Das in dem MS Word-Dokument eingebettete Makro ist genau dasselbe, mit einer Ausnahme: es legt keine .NET-Datei ab, sondern eine ausführbare PE32-Datei (Portable Executable). Das Makro führt dann die abgelegte PE32-Datei aus. Diese findet und entschlüsselt dann direkt die in der PE32-Datei gespeicherten Daten und generiert wie im vorigen Beispiel die Datei msnjauzge.exe. Am Ende wird genau dieselbe Datei msnjauzge.exe auf dem Computer gespeichert, mit dem der PC als neuer Zombie-PC des Botnet Andromeda/Gamarue registriert wird.

msnjauzge.exe: das Wiederaufleben eines bekannten Botnet

Die Datei msnjauzge.exe ist der Ausgangspunkt für das bekannte Botnet Andromeda, das auch als Gamarue bezeichnet wird. Dieses Botnet ist dafür bekannt, im Jahr 2011 den Banken-Trojaner ZeuS verbreitet zu haben.

In unserem Fall ist hxxp://ss77.37to.ru/mail/inbox der C&C-Server, mit dem unser Sample Verbindung aufnahm. Als dieser Artikel geschrieben wurde, wartete der Server auf Verbindungen. Er lieferte jedoch noch keinen zusätzlichen Code an den infizierten Analysecomputer aus. Daher kann der beabsichtigte Verwendungszweck des Botnetzes noch nicht ermittelt werden.

Fazit

Wir gehen davon aus, dass der Entwickler dieses Botnet viele infizierte Rechner „sammelt“, um den Zugang auf diese Rechner auf dem Schwarzmarkt zu verkaufen. Der Käufer ist dann in der Lage, beliebige Inhalte auf den von diesem Botnet infizierten Rechnern zu hinterlegen (z. B. Bank Trojaner, Spyware, Spam-Bots usw.)

Alles begann also mit einfachen Dokumenten – mit Dateitypen, die in der Regel als sicher und ungefährlich gelten und tagtäglich auf Privat- und Geschäftscomputern in aller Welt genutzt werden. 

Wir empfehlen Ihnen dringend, die Makro-Einstellungen auf Ihrem Computer zu überprüfen (siehe unten) und NIEMALS Makros automatisch ausführen zu lassen, sondern immer manuell über die Ausführung zu entscheiden. Darüber hinaus empfehlen wir, die Ausführung von Makros in unbekannten Dokumenten niemals zu gestatten.

In dem von uns analysierten komplexen Sample setzte der Malware-Entwickler zahlreiche Verschleierungstechniken und -phasen ein, um das Wiederaufleben des alten Botnetzes Andromeda/Gamarue im Jahr 2015 zu verbergen. Das Bild der Matrjoschka-Puppen veranschaulicht das Konzept des Entwicklers sehr gut. Der andere Ansatz, mit dem die Infektion durchgeführt wurde, ist ziemlich einfach.

Dieses Botnet befindet sich offenbar erst am Anfang seiner Laufzeit und umfasst wahrscheinlich noch nicht Millionen infizierter Computer. Diese Erkenntnis können wir aus der relativ geringen Anzahl unterschiedlicher Samples ableiten, die wir in der Analysephase zu diesem Artikel als zu dieser Kampagne gehörend identifizieren konnten. Es ist jedoch schwierig, die weitere Entwicklung dieses Botnet zu prognostizieren. 

Was ist ein Makro?

In Microsoft Office-Dokumente (z.B. Word, Excel oder PowerPoint) kann Code eingebettet sein. Die Programmiersprache für die Makros ist Visual Basic for Applications (VBA). Makros dienen der Optimierung der Dokumentenverarbeitung. So kann der Autor eines Dokuments beispielsweise ein Makro erstellen, um sich wiederholende Befehle zu automatisieren. Leider können Makros nicht nur für positive Maßnahmen verwendet werden, sondern auch von Angreifern genutzt werden, um Programmcode auf einem Zielsystem auszuführen.

Microsoft führte einen zusätzlichen Sicherheitsmechanismus ein, um die böswillige Nutzung von Makros zu verhindern: Wenn ein Dokument ein Makro enthält, wird das Makro nicht automatisch ausgeführt. Der Benutzer wird zunächst durch eine Meldung (wie oben im ersten Fall abgebildet) darauf aufmerksam gemacht, dass das Dokument Makros enthält. Der Benutzer muss die Makros erst manuell aktivieren, damit der im Dokument eingebettete Code ausgeführt werden kann.

Überprüfung der eigenen Makro-Einstellungen:

Zur Überprüfung Ihrer derzeitigen Standardkonfiguration in MS Word klicken Sie auf „Datei“ > „Optionen“ und wählen Sie dann das Menü „Sicherheitscenter“. Klicken Sie auf „Einstellungen für das Sicherheitscenter“, dann auf „Einstellungen für Makros“. Wir empfehlen die Einstellung „Alle Makros deaktivieren“, mit der Option „mit Benachrichtigung“, sodass das System Sie benachrichtigt, sollte ein Makro gefunden werden.

Analysierte Samples

Fall 1
Word-DokumentSHA256: A019BB125EC3F9F5FE2944681F16BF798264F70135DD7361361E19F934F93700
Erkennung Engine A: W97M.Dropper.C
Erkennung Engine B: Macro.Trojan-Dropper.Sesorm.A
TEMPopenwrite.exeSHA256: ACEFC3DD92B911B80F4C09A3CE89635D3F55BB2A7D881C42055ED8F67EBE19B7
Erkennung Engine A: Trojan.GenericKD.2168928
Erkennung Engine B: Win32.Trojan.Netryoshka.G
Binary2SHA256: 12D25E7A578188AE654527B6DF89AAA8D755EA26D15430E6421BF23CB9A9CA43
Erkennung Engine A: -
Erkennung Engine B: Win32.Trojan.Netryoshka.E
msnjauzge.exeSHA256: 3913D5568D616A4810DABADE844D9BAE2BFE4F6F588BC70B1F4C33F3D617389A
Erkennung Engine A: Gen:Variant.Zusy.129227
Erkennung Engine B: Win32.Backdoor.Netryoshka.A
Fall 2
Word-DokumentSHA256: 85342505474C2E7A62B958EFB417CF638694E89A9016AFD23224032F84E861E6
Erkennung Engine A: Trojan.VBS.Agent.JH
Erkennung Engine B: Macro.Trojan-Dropper.Sesorm.A
Abgelegte PE32-DateiSHA256: 1023296F88F88BBB77D579F5FBAD02E064274264C506639D7829ADA1B55C89F6
Erkennung Engine A: Worm.Gamarue.B
Erkennung Engine B: -
msnjauzge.exeSHA256: 3913D5568D616A4810DABADE844D9BAE2BFE4F6F588BC70B1F4C33F3D617389A
Erkennung Engine A: Gen:Variant.Zusy.129227
Erkennung Engine B: Win32.Backdoor.Netryoshka.A

Wichtige IT-Security-News per E-Mail

  • Aktuelle IT-Gefahren
  • Schutz-Tipps für Privatkunden
  • 15 % Willkommensgutschein