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.
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.
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.
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.
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.
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.
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.
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:
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):
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. |