ESET-Forscher entdeckten bislang undokumentierte Malware-Tools der Gamaredon-Gruppe, die nach einer bereits erfolgten Kompromittierung zum Einsatz kommen. Es handelt sich dabei um ein VBA-Makro, das auf Microsoft Outlook abzielt. Das E-Mail-Konto des Opfers wird dazu missbraucht, Spearphishing-E-Mails an Kontakte aus dem Outlook-Adressbuch zu senden. Darüber hinaus untersuchten die Forscher auch andere Gamaredon-Tools, welche es ermöglichten, schädliche Makros und Remote-Vorlagen in bereits bestehende Office-Dokumente einzufügen.

Die in diesem Beitrag diskutierten Tools werden von ESET Anti-Malware-Produkten als MSIL/Pterodo-, Win32/Pterodo- oder Win64/Pterodo-Varianten enttarnt und neutralisiert.

Die Gamaredon-Gruppe ist seit mindestens 2013 aktiv und für eine Reihe von Angriffen verantwortlich, dich sich meist gegen ukrainische Institutionen richten. Das geht aus mehreren Berichten des CERT-UA und anderen offiziellen ukrainischen Stellen hervor.

In den letzten Monaten nahm die Aktivität der Gamaredon-Gruppe zu, wobei stetige Wellen bösartiger E-Mails mit Anhang die Postfächer der Opfer erreichten. Bei den E-Mail-Anhängen handelte es sich um Dokumente mit bösartigen Makros, die bei Ausführung eine Vielzahl verschiedener Malware-Varianten herunterzuladen versuchten.

Gamaredon nutze in den vergangenen Monaten viele verschiedene Programmiersprachen (C# bis VBScript, Batch-Dateien und C/C++). Die von der Gruppe verwendeten Werkzeuge sind sehr simpel und wurden entwickelt, um sensible Informationen aus kompromittierten Systemen abzuschöpfen und darüber hinaus ihre Malware weiterzuverbreiten.

Im Gegensatz zu anderen APT-Gruppen scheint die Gamaredon-Gruppe sich nicht darum zu bemühen, lange unentdeckt zu bleiben. Zwar besitzen ihre Tools die Fähigkeiten, beliebige Binarys herunterzuladen und auszuführen, die wesentlich geheimer agieren könnten. Man legte den Fokus aber auf die möglichst schnelle Verbreitung im Netzwerk des Opfers und auf das Ausleiten von Daten.

Hintergründe zur Gamaredon-Gruppe

Abbildung 1 zeigt einen typischen Kompromittierungsvorgang innerhalb einer Gamaredon Malware-Kampagne.

Abbildung 1: typischer Kompromittierungsvorgang innerhalb einer Gamaredon Malware-Kampagne

Abbildung 1: typischer Kompromittierungsvorgang innerhalb einer Gamaredon Malware-Kampagne

In jüngster Vergangenheit konzentrierten sich viele Veröffentlichungen auf die Spearphishing-E-Mails im Zusammenhang mit den darin enthaltenen Downloadern. Unser Beitrag befasst sich mit den Tools, die nach erfolgreicher Kompromittierung im System zum Einsatz kamen.

Outlook VBA Modul

Die Gamaredon-Gruppe verwendete ein Programmpaket, das ein benutzerdefiniertes Microsoft Outlook Visual Basic for Applications (VBA)-Projekt enthielt. Die Verwendung von Outlook-Makros zur Verbreitung von Malware bekommt man sonst eher selten zu sehen.

Das bösartige Code-Bündel beginnt mit einem VBScript, das zunächst den Outlook-Prozess beendet, falls dieser gerade ausgeführt wird, und entfernt dann die Sicherheitsbarriere bei der Ausführung von VBA-Makros in Outlook durch eine Änderung von Registry-Werten. Es speichert auch die bösartige OTM-Datei (Outlook-VBA-Projekt) auf die Festplatte. Diese enthält ein Makro, den bösartigen E-Mail-Anhang und in einigen Fällen eine Liste von Empfängern, an welche die E-Mails gesendet werden sollen.

Als nächstes wird Outlook mit dem speziellen Befehl /altvba <OTM filename>, die das Gamaredon VBA-Projekt lädt, neu gestartet. Der bösartige Code wird ausgeführt, sobald das Ereignis Application.startup auftritt. Die Cyberkriminellen verwendeten das Modul auf drei verschiedene Weisen, um bösartige E-Mails an folgende Empfänger zu versenden:

  • Jeder aus dem Adressbuch
  • Jeder innerhalb derselben Organisation
  • An Empfänger aus einer vordefinierten Liste

Die missbräuchliche Verwendung eines gehackten Outlook-Postfachs und das Versenden bösartiger E-Mails ist an sich keine neue Technik. Allerdings sind die ESET-Forscher der Meinung, dass der Gamaredon-Fall die erste Dokumentation für die Verwendung einer OTM-Datei und eines Outlook-Makros ist, um das zu erreichen.

Abbildung 2: Outlook-VBA-Skript zur Erstellung der bösartigen E-Mails

Abbildung 2: Outlook-VBA-Skript zur Erstellung der bösartigen E-Mails

Wie in Abbildung 2 dargestellt, formt der VBA-Code den E-Mail-Textkörper und hängt die bösartigen Dokumente (.docx- und .lnk-Dateien) an die E-Mails an. Diese sind dem Inhalt der bösartigen Anhänge sehr ähnlich, die in Gamaredons ersten Spearphishing-Kampagnen verwendet wurden. Abbildung 3 zeigt eine von der VBA-Malware-Komponente generierte E-Mail.

Abbildung 3: Eine vom Outlook VBA-Modul generierte E-Mail mit Word-Anhang (enthält schädliche Remote-Vorlage)

Abbildung 3: Eine vom Outlook VBA-Modul generierte E-Mail mit Word-Anhang (enthält schädliche Remote-Vorlage)

Die E-Mail enthält sowohl englischen als auch russischen Text. Abbildung 3 offenbart ein Problem mit der russischen Kodierung. Dieses wurde in einer späteren Version des Malware-Moduls behoben - ein weiteres Beispiel für das rasante Entwicklungstempo der Gamaredon-Gruppe und das offensichtliche Aufmerksamkeitsdefizit im Hinblick auf Details.

Office Macro Injectionmodul - CodeBuilder

Die ESET-Forscher analysierten verschiedene Modulvarianten, um bösartige Makros oder Remote-Vorlagen in bereits auf dem kompromittierten System vorhandene Dokumente einzuschleusen.

Die von den Cyberkriminellen eingesetzte Methode ist eine sehr effiziente Möglichkeit, sich seitwärts innerhalb des Netzwerks einer Organisation zu bewegen, da beispielsweise routinemäßig Dokumente unter Kollegen ausgetauscht werden. Die Makros führen sich mit dem Öffnen der Dokumente aus. Das stellt eine gute Chance dar, in einem System / Netzwerk zu bleiben, da die Dokumente wahrscheinlich mehrfach zu unterschiedlichen Zeiten geöffnet werden.

Die für das Einschleusen zuständigen Makro-Module verfügen auch über die Fertigkeit, die Microsoft Office Makro-Einstellungen zu manipulieren. Betroffene Benutzer haben deshalb meist keine Ahnung, dass sie bei jedem Öffnen der Dokumente ihre Workstations „erneut kompromittieren“.

Die ESET-Forscher entdeckten, dass dieses Modul in zwei verschiedenen Sprachen implementiert wurde: C# und VBScript.

C#

Dieses Modul kam wie viele andere Tools in einem selbstextrahierenden 7z-Archiv. Darin befand sich ein passwortgeschütztes RAR-Archiv, das nur einige wenige Dateien enthielt. Darin gab es beispielsweise zwei Textdateien, eine für Word und eine für Excel. Sie enthielten den VBA-Quellcode des bösartigen Makros, welcher in die Zieldokumente eingefügt werden sollte. Außerdem fand man die .NET-Baugruppe, die für das Auffinden und Kompromittieren vorhandener Dokumente verantwortlich war. Wie in Abbildung 4 dargestellt, lautet der Assembly-Name CodeBuilder.

Abbildung 4: CodeBuilder-Funktionen in einer unverschleierten Version

Abbildung 4: CodeBuilder-Funktionen in einer unverschleierten Version

Das .NET-Modul setzt zunächst das Sicherheitslevel für Office-Makros für verschiedene Dokumenttypen herab, indem die folgenden Registry-Werte geändert werden:

  • HKCU\Software\Microsoft\Office\<version>\<product>\Security\VBAWarnings
  • HKCU\Software\Microsoft\Office\<version>\<product>\Security\AccessVBOM

Es iteriert über alle möglichen Office- <Version>-Werte sowohl für Word als auch für Excel <Produkt>-Werte. Anschließend wird auf allen an das System angeschlossenen Laufwerken nach Dokumenten mit gültigen Word- oder Excel-Dateierweiterungen gesucht. Für das Laufwerk, das die Windows-Installation enthält, scannt es nur bestimmte Speicherorte, nämlich die Ordner Desktop und Downloads. Alle anderen Laufwerke werden vollständig gescannt. Die Malware verschiebt jedes gefundene Dokument in den Ordner AppData, schleust mit Hilfe eines Microsoft.Office.Interop-Objekts bösartige Word- oder Excel-Makros ein und kopiert das Dokument dann wieder in seinen ursprünglichen Ordner. Bei den von ESET analysierten Malware-Samples handelte es sich bei den eingeschleusten Makros um einfache (Malware-) Downloader.

Batch File/VBScript

Die VBScript-Version dieses Moduls verhält sich zur .NET-Version ähnlich. Der Hauptunterschied besteht darin, dass es, anstatt ein bösartiges Makro in bestehende Dokumente einzufügen, Verweise auf eine Remote-Vorlage einschleust.

Abbildung 5: VBScript, das die Document.AttachedTemplate-Eigenschaft verwendet, um einen Verweis auf eine Remote-Vorlage in das bestehende Dokumente einzuschleusen.

Abbildung 5: VBScript, das die Document.AttachedTemplate-Eigenschaft verwendet, um einen Verweis auf eine Remote-Vorlage in das bestehende Dokumente einzuschleusen.

Dieses VBScript-Modul wird ebenfalls in einem selbstentpackenden Archiv ausgeliefert. Es enthält eine Batch-Datei und zwei VBS-Dateien, die für die Iteration durch die Dokumente und für das Hinzufügen der Verweise auf die Remote-Vorlagen zuständig sind.

Modul-Aktualisierungen

Interessanterweise werden einige der maßgeschneiderten und von Palo Alto Networks bereits im Jahr 2017 beschrieben Tools noch immer aktualisiert und verwendet. Einige weisen erhebliche Ähnlichkeiten auf, während andere in verschiedenen Kodierungssprachen neu geschrieben wurden. Die am verbreitetsten Tools, die heruntergeladen und auf kompromittierten Rechnern installiert wurden, lassen sich grob in zwei verschiedene Kategorien einteilen: Downloader und Backdoors.

Gamaredon-Downloader

Es gibt viele Variationen der Gamaredon-Downloader, die meisten sind entweder in C# oder VBScript geschrieben. Dieser Abschnitt behandelt nur zwei ihrer originellsten Varianten; die anderen wurden eher etwas nachlässiger weiterentwickelt.

C# compiler module

Die ausführbare .NET-Datei greift, ähnlich wie viele andere von der Gamaredon-Gruppe verwendeten Tools, auf Verschleierungstechniken zurück. Dazu gehört zum Beispiel das Einfügen von Junk-Code und die Zeichenfolgen-Obfuskation. Die Schad-Datei enthält in ihrem Hauptteil den base64-verschlüsselten Quellcode eines Downloaders. Dieser wird entschlüsselt und direkt auf dem System mit Hilfe der eingebauten Klasse Microsoft.CSharp.CSharpCodeProvider kompiliert. Die resultierende ausführbare Datei wird in einem bestehenden Verzeichnis platziert und eine Task erstellt, die alle 10 Minuten startet. Wie in Abbildung 6 zu sehen ist, enthält der entschlüsselte Quellcode noch Kommentare, was die offensichtliche Unaufmerksamkeit der Gamaredon-Entwickler veranschaulicht.

Abbildung 6: Teil des C#-Downloader-Quellcodes, der im C#-Compilermodul enthalten ist.

Abbildung 6: Teil des C#-Downloader-Quellcodes, der im C#-Compilermodul enthalten ist.

GitHub project module

Abbildung 7 zeigt, dass die ausführbare .NET-Datei auf ein GitHub-Repo zum Abrufen und Ausführen eines Downloaders zurückgreift. Das Repository ist jetzt verschwunden, aber die ESET-Forscher konnten eine Kopie herunterladen.

Abbildung 7: .NET-Modul, das für das Herunterladen und Ausführen einer auf github.com gespeicherten Payload verantwortlich ist.

Abbildung 7: .NET-Modul, das für das Herunterladen und Ausführen einer auf github.com gespeicherten Payload verantwortlich ist.

Das Repository enthielt bloß eine einzelne Datei - readme.txt - bei der es sich eigentlich um eine base64-verschlüsselte .NET-Downloader-Ausführungsdatei handelte. Die Rolle des GitHub-Projektmoduls bestand darin, diese Datei herunterzuladen, zu entschlüsseln und auszuführen.

Backdoors – Datei-Dieb

Zwar variieren die Funktionalitäten dieses Moduls etwas, aber der Hauptzweck besteht dennoch darin, alle Dokumente eines kompromittierten Systems zu listen und diese auf den C&C-Server hochzuladen. Der „Datei-Dieb“ kann auch beliebigen Code vom C&C-Server herunterladen und ausführen. Wie viele andere von der Gamaredon-Gruppe verwendeten Werkzeuge sind sie in vier verschiedenen Programmiersprachen erhältlich: C/C++, C#, als Batch File und VBScript.

C/C++

Diese Variante ist der Nachfolger des hier bereits beschriebenen USBStealer-Moduls. Obwohl sich die letzten Versionen inzwischen stark voneinander unterscheiden, zeigen die Forschungsergebnisse der Samples des Moduls über die gesamte Entwicklung hinweg deutlich, dass beide vom gleichen Quellcode abstammen.

Ein Samples, welches den Shift recht gut verdeutlicht, ist eine 64-bit DLL, das den internen Namen Harvesterx64.dll trägt (kompiliert im Juni 2019). Es enthält noch die meisten der in den älteren Varianten verwendeten Strings, weist aber auch zwei Verbesserungen auf, die immernoch in den neueren Varianten vorhanden sind:
Erstens löst das Sample Windows-APIs über Name Hashing auf und zweitens verwendet es eine einfache Textdatei anstelle einer SQLite-Datenbank, um nachzuvollziehen, welche Dateien bereits auf den C&C-Server hochgeladen wurden.

Das Verhalten des Moduls ist recht unkompliziert: Es scannt das System nach neuen Microsoft Office-Dokumenten, sowohl auf lokalen Laufwerken als auch auf Wechseldatenträgern, und lädt diese auf den C&C-Server hoch. Um zu überprüfen, ob ein Dokument neu ist, speichert das Modul die MD5-Hashes bereits hochgeladener Dateien in einer Textdatei. Diese MD5-Hashes basieren nicht auf dem Dateiinhalt, sondern auf einer Zeichenfolge, die sich aus dem Dateinamen, der Größe und der letzten Änderungszeit zusammensetzt. Die Strings des Moduls werden in dessen .data-Abschnitt gespeichert und mit einem einfachen XOR-Schlüssel verschlüsselt.

Auch dieses Modul besitzt die Fertigkeit beliebigen Code vom C&C-Server herunterzuladen und auszuführen.

C#

Diese Version ist eine Ableitung der C/C++-Variante. Der Hauptunterschied besteht darin, dass es zusätzlich jede Minute Screenshots des kompromittierten Computers aufnimmt. Wie in Abbildung 8 zu sehen ist, hat die von den ESET-Forschern analysierte Version fünf verschiedene Threads mit recht einfallslosen Namen:

Abbildung 8: C#-Routine zur Erstellung von Backdoor-Threads

Abbildung 8: C#-Routine zur Erstellung von Backdoor-Threads

Batch File/VBScript

Diese Version umfasst mehrere Skripte, die sowohl in Batch-Dateiform als auch in VBScript geschrieben wurden. Das Ziel bleibt jedoch dasselbe: ein System-Scan auf sensible Dokumente. Der Hauptmechanismus beruht auf einer Batch-Datei, die im System nach Word-Dokumenten (*.doc*) sucht und deren Namen in einer Textdatei speichert (siehe Abbildung 9):

Abbildung 9: Beispiel für die inject.txt- Datei, die das Ergebnis des Scans enthält.

Abbildung 9: Beispiel für die inject.txt- Datei, die das Ergebnis des Scans enthält.

Das Programmpaket enthält auch verschlüsselte Skriptdateien mit den Namen 1.log, 2.log, 3.log, 4.log und 5.log. Nach einer Entschlüsselung offenbaren sich verschleierte VBScript-Downloader, die in der Lage sind, beliebigen Code herunterzuladen und auszuführen.

Gamaredons Netzwerk-Infrastruktur

Die Gamaredon-Gruppe verwendete für ihre C&C-Server viele unterschiedliche Domains, darunter kostenlose, aber auch kostenpflichtige. Freie Domains waren meist DDNS von No-IP: hopto.org, ddns.net, myftp.biz, während kostenpflichtige Domains über den Registrar REG.RU registriert wurden und die TLDs .fun, .site, .space, .ru, .website und .xyz einschlossen.

Die Cyberkriminellen ändern ständig die Domains, die sie für ihre Tools benutzen, aber meistens beschränkt es sich auf eine kleinere Anzahl von ASNs. Sorgfältige Analysen legen nahe, dass sie für kleine Opfergruppen separate Domains verwenden. Eine ausführliche Liste der von der Gamaredon-Gruppe verwendeten Domains finden Sie im GitHub-Konto von ESET.

Qualität des Gamaredon-Outputs

Die ESET-Forscher konnten zahlreiche verschiedene Samples von bösartigen Skripten, ausführbaren Dateien und Dokumenten sammeln. Dabei stellten sie mehrere Fehler fest, insbesondere bei den Skripten. Es ist natürlich nicht möglich, den genauen Grund für die Fehler/Versehen herauszufinden, aber die Menge der von der Gruppe produzierten Samples und ihre rasche Entwicklung ist ein Ansatzpunkt. Die Tatsache, dass in einigen Samples des C#-Compilermoduls Kommentare im Quellcode hinterlassen wurden oder dass die russische Kodierung in E-Mails fehlschlug, zeigt, dass es keine strengeren Überprüfung oder Tests gibt, bevor die zahlreichen erscheinenden Tools ins Internet entlassen werden.

Selbst wenn die Fehler die Gesamteffektivität ihrer Tools beeinträchtigen, trägt die schnelle Ausführung und Anpassung der Gruppe Früchte. Der Umfang und die Unerbittlichkeit der Angriffe setzen die Opfer einer stetig lauernden Bedrohung aus. Und obwohl der Malware-Code recht einfach gehalten ist, erschweren einige Techniken, wie z.B. die Skript-Verschleierung, die vollständige Automatisierung der Analyse, was die Arbeit des Reverse-Engineerings erschwert.

Ihr GitHub-Projekt ermöglichte uns einen Einblick in die rasche Entwicklung ihrer Tools. Der dort abgelegte Programmcode zeigte die Entwicklung des C#-Downloaders. Die ersten Versionen wiesen keine Anzeichen von Verschleierung auf; dann fügten die Entwickler verschiedene String-Elemente und Junk-Code hinzu, um schnelle Analysen zu behindern.

Was die Persistenz anbelangt, so setzen die Malware-Entwickler auf verschiedene Techniken, aber die häufigsten sind Tasks, Autorun-Registry-Schlüssel und die Nutzung des Startordners. Zwar sind diese Techniken sehr simpel und lange bekannt, dennoch erschwert diese Strategie das Leben der Anti-Malware-Industrie erheblich.

Fazit

Obwohl die Gamaredon-Gruppe auf einfache Tools setzt, scheut sie keine Neuentwicklungen – wie das Outlook-VBA-Modul beweist. Da ihm jedoch jegliche Verschleierungsfunktionen fehlen, wird es nicht lange erfolgreich sein.

Insgesamt können die verschiedenen Gamaredon-Werkzeuge sehr effektiv sein, wenn es darum geht, Fingerabdrücke von einem Computersystem zu nehmen und sensiblen Daten auszuleiten.

Besonderer Dank gilt dem ESET Senior Malware Researcher Anton Cherepanov für seine Hilfe bei dieser Forschung.

Indicators of Compromise (IoCs)

SHA-1 ESET detection name Comments
6F75F2490186225C922FE605953038BDEB537FEE DOC/TrojanDownloader.Agent.ARJ Outlook VBA module
DFC941F365E065187B5C4A4BF42E770035920856 Win32/Pterodo.XG.gen C# Office macro injection module
9AFC9D6D72F78B2EB72C5F2B87BDC7D59C1A14ED Win32/Pterodo.ZM Batch file/‌VBScript Office macro injection module
3DD83D7123AEFBE5579C9DC9CF3E68BCAFC9E65E MSIL/Pterodo.CD C# compiler module
941F341770B67F9E8EE811B4B8383101F35B27CD MSIL/Pterodo.CA GitHub project module
DC8BD2F65FD2199CE402C76A632A9743672EFE2D Win32/Pterodo.XC C/C++ backdoor
336C1244674BB378F041E9064EA127E9E077D59D MSIL/Pterodo.DP C# backdoor
5FC1B6A55A9F5A52422872A8E34A284CDBDD0526 Win32/Pterodo.YE Batch file/‌VBScript backdoor

MITRE ATT&CK techniques

Tactic ID Name Description
Initial Access T1193 Spearphishing Attachment Gamaredon group sends emails with malicious attachments to its targets.
T1199 Trusted Relationship Gamaredon group malware abuses a compromised organization’s email accounts to send emails with malicious attachments to the victim’s contacts.
Execution T1064 Scripting Gamaredon group uses scripting heavily, mostly Batch files and VBScript.
T1085 Rundll32 Gamaredon group malware uses rundll32 to launch malicious DLLs, for example the C/C++ backdoor.
T1106 Execution through API Gamaredon group malware uses CreateProcess to launch additional components, for example to execute payloads received from its C&C servers.
T1204 User Execution Initial compromise by the Gamaredon group usually requires the user to execute a malicious email attachment.
Persistence T1053 Scheduled Task Gamaredon group malware registers several of its modules (downloaders, backdoors, etc.) as scheduled tasks.
T1060 Registry Run Keys / Startup Folder Gamaredon group uses Run keys and the Startup folder to ensure its modules are executed at every reboot.
T1137 Office Application Startup Gamaredon group malware inserts malicious macros into existing documents, providing persistence when they are reopened.
Defense Evasion T1027 Obfuscated Files or Information Gamaredon group makes heavy use of compressed archives, some password protected, to deliver its malicious payloads. Strings are routinely obfuscated or encrypted in these malicious modules.
T1112 Modify Registry Gamaredon group malware modifies several registry keys to deactivate security mechanisms in Microsoft Office related to macros.
T1116 Code Signing Gamaredon group uses signed binaries in its malicious campaigns. One notable example is wget samples signed with a valid certificate from Jernej Simončič and available here.
T1140 Deobfuscate/Decode Files or Information Gamaredon group uses simple string deobfuscation and decryption routines in its modules.
T1221 Template Injection Gamaredon group adds remote templates to documents it sends to targets.
T1500 Compile After Delivery Gamaredon group C# compiler module contains an obfuscated downloader that it compiles using csc.exe and then executes.
Discovery T1083 File and Directory Discovery Gamaredon group uses its backdoors to automatically list interesting files (such as Office documents) found on a system for future exfiltration.
Lateral Movement T1080 Taint Shared Content Gamaredon group malware injects malicious macros into all Word and Excel documents reachable by the compromised system.
T1534 Internal Spearphishing Gamaredon group uses its Outlook VBA macro to send email with malicious attachments to other targets within the same organization.
Collection T1005 Data from Local System Gamaredon group malware actively searches for sensitive documents on the local system.
T1025 Data from Removable Media Gamaredon group malware scans all drives for sensitive data and also watches for removable drives being inserted into a system.
T1039 Data from Network Shared Drive Gamaredon group malware scans all drives A: – Z: for sensitive data, so it will scan any network shares mounted as drives.
T1113 Screen Capture Gamaredon group uses a backdoor that takes screenshots every minute.
T1119 Automated Collection Gamaredon group deploys scripts on compromised systems that automatically scan for interesting documents.
Command and Control T1071 Standard Application Layer Protocol Gamaredon group malware uses both HTTP and HTTPS for command and control.
Exfiltration T1020 Automated Exfiltration Gamaredon group uses modules that automatically upload harvested documents to the C&C server.