Die relativ unbekannte APT-Gruppe Evilnum greift mindestens seit 2018 Fintech-Unternehmen mit ihrer Malware an. Bisher ist jedoch wenig über die Vorgehensweise der Gruppe und die verwendeten Tools bekannt. ESET Forscher haben dies nun genau analysiert.

In diesem Artikel zeichnen wir erstmals ein detailliertes Bild der Aktivitäten von Evilnum. Im Fokus der Gruppe stehen immer noch Fintech-Unternehmen, aber ihre Tools und Infrastruktur haben sich deutlich weiterentwickelt. Sie nutzt nun einen Mix aus selbstentwickelter, angepasster Malware und aus gekauften Tools aus dem Arsenal von Golden Chickens, einem Malware-as-a-Service-Anbieter (MaaS). Zu dessen berüchtigten Kunden gehören auch FIN6 oder die Cobalt Group.

Angriffsziele

Anhand der ESET Telemetrie lässt sich feststellen, dass Fintech-Unternehmen im Visier der Gruppe sind. Es geht beispielsweise um Unternehmen, die Plattformen und Tools für den Online-Handel von Aktien anbieten. Obwohl sich die meisten Angriffsziele in EU-Ländern und in Großbritannien befinden, haben wir auch Angriffe in Ländern wie Australien und Kanada gesehen. Die geografische Verbreitung der Angriffe erklärt sich wahrscheinlich durch die Unternehmensstandorte der angegriffenen Unternehmen.

Das Hauptziel der Evilnum-Gruppe ist es, ihre Ziele auszuspionieren und dabei Finanzinformationen über das Unternehmen und seine Kunden zu erlangen. Hier einige Beispiele von gestohlenen Informationen:

  • Tabellenkalkulationen und Dokumente mit Kundendaten, Investitionen oder Handelsgeschäften
  • Interne Präsentationen
  • Softwarelizenzen und Zugangsdaten für Handels-Software oder -Plattformen
  • Cookies und Session-Informationen von Browsern
  • E-Mail-Zugangsdaten
  • Kreditkarteninformationen, Adressnachweise und Ausweisdokumente von Kunden

Aufgrund unserer Untersuchungen gehen wir auch davon aus, dass die Gruppe Zugriff auf IT-bezogene Informationen wie VPN-Konfigurationen erlangt hat.

Ablauf der Angriffe

Ziele werden über Spearphishing-E-Mails angegangen, die einen Link zu einer bei Google Drive gehosteten ZIP-Datei enthalten. Dieses Archiv enthält mehrere LNK-Dateien (Verknüpfungen), die eine schädliche JavaScript-Komponente entpacken und ausführen, während zur Täuschung ein Dokument angezeigt wird. Die Verknüpfungen enthalten sogenannte „doppelte Erweiterungen“, die den Benutzer zum Öffnen verleiten, da er sie für harmlose Dokumente oder Bilder hält (in Windows sind Dateierweiterungen für bekannte Dateitypen standardmäßig ausgeblendet). Der Inhalt einer solchen ZIP-Datei ist in Abbildung 1 dargestellt.

Abbildung 1. Schädliche LNK-Dateien

Sobald eine Verknüpfungsdatei geöffnet ist (welche spielt keine Rolle, da sie alle denselben Effekt haben), sucht sie im Inhalt ihrer eigenen Datei nach Zeilen mit einer bestimmten Markierung und schreibt sie in eine .js-Datei. Dann wird diese schädliche JavaScript-Datei ausgeführt: Sie schreibt und öffnet eine Täuschungsdatei mit demselben Namen wie die Verknüpfung, aber der richtigen Erweiterung. Außerdem wird die Verknüpfungsdatei gelöscht.

Bei den zur Täuschung verwendeten Dokumenten handelt es sich meistens um Fotos von Kreditkarten, Ausweisdokumenten oder Rechnungen mit Adressnachweis. Viele Finanzinstitute verlangen, entsprechend ihrer Richtlinien, Einsicht in solche Dokumente (dies wird als „Know Your Customer“ bezeichnet). Ein solches Dokument zur Täuschung ist in Abbildung 2 dargestellt (aus Datenschutzgründen unkenntlich gemacht).

Abbildung 2. Foto von der Rückseite eines Personalausweises, das als Täuschungsdokument verwendet wird.

Diese Täuschungsdokumente scheinen echt zu sein. Wir gehen davon aus, dass sie von der Gruppe im Laufe der Jahre gesammelt wurden. In den derzeit laufenden Operationen sind vor allem Vertreter des technischen Supports und Kundenbetreuer im Visier der Cyberkriminellen. Bei ihnen sind diese Art von Kundendokumenten oft zu finden, daher gehen wir davon aus, dass sie dort auch aktiv gesammelt werden. Die Gruppe verwendet die Dokumente bei verschiedenen Zielen auch mehrfach, es sei denn, die Ziele stammen aus unterschiedlichen Regionen.

Die JavaScript-Komponente ist die erste Phase des Angriffs und kann andere Malware wie eine Spionage-Komponente in C#, Komponenten von Golden Chickens oder mehrere Python-basierte Tools bereitstellen. In der Vergangenheit wurde diese C#-Komponente von anderen Forscher Evilnum genannt, doch auch die JavaScript-Komponente wurde so bezeichnet. Wir haben die Gruppe Evilnum benannt, da dies der Name ihrer Haupt-Malware ist und wir werden die verschiedenen Malware-Bestandteile als ihre Komponenten bezeichnen. Eine Übersicht der Komponenten sieht man in Abbildung 3.

Abbildung 3. Evilnum-Komponenten

E

Jede der verschiedenen Komponenten verfügt über einen eigenen C&C-Server und jede Komponente arbeitet unabhängig. Die Betreiber der Malware senden manuell Befehle, um zusätzliche Komponenten zu installieren und verwenden nach dem Einbruch weitere Skripte und Tools, wenn sie dies für erforderlich halten.

Die meisten von der Malware verwendeten Server werden mit IP-Adressen benannt und nicht mit Domainnamen. Die einzigen Ausnahmen bilden die von den Golden Chickens-Komponenten verwendeten C&C-Server. Die Komponenten des Malware-as-a-Service-Anbieters (MaaS) beschreiben wir später.

Die reinen IP-Adressen lassen sich, auf Basis der verwendeten Provider, in zwei Gruppen aufteilen. Die meisten werden beim ukrainischen Anbieter FreeHost gehostet, der Rest von Dotsi in den Niederlanden.

Die erste Phase: Die JavaScript-Komponente

Die JavaScript-Komponente kommuniziert mit einem C&C-Server und fungiert als Backdoor, ohne dass dazu ein zusätzliches Programm erforderlich ist. Bei den meisten beobachteten Angriffen haben die Angreifer jedoch weitere Komponenten bereitgestellt und die JS-Malware nur für die erste Phase verwendet.

Die erste uns bekannte Erwähnung dieser JavaScript-Malware erfolgte in diesem Pwncode-Artikel im Mai 2018. Die Malware hat sich seitdem mehrfach geändert, wie wir in Abbildung 4 veranschaulichen.

Abbildung 4. Die Änderungen der JS-Komponente in einer Zeitleiste.

Bemerkenswert erscheinen uns hier die Unterschiede zwischen Version 1.3 und den anderen Versionen, da der serverseitige Code für die C&C-Funktionen geändert wurde und die Befehle unterschiedlich sind. In dieser frühen Version war kein Datei-Upload auf den C&C-Server, sondern nur ein Download auf den Computer des Opfers möglich. Mit den neuen Versionen, wurde die Malware mit einigen Python-Skripten (siehe Abschnitt Nach dem Einbruch verwendete Tools) und externen Tools wie ChromeCookiesView erweitert.

Trotz der Unterschiede sind die Kernfunktionen in allen Versionen gleich, einschließlich des Abrufs der C&C-Serveradresse von GitHub, GitLab oder von Reddit-Seiten, die speziell zu diesem Zweck erstellt wurden. Abbildung 5 zeigt ein Beispiel für eine Reddit-Seite, die von der Malware geparsed wird, um eine C&C-Adresse abzurufen.

Abbildung 5. Reddit-Seite mit dem C&C-Server für die JS-Komponente

Diese Komponente erreicht ihre Persistenz durch den Registry-Run-Key und verfügt über volle Backdoor-Funktionen: Sie kann Programme herunterladen und ausführen, beliebige Befehle ausführen oder Dateien vom Computer des Opfers auf den C&C-Server hochladen. Wir werden nicht genauer auf die technischen Aspekten dieser Komponente eingehen, da diese von Prevailion erst kürzlich analysiert wurden.

Die C#-Komponente: Wie Evilnum benannt wurde

Im März 2019 wurde eine in C# kodierte Malware mit sehr ähnlichen Funktionen wie die JS-Komponente von Palo Alto Networks beschrieben. Diese Version (2.5) erhielt die Adresse ihres C&C-Servers durch das Teilen einer Zahl durch 666 und wurde von den Palo-Alto-Forschern daher Evilnum genannt. Seitdem gibt es neue Versionen der C#-Malware, zuletzt die Version 4.0, die wir erstmals im April 2020 beobachtet haben. Die Nummer 666 wird hier nicht mehr verwendet und die PDB-Pfade der ausführbaren Dateien zeigen, dass die Entwickler ihre Malware „Marvel“ nennen. Wir werden die Malware jedoch weiterhin Evilnum benennen, um Verwirrung zu vermeiden.

Die neueste Version ist mit einer MSI-Datei (Windows Installer) gebündelt und wird unabhängig von der JS-Komponente ausgeführt. Darüber hinaus hat sie andere C&Cs als die JS-Komponente. Jedoch wurde die C#-Komponente, in allen beobachteten Fällen, heruntergeladen und ausgeführt, nachdem die JavaScript-Malware den ersten Zugang erhalten hatte. Die Struktur dieser Komponente ist in Abbildung 6 dargestellt.

 

Abbildung 6. Teile der C#-Komponente

Wenn die MSI-Datei ausgeführt wird, werden drei Malware-Komponenten zusammen mit einigen .NET Framework-Bibliotheksdateien in den Ordner %LOCALAPPDATA%\Microsoft\Mediia geschrieben. Der Dateikopierer wird als erstes ausgeführt. Sein einziger Zweck besteht darin, die Dateien an einen anderen Speicherort in %LOCALAPPDATA% zu verschieben (die Ordnernamen finden Sie im Abschnitt Indicators of Compromise). Der Loader wird dann ausgeführt und lädt und entschlüsselt den Inhalt der Datei System.Memmory.dll, bei der es sich um den tatsächlichen schädlichen Teil (DLL-Agent) für die C#-Komponente handelt. Für die DLL und zur Verschleierung der Zeichenfolgen in der Nutzlast wird AES-Verschlüsselung verwendet. Der gleiche Schlüssel und Initialisierungsvektor wird verwendet, um die Zeichenfolgen in allen Versionen zu verschlüsseln.

Die IP-Adresse des C&C-Servers ist fest codiert und im Klartext angegeben. Eine GET-Request wird für /Validate/valsrv gesendet. Wenn der Antworttext den Text youwillnotfindthisanywhare enthält, wird der Server akzeptiert. Andernfalls wird eine GitLab-Seite geparsed, um die IP-Adresse eines zweiten Servers abzurufen.

Die folgenden Funktionen sind in Version 4.0 enthalten:

  • Erstelle Screenshots, wenn die Maus in einem bestimmten Zeitraum bewegt wurde und sende sie base64-codiert an den C&C. Das Bild wird in einer Datei namens SC4.P7D gespeichert
  • Ausführen von Befehlen
  • Ausführen von Binärdateien über cmd.exe
  • Weiterleitung von Informationen wie Computername, Benutzername und installierte Antivirus-Software
  • Persistenz im kompromittierten System durch die Erstellung von Registrierungsschlüsseln

Befehle

Die Befehle, die an die Malware gesendet werden können, sind:

  • killme: Stoppt die Malware und entfernt die Persistenz
  • mouse: Bewegt die Maus. Mit dieser Aktion wird ein Screenshot erstellt
  • cookies: Sendet Chrome-Cookies an den C&C.
  • passwords: Sendet in Chrome gespeicherte Passwörter. Wir glauben, dass die Fokussierung auf Chrome nicht auf den Marktanteilen des Browsers basiert, sondern auf den einfachen Möglichkeiten um Cookies und gespeicherte Passwörter zu erlangen
  • weitere Befehle, die direkt mit cmd.exe ausgeführt werden können

Version 2.5 war die erste dokumentierte Version der C#-Komponente (erstmals von ESET im Dezember 2018 gesehen). Dann sahen wir v2.7.1 (November 2019), v3 (Dezember 2019) und v4.0 (April 2020). Die wichtigsten Unterschiede zwischen der neuesten und den vorherigen Versionen der Malware sind:

  • Der Schadcode ist eine 32-Bit-DLL. Davor war es eine 64-Bit EXE-Datei.
  • HTTPS-Kommunikation in der neuesten Version
  • Es gibt keinen reverse-Befehl mehr. Dieser wurde in früheren Versionen verwendet, um eine Reverse-Shell zu öffnen. Dies geschieht jetzt mit anderen Skripten.

Die JS- und C#-Komponenten sind miteinander verbunden: Letztere macht Screenshots, während erstere keine macht, aber dafür Code enthält, der nach Screenshot-Dateien sucht und diese an seinen C&C-Server sendet. Die C#-Komponente löscht auch alle Dateien mit der Erweiterung .lnk im Ordner %LOCALAPPDATA%\Temp, um Spuren der ersten Kompromittierung durch die JS-Komponente zu entfernen. Selbst wenn die C#-Komponente nur über eingeschränkte Funktionen verfügt (sie kann keine Dateien herunterladen oder hochladen), bietet sie Redundanz durch einen anderen C&C-Server und zusätzliche Persistenz, falls die JS-Komponente erkannt oder vom Computer des Opfers entfernt wird.

Die Golden-Chickens-Komponenten: TerraLoader

In einigen wenigen Fällen hat die Evilnum-Gruppe auch einige Tools bereitgestellt, die von einem Malware-as-a-Service-Anbieter gekauft wurden. Damit sind Malware-Autoren gemeint, die ihren kriminellen Kunden nicht nur ausführbaren Schadcode, sondern die gesamte erforderliche Infrastruktur (wie C&C-Server) inklusive technischem Support anbieten.

In diesem Fall heißt der MaaS-Anbieter Golden Chickens und hat auch andere Kunden wie FIN6- und die Cobalt-Gruppe. Alle Komponenten, die wir in den folgenden Abschnitten beschreiben, wurden zuvor bei einem Angriff auf E-Commerce-Händler gesehen, den Visa im Februar 2019 FIN6 zuschrieb (PDF). Damals waren es lediglich ältere Versionen. Trotz der Ähnlichkeiten und Überschneidungen bei ihren Tools glauben wir nicht, dass es sich bei FIN6, der Cobalt-Gruppe und Evilnum um die gleichen Akteure handelt. Sie teilen sich nur zufällig denselben MaaS-Anbieter.

Die Golden-Chickens-Tools werden als ActiveX-Komponenten (OCX-Dateien) geliefert und enthalten alle TerraLoader-Code, der als gemeinsamer Loader für die verschiedenen Schadcodes dient, die den Kunden von Golden Chickens zur Verfügung stehen. Evilnum verwendet diese Tools wie folgt:

  • Die Angreifer senden manuell einen Befehl an die JS- oder C#-Komponente, um eine Batchdatei von einem ihrer Server zu laden und auszuführen.
  • Diese Batchdatei schreibt eine schädliche INF-Datei und liefert sie als Parameter an das Microsoft-Dienstprogramm cmstp.exe, das ein in der INF-Datei angegebenes Remote-Scriptlet ausführt. Diese Technik ist in der MITRE ATT & CK-Wissensdatenbank als CMSTP dokumentiert. Ein Beispiel für die Verwendung dieser Technik finden Sie hier. Diese Technik wurde in der Vergangenheit von Cobalt angewendet, einer anderen finanziell motivierten Gruppe.
  • Das Remote-Scriptlet enthält verschleierten JS-Code, der eine OCX-Datei lädt und über regsvr32.exe ausführt.

Der TerraLoader-Code führt mehrere Integritätsprüfungen durch, bevor der Schadcode geladen wird. Bei diesen Überprüfungen werden Anti-Debugging-Techniken verwendet und es wird versucht, Anomalien zu identifizieren, damit die Code-Ausführung in Sandbox-Umgebungen verhindert werden kann. Einige dieser Techniken reichen von der Erkennung falscher Parameter, Dateinamen und Erweiterungen bis zur Erkennung von Hardware-Haltepunkten oder der Identifizierung bestimmter Module, die in den betreffenden Prozess geladen werden. Erst wenn diese Prüfungen alle bestanden wurden, wird der tatsächliche Schadcode entschlüsselt und ausgeführt.

Unserer Beobachtung nach wurde diese Malware von Golden Chickens bei den Angriffen von Evilnum eingesetzt:

  • More_eggs
  • Eine Meterpreter-Schadcode, die wir TerraPreter nennen
  • TerraStealer
  • TerraTV

Forscher von Positive Technologies haben kürzlich einige von der Cobalt-Gruppe verwendete Tools analysiert, darunter auch More_eggs Version 6.6, was eine der von der Evilnum-Gruppe verwendeten Versionen ist. Sie haben eine sehr gute Analyse von TerraLoader durchgeführt. Wir empfehlen ihren Bericht (Abschnitt 4).

More_eggs

More_eggs ist eine JavaScript-Hintertür, die mit einem C&C-Server kommuniziert und Befehle empfängt. In der Vergangenheit wurde das Skript von anderen Malware-Gruppen verwendet, die Finanzinstitutionen angriffen. Evilnum gebraucht es in Verbindung mit seinen hausgemachten Backdoors, um Redundanz und zusätzliche Persistenz in den Netzwerken ihrer Opfer zu manifestieren.

Wir sahen, wie Evilnum 32-Bit-ActiveX-Komponenten mit TerraLoader-Code einsetzt, auf dem die More_eggs-Versionen 6.5, 6.6 und 6.6b ausgeführt wurden - den neuesten Versionen. Dazu legten sie die msxsl.exe (ein Befehlszeilentransformationsprogramm, das eine legitime ausführbare Microsoft-Datei ist) ab und ließen den JavaScript-Code ausführen, der dem im IRIS-Artikel beschriebenen sehr ähnlich ist.

Der abgelegte JavaScript-Code wird von der ActiveX-Komponente im laufenden Betrieb generiert. Bei der Analyse wurden folgende Überlegungen berücksichtigt:

  • Der initiale JavaScript-Code, der msxsl.exe ausführt, besitzt einen fest einprogrammierten absoluten Pfad, sodass die Ausführung von einem anderen Speicherort aus oder durch einen anderen Benutzer fehlschlägt.
  • Die endgültige More_eggs-Payload wird mit einem Schlüssel verschlüsselt, an dessen Ende der Hostname und die Informationen zur Prozessorfamilie angehängt sind. Ein Schlüssel sieht beispielsweise wie folgt aus:

cvyLMmtGSKmPMfzJjGyg552DESKTOP-FQAT01XIntel64 Family 6 Model 94 Stepping 3, GenuineIntel

Die Kernfunktionen sind die gleichen, wie im oben verlinkten Artikel beschrieben, obwohl es einen neuen Befehl gibt: more_time, der dort nicht erwähnt wird. Dieser ähnelt dem dokumentierten Befehl via_c, der seinen Parameter mit cmd.exe / v / c <Parameter> ausführt. Der Unterschied besteht darin, dass zusätzlich der Output an den C&C-Server zurückgesendet wird (via_c übermittelt bloß, ob der Befehl erfolgreich war oder nicht).

TerraPreter

Die Evilnum-Gruppe verwendet auch ausführbare 64-Bit-Dateien, die eine Meterpreter-Instanz im Speicher entschlüsseln und ausführen. Die Verwendung von Meterpreter bietet ihnen die Flexibilität und die Möglichkeit, verschiedene Payloads heimlich und erweiterbar auszuführen.

Die Struktur dieser Komponenten und die implementierten Integritätsprüfungen wurden als TerraLoader-Code identifiziert. Deshalb bezeichnen wir diese Komponenten als TerraPreter. Der dekompilierte Code des Hauptprogramms ist in Abbildung 7 dargestellt.

Abbildung 7. Dekompilierter Code für Meterpreter Loader-Komponenten

Das Programm mit der Bezeichnung Dummy ruft eine Reihe von APIs auf, die nichts tun. Die RC4-Funktionsinitialisierung knackt den zu verwendeten Schlüssel, indem einer Basiszeichenfolge eine Zahl angehängt wird, die sich mit jeder Iteration erhöht. Es entschlüsselt dann einen 16-Byte-Buffer mit dem Schlüsselkandidat. Wenn der entschlüsselte Puffer mit einer fest codierten Zeichenfolge übereinstimmt, ist dieser Schlüsselkandidat der ausgewählte RC4-Schlüssel für die spätere Verwendung. Wir glauben, dass diese Prozedur eine zeitraubende Gegenmaßnahme gegen Emulatoren ist.

Nachdem der eingebettete Buffer mit der Payload entschlüsselt wurde, setzt die Malware schließlich einen Callback an die GrayStringW-API-Funktion, welche auf den entschlüsselten Puffer verweist. Nach vielen Dekodierungsebenen wird die Meterpreter metsrv.dll in den Speicher geladen. Ab diesem Zeitpunkt kann man ein reguläres, unverändertes Meterpreter-Verhalten beobachten.

TerraPreter kommuniziert über HTTPS mit einem C&C-Server und ruft eine Reihe von Befehlen ab. Die kontaktierten C&Cs sind cdn.lvsys[.]com und faxing-mon [.]best. Der erste leitete nach d2nz6secq3489l.cloudfront[.]net um. Jedes Mal, wenn ein C&C eine Anfrage empfängt, sendet der Server verschiedene Binärdaten, die mithilfe eines zufälligen 4-Byte-Schlüssels XOR-verknüpft sind. Die Malware liest den für die Entschlüsselung zu verwendenden Schlüssel aus den ersten 4 Bytes eines 32-Byte-Headers, der den verschlüsselten Daten vorangestellt ist. Abbildung 8 zeigt ein Beispiel.

Abbildung 8. Vom C&C gesendete Daten

Der erste vom C&C gesendete Befehl lautet core_patch_url, der den letzten Teil der URL für spätere Anfragen ändert. Dann wird core_negotiate_tlv_encryption vom C&C zusammen mit seinem öffentlichen Schlüssel gesendet. Ab diesem Zeitpunkt werden Nachrichten verschlüsselt, bevor sie XOR-verknüpft werden.

TerraStealer und TerraTV

TerraStealer ist auch als SONE oder Stealer One bekannt. Es sucht nach allerlei Browsern, E-Mail-, FTP- und Dateiübertragungsanwendungen, um Cookies und Anmeldeinformationen zu stehlen. In einer der von uns analysierten Binärdateien war die Protokollierung aktiviert. Ein Teil eines solchen Protokolls ist in Abbildung 9 dargestellt.

Abbildung 9. TerraStealer-Protokoll

Eine weitere von dieser Gruppe verwendete Komponente ist eine Variante von TerraTV. Es führt eine legitime TeamViewer-Anwendung aus, verbirgt jedoch die Elemente der Benutzeroberfläche, sodass die Betreiber der Malware eine getarnte Verbindung zum gefährdeten Computer herstellen können.

Bei der Ausführung legt TerraTV mehrere signierte TeamViewer-Komponenten unter C:\Users\Public\Public Documents\57494E2D3850535046373333503532\ ab. Die abgelegten Dateien sind in Abbildung 10 dargestellt.

Abbildung 10. Von TerraTV abgelegte TeamViewer-Dateien

ACTIVEDS.dll ist nicht signiert und genau dort befindet sich der Schadcode. Es gibt eine Windows-DLL mit demselben Namen im Systemordner. Da sich die schädliche DLL jedoch im selben Verzeichnis wie die ausführbare TeamViewer-Datei befindet, wird sie zuerst gefunden und daher anstelle der Windows-DLL geladen. Das bezeichnet man als DLL search order hijacking. Die schädliche ACTIVEDS.dll verknüpft mehrere API-Aufrufe in der ausführbaren TeamViewer-Datei, um das Taskleistensymbol der Anwendung auszublenden und Anmeldeinformationen zu erfassen. Der Teil des Codes mit den Hooks ist in Abbildung 11 dargestellt.

Abbildung 11. Für TeamViewer festgelegte Hook

Der Windows-API-Aufruf DefWindowProcW (mehrere Male von der TeamViewer EXE aufgerufen, um an das Hauptfenster gerichtete Nachrichten zu verarbeiten) ist nun mit einem Programm verknüpft, das die ID und das Kennwort von TeamViewer in die Datei %APPDATA%\log_CZ72kGqTdU.txt schreibt. Mit diesen Anmeldeinformationen und TeamViewer, das ohne sichtbares Taskleistensymbol oder Fenster ausgeführt wird, können die Malware-Betreiber den Computer jederzeit über die grafische Benutzeroberfläche fernsteuern.

Toolset nach der Kompromittierung

Die zuvor erwähnten schädlichen Komponenten werden häufig um mehrere zusätzliche Tools im Evilnum-Arsenal ergänzt. Bei den meisten Kompromittierungen verwendeten die Angreifer öffentlich zugängliche Tools, aber entwickelten auch einige maßgeschneiderte Skripte selbst. Normalerweise bewahren sie ihre Tools in passwortgeschützten Archiven auf ihren Servern auf und dekomprimieren sie bei Bedarf nur auf den PCs der Opfer.

Python-basierte Tools

  • Reverse Shell über SSL-Skript: Ein sehr kurzes Skript, das den Server und den Port als Befehlszeilenargumente verwendet.
  • SSL-Proxy, der auf PythonProxy, junction, plink und stunnel zurückgreift. Es kann auch eine Verbindung zu einem FTP-Server herstellen oder Pysoxy verwenden. Wir beobachteten, dass das Skript mit der Einstellung "Proxy" und 185.62.189 [.] 210 als Server verwendet wird.
  • LaZagne zum Abrufen gespeicherter Passwörter
  • IronPython zusammen mit Bibliotheken zum Aufnehmen von Screenshots, Keylogging und Aufzeichnen von DirectSound-Audio

Andere öffentlich zugängliche Tools

  • PowerShell-Skripte: Zum Beispiel Bypass-UAC
  • Mehrere NirSoft-Dienstprogramme; Beispiel: Mail PassView zum Abrufen von Kennwörtern von E-Mail-Clients und ProduKey zum Abrufen von Microsoft Office- und Windows-Lizenzen

Fazit

Die Evilnum-Gruppe ist seit mindestens zwei Jahren aktiv und war es auch noch zum Zeitpunkt dieses Artikels. Die Cybergang verfügt über eine Infrastruktur für ihre Operationen und setzt mehreren unterschiedliche Server ein: einen für die Kommunikation mit der JavaScript-Komponente, einen für die C#-Komponente, einen weiteren für die Speicherung seiner Tools und der ausgeleiteten Daten, des Proxyservers usw. Die Malware-Gruppe attackiert Fintech-Unternehmen, die ihren Kunden Handels- und Anlageplattformen anbieten. Die wenigen Ziele sind sehr spezifisch ausgewählt. Damit und durch den Einsatz legitimer Tools bei ihren Angriffen, konnte die Gruppe weitgehend die Entdeckung ihrer Aktivitäten vermeiden. Dank unserer Telemetriedaten konnten wir einzelne Anhaltspunkte miteinander verbinden und ermitteln, wie die Gruppe agiert. Zudem fanden wir Überschneidungen mit anderen bekannten APT-Gruppen. Wir glauben, dass die Evilnum-Gruppe den gleichen MaaS-Anbieter hat, wie andere Gruppen auch. Zudem können wir Evilnum noch mit keinen anderen, früheren Angriffen anderer APT-Gruppen in Verbindung bringen.

Eine umfassende Liste von Kompromittierungsindikatoren (IoCs) und Samples finden Sie in unserem GitHub-Repository.

Für Anfragen oder Mustereinreichungen zu diesem Thema kontaktieren Sie uns bitte unter threatintel@eset.com.

Besonderer Dank gilt Ignacio Sanmillan für seine Hilfe bei der Analyse der Golden Chickens-Komponenten.

MITRE ATT&CK techniques

Tactic ID Name Description
Initial Access T1192 Spearphishing Link Emails contain a link to download a compressed file from an external server.
Execution T1191 CMSTP cmstp.exe is used to execute a remotely hosted scriptlet that drops a malicious ActiveX file.
T1059 Command-Line Interface cmd.exe is used to execute commands and scripts.
T1129 Execution through Module Load The malicious payload for the version 4.0 C# component is loaded from a DLL. TerraTV loads a malicious DLL to enable silent use of TeamViewer.
T1061 Graphical User Interface TerraTV malware allows remote control using TeamViewer.
T1086 PowerShell Evilnum group executes LaZagne and other PowerShell scripts after their JS component has compromised a target.
T1117 Regsvr32 Evilnum group uses regsvr32.exe to execute their Golden Chickens tools.
T1064 Scripting Initial compromise and post-compromise use several JavaScript, Python and PowerShell scripts.
T1218 Signed Binary Proxy Execution msiexec.exe is used to install the malicious C# component.
T1204 User Execution Victims are lured to open LNK files that will install a malicious JS component.
T1047 Windows Management Instrumentation WMI is used by the JS component to obtain information such as which antivirus product is installed.
T1220 XSL Script Processing More_eggs malware uses msxsl.exe to invoke JS code from an XSL file.
Persistence T1060 Registry Run Keys / Startup Folder Registry Run keys are created in order to persist by the JS and C# components, as well as More_eggs
T1108 Redundant Access Evilnum components are independent and provide redundancy in case one of them is detected and removed.
T1179 Hooking TerraTV malware hooks several API calls in TeamViewer.
Defense Evasion T1038 DLL Search Order Hijacking TerraTV malware has TeamViewer load a malicious DLL placed in the TeamViewer directory, instead of the original Windows DLL located in a system folder.
T1088 Bypass User Access Control A PowerShell script is used to bypass UAC.
T1116 Code Signing Some of the Golden Chickens components are malicious signed executables. Also, Evilnum group uses legitimate (signed) applications such as cmstp.exe or msxsl.exe as a defense evasion mechanism.
T1090 Connection Proxy Connection to a proxy server is set up with post-compromise scripts.
T1140 Deobfuscate/Decode Files or Information Encryption, encoding and obfuscation are used in many Evilnum malware components.
T1107 File Deletion Both JS and C# components delete temporary files and folders created during the initial compromise.
T1143 Hidden Window TerraTV runs TeamViewer with its window and tray icon hidden.
T1036 Masquerading The C# component has its payload in system.memmory.dll , which masquerades as a benign .NET Framework DLL.
T1112 Modify Registry Evilnum modifies the registry for different purposes, mainly to persist in a compromised system (for example, by using a registry's Run key).
T1027 Obfuscated Files or Information Encryption, encoding and obfuscation is used in many Evilnum malware components.
T1497 Virtualization/Sandbox Evasion The Golden Chickens components implement several integrity checks and evasion techniques.
Credential Access T1003 Credential Dumping Scripts and tools such as LaZagne are used to retrieve stored credentials.
T1503 Credentials from Web Browsers The C# component retrieves stored passwords from Chrome.
T1056 Input Capture Custom Python scripts have been used for keylogging.
T1539 Steal Web Session Cookie Evilnum malware steals cookies from Chrome.
Discovery T1012 Query Registry More_eggs queries the registry to know if the user has admin privileges.
T1063 Security Software Discovery Both the JS and C# components search for installed antivirus software.
T1518 Software Discovery TerraStealer malware looks for specific applications.
T1082 System Information Discovery Information about the system is sent to the C&C servers.
Collection T1074 Data Staged Data is stored in a temporary location before it is sent to the C&C.
T1005 Data from Local System The JS component (v2.1) has code to exfiltrate Excel files from the local system.
T1114 Email Collection TerraStealer malware targets email applications.
T1056 Input Capture Keystrokes are logged with a Python script.
T1113 Screen Capture Screenshots are taken by some Evilnum malware components.
Command and Control T1043 Commonly Used Port HTTP and HTTPS are used for C&C communication.
T1132 Data Encoding Some of the data sent to the C&C is base64-encoded.
T1008 Fallback Channels The JS and C# components can obtain a new C&C by parsing third-party webpages if the original C&C is down.
T1104 Multi-Stage Channels Evilnum malware uses independent C&C servers for its various components.
T1219 Remote Access Tools TerraTV malware uses TeamViewer to give control of the compromised computer to the attackers.
T1105 Remote File Copy Files are uploaded to/downloaded from a C&C server.
T1071 Standard Application Layer Protocol HTTP and HTTPS are used for C&C.
T1032 Standard Cryptographic Protocol More_eggs malware uses RC4 to encrypt data to be sent to the C&C.
T1102 Web Service GitHub, GitLab, Reddit and other websites are used to store C&C server information.
Exfiltration T1022 Data Encrypted Some Evilnum components encrypt data before sending it to the C&C.
T1048 Exfiltration Over Alternative Protocol Scripts are manually deployed by the malware operators to send data to an FTP server.
T1041 Exfiltration Over Command and Control Channel Data is exfiltrated over the same channel used for C&C.