Vadokrist – Ein Wolf im Schafspelz

Diese Analyse ist ein neuer Teil unserer Serie zu lateinamerikanischen Banking-Trojanern.

Diese Analyse ist ein neuer Teil unserer Serie zu lateinamerikanischen Banking-Trojanern.

Vadokrist ist ein lateinamerikanischer Banking-Trojaner, den ESET seit 2018 beobachtet und der fast ausschließlich in Brasilien aktiv ist. In diesem Teil unserer Serie untersuchen wir seine Hauptmerkmale und einige Verbindungen zu anderen lateinamerikanischen Banking-Trojaner-Familien.

Vadokrist teilt einige wichtige Merkmale mit Trojaner-Familien, die wir in vorherigen Artikeln der Serie beschrieben haben, nämlich Amavaldo, Casbaneiro, Grandoreiro und Mekotio. Wir haben kürzlich ein Whitepaper veröffentlicht, das die Ähnlichkeiten zwischen lateinamerikanischen Bankentrojanern dokumentier. Diese Artikel-Reihe konzentriert sich dagegen mehr auf die detaillierte Analyse einer bestimmten Trojaner-Familie.

Charakteristische Eigenschaften

Vadokrist ist in Delphi geschrieben. Eines der bemerkenswertesten Merkmale ist die ungewöhnlich große Menge an nicht verwendetem Code in den Binärdateien. Nach genauerer Prüfung glauben wir, dass dies ein Versuch ist, die Erkennung zu vermeiden und davon abzubringen oder die Analyse zu verlangsamen. Wir konnten einen Teil des Codes mit vorhandenen Delphi-Projekten wie QuickReport verknüpfen.

Vadokrist speichert Zeichenfolgen in Zeichenfolgentabellen. Früher enthielt es eine mit Casbaneiro identische Implementierung einer Zeichenfolgentabelle (siehe Abbildung 1). Einige neuere Versionen dieses Banking-Trojaners verwendeten jedoch mehrere Zeichenfolgentabellen, jede für einen anderen Zweck (Liste der Ziele, allgemeine Konfiguration, Backdoor-Befehlsnamen usw.).

Abbildung 1. Implementierung einer Zeichenfolgentabelle in früheren Vadokrist-Binärdateien

Die überwiegende Mehrheit der lateinamerikanischen Bankentrojaner sammelt beim ersten Start Informationen über den Computer des Opfers (normalerweise den Computernamen und die Version des Windows-Betriebssystems). Die einzige Information, die Vadokrist sammelt, ist der Benutzername des Opfers. Dies geschieht erst, nach der Initiierung eines Angriffs auf ein Finanzinstitut und nicht, wie bei den meisten anderen lateinamerikanischen Banking-Trojanern, zur Installationszeit.

Um die Persistenz sicherzustellen, verwendet Vadokrist entweder einen Run-Key oder erstellt eine LNK-Datei im Startordner.

Die Backdoor-Funktionen sind typisch für diese Art von Malware. Sie kann die Maus manipulieren und Tastatureingaben simulieren, Tastenanschläge protokollieren, Screenshots machen und den Computer neu starten. Sie ist auch in der Lage, den Zugriff auf einige Websites zu verhindern, was auf ziemlich ungeschickte Weise geschieht, indem der Browserprozess abgebrochen wird, wenn das Opfer versucht, solche Websites zu besuchen. Wir glauben, dass diese Technik verwendet wird, um zu verhindern, dass die Opfer auf ihre Online-Banking-Konten zugreifen, sobald sie von den Angreifern kompromittiert wurden. Es soll den Kriminellen dabei helfen, die Kontrolle zu behalten.

Kryptographie

Die Mehrheit der Vadokrist-Binärdateien implementiert einen kryptografischen Algorithmus, den wir auch in anderen lateinamerikanischen Bankentrojanern (nämlich Amavaldo und Casbaneiro) gesehen und TripleKey genannt haben. Vadokrist verwendet diesen Algorithmus, um seine Zeichenfolgen und gelegentlich auch Nutzdaten und Remote-Konfigurationen zu schützen (wir werden uns später eingehender mit diesem Thema befassen). Aus Gründen der Übersichtlichkeit haben wir den Algorithmus in Python implementiert (siehe Abbildung 2).

Abbildung 2. TripleKey-Verschlüsselungsschema, das von Vadokrist zum Schutz von Zeichenfolgen, Nutzdaten und Remote-Konfigurationen verwendet wird

Außerdem haben wir gesehen, dass Vadokrist in einigen seiner jüngsten Binärdateien RC4 und, in der Vergangenheit, auch in TwoFish verwendet hat. Dies ist unter lateinamerikanischen Bankentrojanern ziemlich selten, da die meisten von ihnen niemals allgemein bekannte kryptografische Algorithmen verwenden.

Malware-Distribution

MSI-Überlastung

Aktuelle Spam-E-Mails, die Vadokrist verteilen, enthalten zwei verschachtelte ZIP-Archive, die zwei Dateien enthalten – ein MSI-Installationsprogramm und ein CAB-Archiv. Wenn ein Opfer das MSI-Installationsprogramm ausführt, sucht es das CAB-Archiv und extrahiert seinen Inhalt (einen MSI-Loader) auf die Festplatte. Anschließend wird eine eingebettete JavaScript-Datei ausgeführt, die einen Run-Key-Eintrag hinzufügt, um sicherzustellen, dass der MSI-Loader beim Systemstart ausgeführt wird. Schließlich startet das Skript den Computer neu. Beim Start führt der MSI-Loader eine eingebettete DLL aus – den Vadokrist-Banking-Trojaner. Der gesamte Vorgang ist in Abbildung 3 dargestellt. Beachten Sie, dass kein tatsächlicher Downloader vorhanden ist. Der Banking-Trojaner wird direkt über diese Spam-E-Mails verteilt.

Abbildung 3. In der letzten Zeit von Vadokrist verwendete Ausführungskette

Die JavaScript-Datei ist wegen ihrer Verschleierungtaktik erwähnenswert. Sie nutzt die Funktionsweise des Kommaoperators (,) in JavaScript aus, um die Lesbarkeit erheblich zu verringern und möglicherweise die Emulation zu umgehen. Auf ähnliche Weise werden Bedingungen mit dem logischen AND-Operator (&&) verschleiert. Abbildung 4 zeigt ein Beispiel dafür.

Abbildung 4. Von Vadokrist verwendetes JavaScript-Installationsprogramm. Der untere Teil zeigt das Skript mit transformierten Operatoren zur besseren Lesbarkeit.

Ältere Distributions- und Ausführungstechniken

Wir beobachteten bei Vadokrist, wie bei den meisten anderen lateinamerikanischen Bankentrojaner, mehrere Implementierungen der typischen Vertriebskette. Wir werden hier nicht alle behandeln, aber zwei sind erwähnenswert. Wir haben gesehen, dass Vadokrist einen Delphi-Downloader mit Grandoreiro und eine ganze Vertriebskette mit Mekotio geteilt hat – tatsächlich die, die in unserem Blogpost über Mekotio als Kette 1 markiert ist.

Vadokrist verlässt sich gelegentlich auf das Laden von DLL-Seiten mit einem bestimmten Injektor, um den Banking-Trojaner zu entschlüsseln und auszuführen. Dieser Injektor ist identisch mit dem von Amavaldo verwendeten und implementiert den oben genannten TripleKey-Algorithmus zur Datenentschlüsselung.

Remote-Konfiguration

Vadokrist verwendet die Remote-Konfiguration sowohl in Downloadern als auch im eigentlichen Banking-Trojaner, der normalerweise auf öffentlichen Speicherdiensten wie GitHub gehostet wird.

Die Konfigurationsdatei wird normalerweise entweder mit TripleKey oder RC4 verschlüsselt. In Abbildung 5 sehen Sie, dass die Daten in beiden Fällen ohne zusätzliches Wissen entschlüsselt werden können. Bei der TripleKey-Methode können wir alle drei Schlüssel aus dem Ende der Zeichenfolge extrahieren und bei RC4 leiten wir den Schlüssel aus dem Passwort ab. Im letzteren Fall werden die verschlüsselten Daten weiter von base64 codiert.

Das Trennzeichen ändert sich auch von Zeit zu Zeit. Bisher wurden drei verschiedene Zeichen verwendet: „|“, „!“ und „/“.

Abbildung 5. Von Vadokrist verwendete verschlüsselte Remote-Konfigurationsdateien

Nachdem wir nun wissen, wie die Konfigurationsdatei entschlüsselt wird, untersuchen wir ihren Inhalt. Im Fall des Banking-Trojaners ist das Ergebnis leicht zu verstehen, da es sich um die IP-Adresse eines C&C-Servers handelt. Für Downloader ist das Format etwas komplexer, wie in Abbildung 6 dargestellt.

Abbildung 6. Verschiedene Formate der Remote-Konfiguration, die von Vadokrist-Downloadern verwendet werden

Zur Vereinfachung betrachten wir eine Konfiguration mit einer optionalen ID und sechs Feldern:

  • [obligatorisch] Die URL, von der der Banking-Trojaner heruntergeladen werden soll
  • [optional] Spezialordner (erster Teil des Installationspfads)
  • [optional] Installations-Flag (unten beschrieben)
  • [optional] Pfad (zweiter Teil des Installationspfads)
  • [optional] Dateiname (dritter und letzter Teil des Installationspfads)
  • [obligatorisch] Benachrichtigungs-URL

Zwei dieser Felder müssen möglicherweise näher erläutert werden. Wenn das Installations-Flag auf „T“ gesetzt ist, werden alle drei Teile des Installationspfads verwendet. Andernfalls wird der erste ignoriert. An die Benachrichtigungs-URL wird nur gesendet, ob eine Anwendung namens Core.exe ausgeführt wird – eine Prüfung, die von anderen lateinamerikanischen Bankentrojanern bekannt ist, die versuchen, das Vorhandensein der Betrugsbekämpfungssoftware Warsaw GAS Tecnologia festzustellen.

Man sieht, dass die erste Variante alle Felder verwendet, die zweite nicht die ID und die dritte nur die beiden obligatorischen URL-Felder nutzt. Die Verwendung des Trennzeichens ist hier etwas komplexer, da ein Trennzeichen zum Trennen verschiedener Einträge und ein anderes zum Trennen von Feldern eines Eintrags verwendet wird. Außerdem können Sie sehen, dass sich die Trennzeichen auch hier ändern.

Das sich dynamisch ändernde Format der Konfigurationsdatei zeigt an, dass Vadokrist aktiv und kontinuierlich weiterentwickelt wird.

Fazit

In diesem Artikel haben wir Vadokrist analysiert, einen lateinamerikanischen Bankentrojaner, der hauptsächlich in Brasilien im Einsatz ist. Wir haben gezeigt, dass er typische Merkmale eines lateinamerikanischen Bankentrojaners aufweist – er ist in Delphi geschrieben, bietet Backdoor-Funktionen und zielt auf Finanzinstitute ab. Der Hauptunterschied von der typischen Implementierung besteht darin, dass keine Informationen über Opfer direkt nach erfolgreicher Kompromittierung ihrer Maschinen erfasst werden.

Wir haben die Verschlüsselungsschemata, Verteilungs- und Ausführungsmethoden und Remote-Konfigurationsformate behandelt. Vadokrist scheint mit den lateinamerikanischen Banking-Trojanern Amavaldo, Casbaneiro, Grandoreiro und Mekotio verbunden zu sein, die in früheren Artikeln unserer Serie beschrieben wurden.

Bei Fragen kontaktieren Sie uns unter threatintel@eset.com. Kompromissindikatoren finden Sie auch in unserem GitHub-Repository.

Indicators of Compromise (IoCs)

Hashes

Campaign “MSI overload”

SHA-1DescriptionESET detection name
D8C6DDACC42645DF0F760489C5A4C3AA686998A1MSI installerJS/TrojanDownloader.Banload.ABD
01ECACF490F303891118893242F5600EF9154184MSI loaderWin32/Spy.Vadokrist.T
F81A58C11AF26BDAFAC1EB2DD1D468C5A80F8F28Vadokrist banking trojanWin32/Spy.Vadokrist.T

Other

SHA-1DescriptionESET detection name
8D7E133530E4CCECE9CD4FD8C544E0913D26FE4BVadokrist banking trojanWin32/Spy.Vadokrist.AF
AD4289E61642A4A724C9F44356540DF76A35B741Vadokrist banking trojanWin32/Spy.Vadokrist.T
BD71A9D09F7E445BE5ACDF412657C8CFCE0F717DVadokrist banking trojanWin32/Spy.Vadokrist.AD
06C0A039DEDBEF4B9013F8A35AACD7F33CD47524Downloader (MSI/JS)JS/TrojanDownloader.Banload.AAO
FADA4C27B78DDE798F1E917F82226B983C5B74D8Downloader (Delphi)Win32/Spy.Vadokrist.Y
525FCAA13E3867B58E442B4B1B612664AFB5A5C0Injector shared with AmavaldoWin32/Spy.Amavaldo.L

Recent C&C servers

  • 104.41.26[.]216
  • 104.41.41[.]216
  • 104.41.47[.]53
  • 191.232.212[.]242
  • 191.232.243[.]100
  • 191.235.78[.]249
  • 191.237.255[.]155
  • 191.239.244[.]141
  • 191.239.245[.]87
  • 191.239.255[.]102

MITRE ATT&CK techniques

Note: This table was built using version 8 of the MITRE ATT&CK framework.

TacticIDNameDescription
Resource DevelopmentT1583.001Acquire Infrastructure: DomainsVadokrist registers its own domains to be used as C&C servers.
T1587.001Develop Capabilities: MalwareVadokrist is operated by the same group that develops it.
Initial AccessT1566.001Phishing: Spearphishing AttachmentVadokrist is distributed as a spam attachment.
ExecutionT1059.001Command and Scripting Interpreter: PowerShellVadokrist uses PowerShell in some distribution chains.
T1059.005Command and Scripting Interpreter: Visual BasicVadokrist uses VBScript in some distribution chains.
T1059.007Command and Scripting Interpreter: JavaScript/JScriptVadokrist uses JavaScript in its recent distribution chains.
T1204.002User Execution: Malicious FileVadokrist relies on the user to execute the malicious binary.
PersistenceT1547.001Boot or Logon Autostart Execution: Registry Run Keys / Startup FolderVadokrist ensures persistence via Run key or LNK file in the startup folder.
Defense EvasionT1140Deobfuscate/Decode Files or InformationVadokrist is often distributed encrypted and encrypts its remote configuration.
T1574.002Hijack Execution Flow: DLL Side-LoadingVadokrist is sometimes executed by this technique.
T1036.005Masquerading: Match Legitimate Name or LocationVadokrist masquerades as legitimate software.
T1218.007Signed Binary Proxy Execution: MsiexecVadokrist uses the MSI format for execution.
Credential AccessT1056.001Input Capture: KeyloggingVadokrist can capture keystrokes.
DiscoveryT1010Application Window DiscoveryVadokrist looks for bank-related windows based on their names.
T1057Process DiscoveryVadokrist tries to discover anti-fraud software by process name.
T1082System Information DiscoveryVadokrist discovers victim’s username.
T1113Screen CaptureVadokrist can take screenshots.
Command and ControlT1132.002Data Encoding: Non-Standard EncodingVadokrist communicates via a custom protocol encrypted with the TripleKey algorithm.
ExfiltrationT1041Exfiltration Over C2 ChannelVadokrist exfiltrates data via C&C server.

Erhalten Sie E-Mails zu neuen Artikeln zur Cyber-Sicherheitslage in der Ukraine. Jetzt anmelden!

Newsletter-Anmeldung

Hier können Sie mitdiskutieren