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.).
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).
def decrypt_payload(data_enc, key1, key2, key3):
data_dec = str()
for c in data_enc:
x = data_enc[i] ^ (key3 >> 8) & 0xFF
data_dec += chr(x)
key3 = ((x + key3) & 0xFF) * key1 + key2
return data_dec
def decrypt_string(data_enc, key1, key2, key3):
data_dec = str()
for c in data_enc:
x = data_enc[i] ^ (key3 >> 8) & 0xFF
data_dec += chr(x)
key3 = ((data_enc[i] + key3) & 0xFFFF) * key1 + key2
return data_dec
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.
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.
Ä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 "/".
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.
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-1 | Description | ESET detection name |
---|---|---|
D8C6DDACC42645DF0F760489C5A4C3AA686998A1 | MSI installer | JS/TrojanDownloader.Banload.ABD |
01ECACF490F303891118893242F5600EF9154184 | MSI loader | Win32/Spy.Vadokrist.T |
F81A58C11AF26BDAFAC1EB2DD1D468C5A80F8F28 | Vadokrist banking trojan | Win32/Spy.Vadokrist.T |
Other
SHA-1 | Description | ESET detection name |
---|---|---|
8D7E133530E4CCECE9CD4FD8C544E0913D26FE4B | Vadokrist banking trojan | Win32/Spy.Vadokrist.AF |
AD4289E61642A4A724C9F44356540DF76A35B741 | Vadokrist banking trojan | Win32/Spy.Vadokrist.T |
BD71A9D09F7E445BE5ACDF412657C8CFCE0F717D | Vadokrist banking trojan | Win32/Spy.Vadokrist.AD |
06C0A039DEDBEF4B9013F8A35AACD7F33CD47524 | Downloader (MSI/JS) | JS/TrojanDownloader.Banload.AAO |
FADA4C27B78DDE798F1E917F82226B983C5B74D8 | Downloader (Delphi) | Win32/Spy.Vadokrist.Y |
525FCAA13E3867B58E442B4B1B612664AFB5A5C0 | Injector shared with Amavaldo | Win32/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.
Tactic | ID | Name | Description |
---|---|---|---|
Resource Development | T1583.001 | Acquire Infrastructure: Domains | Vadokrist registers its own domains to be used as C&C servers. |
T1587.001 | Develop Capabilities: Malware | Vadokrist is operated by the same group that develops it. | |
Initial Access | T1566.001 | Phishing: Spearphishing Attachment | Vadokrist is distributed as a spam attachment. |
Execution | T1059.001 | Command and Scripting Interpreter: PowerShell | Vadokrist uses PowerShell in some distribution chains. |
T1059.005 | Command and Scripting Interpreter: Visual Basic | Vadokrist uses VBScript in some distribution chains. | |
T1059.007 | Command and Scripting Interpreter: JavaScript/JScript | Vadokrist uses JavaScript in its recent distribution chains. | |
T1204.002 | User Execution: Malicious File | Vadokrist relies on the user to execute the malicious binary. | |
Persistence | T1547.001 | Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder | Vadokrist ensures persistence via Run key or LNK file in the startup folder. |
Defense Evasion | T1140 | Deobfuscate/Decode Files or Information | Vadokrist is often distributed encrypted and encrypts its remote configuration. |
T1574.002 | Hijack Execution Flow: DLL Side-Loading | Vadokrist is sometimes executed by this technique. | |
T1036.005 | Masquerading: Match Legitimate Name or Location | Vadokrist masquerades as legitimate software. | |
T1218.007 | Signed Binary Proxy Execution: Msiexec | Vadokrist uses the MSI format for execution. | |
Credential Access | T1056.001 | Input Capture: Keylogging | Vadokrist can capture keystrokes. |
Discovery | T1010 | Application Window Discovery | Vadokrist looks for bank-related windows based on their names. |
T1057 | Process Discovery | Vadokrist tries to discover anti-fraud software by process name. | |
T1082 | System Information Discovery | Vadokrist discovers victim’s username. | |
T1113 | Screen Capture | Vadokrist can take screenshots. | |
Command and Control | T1132.002 | Data Encoding: Non-Standard Encoding | Vadokrist communicates via a custom protocol encrypted with the TripleKey algorithm. |
Exfiltration | T1041 | Exfiltration Over C2 Channel | Vadokrist exfiltrates data via C&C server. |