Gegen Ende des Jahres 2017 beschlossen Forschende des ESET Malware-Labors in Prag, sich eingehender mit berüchtigten Banking-Trojanern zu beschäftigen. Es geht dabei um diejenigen, die vorrangig auf Brasilien abzielen und in der Delphi-Programmiersprache geschrieben sind.
Die Banking-Trojaner richten sich ebenso gegen andere Länder Lateinamerikas. Deshalb rückten im Verlauf der Malware-Analyse auch Mexiko und Chile stärker in den Fokus der ESET-Forscher. Ihr Hauptziel bestand in der Klassifizierung der Banken-Trojaner und darin, mehr über das Verhalten der Schadsoftware zu erfahren.
Insgesamt haben wir aus den gewonnenen Informationen viel Neues lernen können. Es wurden mehr als zehn neue Malware-Familien entdeckt. Man konnte deren Verbreitungsmechanismus aufdecken und zeigen, wie sie mit anderen Malware-Varianten verknüpft sind. Außerdem konnten innere Verhaltensweisen der Banking-Trojaner dargestellt werden.
Dieser Beitrag beginnt zunächst damit, die auf Lateinamerika abzielenden Banking-Trojaner im Allgemeinen zu beschreiben, und setzt sich dann fort mit der Vorstellung von Amavaldo – der neu entdeckten Malware-Familie.
Was zeichnet die auf Lateinamerika gerichteten Banking-Trojaner aus?
An dieser Stelle möchten wir noch einmal kurz zusammenfassen, welche Charakteristiken diesen Typ Banken-Trojaner auszeichnet:
- Geschrieben in der Delphi-Programmiersprache
- Enthält eine Backdoor-Funktionalität
- Umfassende Verbreitungswege
- Funktionen sind unter Umständen auf mehrere Malware-Module aufgeteilt
- Normalerweise legitime und bekannte Software wird als Tarnung missbraucht
- Im Visier sind Spanisch und Portugiesisch sprechende Länder
Während der Forschungen sind wir auf Gemeinsamkeiten gestoßen. Die meisten von uns analysierten Banking-Trojaner stellen eine Verbindung zu einem C&C-Server her und warten auf vom Server gesendete Befehle. Nach dem Erhalt eines Befehls wird dieser ausgeführt und auf den nächsten gewartet. Die Kommandos werden wahrscheinlich manuell vom Cyber-Angreifer übermittelt.
Die C&C-Server-Adresse ist das am meisten gehütete Geheimnis der Malware-Entwickler. Wir haben mehrere unterschiedliche Ansätze entdeckt, diese zu tarnen und zu verstecken.
Daneben gibt es für jedes Malware-Opfer eine einzigartige URL, die den Cyber-Angreifern bei der Identifizierung hilft.
Banking-Trojaner aus Lateinamerika nutzen wenig bekannte Verschlüsselungsalgorithmen. Unterschiedliche Malware-Familien verwenden allerdings dieselben. Wir fanden ein Buch und eine Delphi Freeware Library, wovon die Malware-Entwickler möglicherweise inspiriert waren.
Die in Delphi geschriebene Malware induziert, dass die Executable-Dateien mindestens einige Megabyte groß sind. Das ist deshalb der Fall, da der Delphi Core in jeder Binary verankert ist. Zusätzlich bringen die lateinamerikanischen Banking-Trojaner oft eine Vielzahl an weiteren Ressourcen mit sich, wodurch die Dateigröße weiter steigt.
Wir sahen Samples mit mehreren Hundert Megabyte Speichergröße. In diesen Fällen setzen die Malware-Entwickler die Dateigröße allerdings künstlich herauf, um der Erkennung durch Anti-Virenprogrammen auszuweichen.
Neue Malware-Familien entdecken
Die Analyse einer Executable zeigt normale schnell, ob es sich um einen böswilligen Banking-Trojaner handelt. Die Malware-Entwickler neigen dazu, ihre Schadprogramme ganz oder teilweise von einander zu kopieren. Deshalb ähneln sich die Banken-Trojaner aus Lateinamerika alle ein bisschen. Das ist auch der Grund, warum meistens nur typische Malware-Erkennungen stattfinden.
Unsere Forschung zu den Banken-Trojanern begann zunächst mit der Untersuchung ausgeprägter Merkmale. Über die Zeit entdeckten wir auf diese Weise über zehn neue Malware-Familien. Neben anderen Code-Ähnlichkeiten überprüften wir beispielsweise, welche Zeichenfolgen gespeichert und wie die C&C-Server-Adresse erhalten wurden.
Entlang der Kette der Verbreitung von Amavaldo
Die einfachste Verbreitung des Banking-Trojaners erfolgt über einen einzigen Downloader (Windows Executable). Dieser tarnt sich als legitimer Software-Installer. Die Methode ist simpel, dennoch eher selten anzutreffen.
Viel häufiger besteht die Verteilung der Malware aus mehreren Stufen. Dabei kommen mehrere Downloader zum Einsatz, die in JavaScript, PowerShell und Visual Basic Script (VBS) geschrieben sind. Mindestens drei Stufen enthält der typische Verbreitungsmechanismus. Die finale Payload wird meist als ZIP-Archiv ausgebracht. Darin enthalten ist der Banken-Trojaner allein oder dieser und zusätzliche Komponenten. Für Malware-Entwickler hat diese Verbreitung den Vorteil, dass es für Malware-Researcher sehr schwierig ist, die am Ende der Kette stehende Payload (bspw. Banken-Trojaner) zu analysieren. Allerdings haben es Anti-Virenprogramme deutlich einfacher die Bedrohung aufzuhalten, da nur ein Kettenglied des Verbreitungsmechanismus gestoppt werden muss.
Diebstahl-Strategie der Banking-Trojaner
Im Gegensatz zu den meisten Banken-Trojaner vertrauen die auf Lateinamerika abzielenden nicht auf Web-Injections, sondern auf eine Form von Social Engineering. Kontinuierlich wird der Desktop des Opfers nach aktiven Fenstern geprüft. Sobald ein Desktop-Fenster in Verbindung mit Banking steht, startet der Cyber-Angriff.
Der Zweck des Angriffs besteht fast immer darin, den User davon zu überzeugen, dass besondere, dringende und notwendige Maßnahmen erforderlich durchzuführen sind. Das kann ein Update der Banking-App sein, die Verifizierung der Kreditkarten-Daten oder Online-Konten-Zugangsdaten. Das Opfer soll die Informationen in ein Popup eingeben (wie beispielsweise in Abb. 1) oder eine Bildschirm-Tastatur dient als Keylogger (Abb. 2). Gleich nach der Eingabe landen die vertraulichen Informationen bei den Angreifern.
Amavaldo
Wir nannten die Malware-Familie, die im Rest dieses Blog-Beitrags beschrieben wird, Amavaldo. Diese Art befindet sich noch in der aktiven Entwicklung - die von uns neuste beobachtete Version ist 10.7 und trägt den Kompilierungszeitstempel vom 10. Juni 2019.
Das ist ein Beispiel für die modulare Malware, deren endgültiges Payload-ZIP-Archiv drei Komponenten enthält:
- Eine Kopie einer legitimen Anwendung (EXE)
- Ein Injektor (DLL)
- Ein verschlüsselter Banking-Trojaner (zu DLL entschlüsselt)
Abbildung 3 zeigt den Inhalt eines Sample-ZIP-Archivs der Amavaldo-Payload:
Der Downloader speichert den gesamten ZIP-Archiv-Inhalt auf der Festplatte im selben Ordner. Der Name des Injektors (MsCtfMonitor.dll) wurde so gewählt, dass er mit dem einer DLL übereinstimmt, die von der mitgelieferten, legitimen Anwendung verwendet wird. Vor dem Beenden des Downloaders, führt dieser das legitime Programm aus. Es folgt:
- Ausführen des Injektors via DLL Side-Loading
- Der Injektor integriert sich selbst in exe oder iexplore.exe
- Der Injektor sucht nach dem verschlüsselten Banking-Trojaner (MsCtfMonitor)
- Wenn MsCtfMonitor gefunden, dann Entschlüsselung durch Injektor und Ausführung des Banking-Trojaners
Charakteristiken der Amavaldo-Malware
Neben dem modularen Aufbau zeichnet die Schadsoftware vor allem die benutzerdefinierte Verschlüsselungsmethode für die Zeichenketten-Verschleierung aus (Abb. 4). Man erkennt den Schlüssel (grün) und die verschlüsselten Daten (blau) sowie die rot gekennzeichneten Strings, die nichts weiter als Datenmüll sind. In Abb. 5 ist vereinfachter Pseudocode dargestellt, um die Logik des Algorithmus hervorzuheben. Die String-Handling-Routine wird vom Banking-Trojaner selbst, dem Injektor und sogar vom Downloader verwendet. Im Gegensatz zu vielen anderen auf Lateinamerika abzielenden Bank-Trojanern scheint diese Routine nicht von dem zuvor erwähnten Buch weiter oben inspiriert zu sein.
Darüber hinaus können die neuesten Versionen der Familie via Mutex identifiziert werden, der den offenbar konstanten Namen {D7F8FEDF-D9A0-4335-A619-D3BB3EEAEDDB} trägt.
Amavaldo sammelt zunächst einmal Informationen über das kompromittierte Opfer:
- Computer- und Betriebssystemidentifikation
- Welche Art von Online-Banking-Sicherheitsschutz das Opfer installiert hat. Die Informationen stammen aus den folgenden Dateisystempfaden:
- %ProgramFiles%\Diebold\Warsaw
- %ProgramFiles%\GbPlugin\
- %ProgramFiles%\scpbrad\
- %ProgramFiles%\Trusteer
- %ProgramFiles%\AppBrad\
- %LocalAppData%\Aplicativo Itau
Die neueren Versionen kommunizieren über SecureBridge, eine Delphi-Bibliothek, die SSH / SSL-Verbindungen herstellt.
Wie bei vielen anderen derartigen Banking-Trojanern unterstützt Amavaldo mehrere Backdoor-Befehle. Der Funktionsbereich umfasst:
- Screenshots aufnehmen
- Fotos der Webcam
- Keylogging
- Weitere Programme herunterladen und ausführen
- Einschränkung des Zugriffs auf verschiedene Banking-Webseiten
- Maus- und Tastatursimulation
- Updates durch eigene Initiierung
Amavaldo verwendet eine clevere Technik, die der Windows-Benutzerkontensteuerung ähnelt. Nach dem Erkennen eines Desktop-Fensters mit Online-Banking-Bezug wird ein Screenshot des Desktops erstellt und setzt diesen als neues Hintergrundbild. Anschließend wird ein Fake Popup-Fenster eingeblendet, das auf dem Text des aktiven Fensters basierend ausgewählt wird. Gleichzeitig deaktiviert die Malware mehrere Hotkeys und das Opfer wird daran gehindert, mit etwas anderem als dem Popup-Fenster zu interagieren.
Als wir zum ersten Mal auf diese Malware stießen, waren nur brasilianische Banken betroffen. Aber seit April 2019 hat man es auch auf Kunden von mexikanischen Banken abgesehen. Zwar sind die brasilianischen Banken nach wie vor unter den Zielen zu finden, allerdings visierten die Malware-Entwickler nun vermehrt Mexiko an.
Verbreitungsmethode von Amavaldo
Wir entdeckten zwei Verbreitungsmechanismen – einen am Anfang dieses Jahres und den anderen im April.
Verbreitungsmechanismus 1 – Ziel: Brasilien
Die Verteilung von Amavaldo in Brasilien enttarnten wir das erste Mal im Januar 2019. Die Malware-Entwickler entschieden sich damals, die Banking-Trojaner mithilfe eines MSI-Installationsprogramms, VBS, XSL und PowerShell zu verbreiten.
Alles beginnt damit, dass das MSI-Installationsprogramm den Adobe Acrobat Reader DC auf dem PC des Opfers installieren möchte. Dazu werden zwei legitime Programmdateien verwendet: AICustAct.dll (zum Prüfen, ob Verbindung zum Internet besteht) und VmDetect.exe (zum Aufspüren von Virtuellen Maschinen).
Nachdem der Installer ausgeführt wurde, greift er auf eine eingebettete Datei zu, die neben Strings auch einen gepackten VBS Downloader beinhaltet (Abb. 7). Nach dem Entpacken (Abb. 8) wird ein weiterer VBS Downloader aus dem Internet heruntergeladen (Abb. 9). Dieser macht sich Microsofts Windows WMIC.exe zunutze, um im nächsten Schritt ein XSL Script zu laden. Dieses enthält ein verschlüsseltes PowerShell Script (Abb. 9). Im letzten Schritt ist das PowerShell Script dafür zuständig, dass die eigentliche Payload bezogen wird (Abb. 11). Dabei handelt es sich um ein ZIP-Archiv, bestehend aus mehreren Files – abgebildet in Tabelle 1. In dieser Stufe sichert sich der Banking-Trojaner zudem Persistenz auf dem PC des Opfers, in dem eine Task namens GoogleBol geplant wird.
nvsmartmaxapp.exe | Legitimate application 1 |
---|---|
NvSmartMax.dll | Injector 1 |
NvSmartMax | Payload 1 |
Gup.exe | Legitimate application 2 |
libcurl.dll | Injector 2 |
Libcurl | Payload 2 |
gup.xml | Configuration file for gup.exe |
Tabelle 1: Inhalt der Payload-ZIP mit Beschreibung
Es gibt jeweils zwei Payloads und Injectors. Beide werden auf dieselbe Art ausgeführt, wie zuvor beschrieben. Die NvSmartMax.dll führt Amavaldo aus. Die libcurl.dll steht in keinem unmittelbaren Zusammenhang mit Amavaldo, da diese ein Tool ausführt, das zum automatischen Registrieren einer großen Anzahl neuer E-Mail-Konten mithilfe der E-Mail-Plattform Brasil Online (BOL) verwendet wird. Die daraus hervorgehenden E-Mail Login-Informationen werden den Cyber-Angreifern zugesendet. Wir befürchten, dass diese in einer späteren Spam-Kampagne zum Einsatz kommen.
Verbreitungsmechanismus 2 – Ziel: Mexiko
Die von uns zuletzt beobachtete Verteilungsmethode leitet ein ähnlicher MSI-Installer ein. Der Unterschied liegt dieses Mal allerdings in der eingebetteten Windows Executable Datei, welche den Downloader bereitstellt. Die Installation schließt mit einer Fehlermeldung (Abb. 12), kurz nach der Ausführung des Downloaders. Die Persistenz wird wie im ersten Beispiel erreicht. Dieses Mal lautet die geplante Task lediglich Adobe Acrobat TaskB (Abb. 13) und nicht GoogleBol. Abschließend werden alle Amavaldo-Komponenten heruntergeladen (ohne E-Mail-Tool) und der Banking-Trojaner gestartet.
Wir gehen davon aus, dass Unternehmen durch Spam-Kampagnen diesem Verbreitungsmechanismus zum Opfer fallen. Mitarbeiter bekommen E-Mails mit Anhängen namens CurriculumVitae[…].msi oder FotosPost[…].msi. Die potenziellen Opfer sollen auf die Masche hereinfallen und glauben, jemand hätte wirklich seinen Lebenslauf per E-Mail geschickt. Und da es sich auf den ersten Blick um PDFs handelt, ist die nachgelagerte Installation des Adobe Acrobat Reader DC auch zunächst einmal nichts Ungewöhnliches.
Die Malware-Entwickler entschieden sich für den Gebrauch des URL-Shortener Services bit.ly. Das gibt uns zusätzliche Informationen über die Malware-Kampagne (Abb. 14 & Abb. 15). Wir erkennen, dass die überwiegende Mehrheit der Betroffenen aus Mexiko stammt und die meisten Klicks von E-Mails aus getätigt wurden.
Fazit
In diesem Beitrag haben wir unsere Analysen zu den neuen Banking-Trojaner in Lateinamerika vorgestellt. Wir beschrieben typische Charakterzüge der Banking-Malware und erläuterten einige Funktionsweisen.
Bei Fragen zu Amavaldo oder zur Einreichung von Malware-Samples steht die folgende E-Mail-Adresse zur Verfügung: threatintel@eset.com. Die IoCs finden Sie auch auf GitHub.
Indicators of Compromise (IoCs)
Hashes
First distribution chain (Brazil) hashes
SHA-1 | Description | ESET detection name |
---|---|---|
E0C8E11F8B271C1E40F5C184AFA427FFE99444F8 | Downloader (MSI installer) | Trojan.VBS/TrojanDownloader.Agent.QSL |
12C93BB262696314123562F8A4B158074C9F6B95 | Abuse legitimate application (NvSmartMaxApp.exe) | Clean file |
6D80A959E7F52150FDA2241A4073A29085C9386B | Injector for Amavaldo (NvSmartMax.dll) | Win32/Spy.Amavaldo.P trojan |
B855D8B1BAD07D578013BDB472122E405D49ACC1 | Amavaldo (decrypted NvSmartMax) | Win32/Spy.Amavaldo.N trojan |
FC37AC7523CF3B4020EC46D6A47BC26957E3C054 | Abused legitimate application (gup.exe) | Clean file |
4DBA5FE842B01B641A7228A4C8F805E4627C0012 | Injector for email tool (libcurl.dll) | Win32/Spy.Amavaldo.P trojan |
9A968341C65AB47BF5C7290F3B36FCF70E9C574B | Email tool (decrypted libcurl) | Win32/Spy.Banker.AEGH trojan |
Second distribution chain (Mexico) hashes
SHA-1 | Description | ESET detection name |
---|---|---|
AD1FCE0C62B532D097DACFCE149C452154D51EB0 | Downloader (MSI installer) | Win32/TrojanDownloader.Delf.CSG trojan |
6C04499F7406E270B590374EF813C4012530273E | Abused legitimate application (ctfmon.exe) | Clean file |
1D56BAB28793E3AB96E390F09F02425E52E28FFC | Injector for Amavaldo (MsCtfMonitor.dll) | Win32/Spy.Amavaldo.U trojan |
B761D9216C00F5E2871DE16AE157DE13C6283B5D | Amavaldo (decrypted MsCtfMonitor) | Win32/Spy.Amavaldo.N trojan |
Other
SHA-1 | Description | ESET detection name |
---|---|---|
B191810094DD2EE6B13C0D33458FAFCD459681AE | VmDetect.exe – a tool for detecting virtual environment | Clean file |
B80294261C8A1635E16E14F55A3D76889FF2C857 | AICustAct.dll – a tool for checking internet connectivity | Clean file |
Mutex
- {D7F8FEDF-D9A0-4335-A619-D3BB3EEAEDDB}
Filenames
- %LocalAppData%\%RAND%\NvSmartMax[.dll]
- %LocalAppData%\%RAND%\MsCtfMonitor[.dll]
- %LocalAppData%\%RAND%\libcurl[.dll]
Scheduled task
- GoogleBol
- Adobe Acrobat TaskB
C&C servers
- clausdomain.homeunix[.]com:3928
- balacimed.mine[.]nu:3579
- fbclinica.game-server[.]cc:3351
- newcharlesxl.scrapping[.]cc:3844
MITRE ATT&CK techniques
Tactic | ID | Name | Description |
---|---|---|---|
Initial Access | T1192 | Spearphishing Link | The initial attack vector is a malicious link in an email that leads the victim to a web page the downloader is obtained from. |
Execution | T1073 | DLL Side-Loading | The injector component is executed by abusing a legitimate application with this technique. |
T1086 | PowerShell | The first distribution chain uses PowerShell in its last stage. | |
T1047 | Windows Management Instrumentation | The first distribution chain abuses WMIC.exe to execute the third stage. | |
Persistence | T1053 | Scheduled Task | Persistence is ensured by a scheduled task. |
Defense Evasion | T1140 | Deobfuscate/Decode Files or Information | The actual banking trojan needs to be decrypted by the injector component. |
T1036 | Masquerading | The injector masks itself as a DLL imported by the abused legitimate application. The downloader masks itself as an installer for Adobe Acrobat Reader DC. | |
T1055 | Process Injection | The injector injects itself into wmplayer.exe or iexplore.exe. | |
T1064 | Scripting | VBS, PowerShell and XSL are used in the first distribution chain. | |
T1220 | XSL Script Processing | The first distribution chain uses XSL processing in its third stage. | |
T1497 | Virtualization/Sandbox Evasion | Downloader of Amavaldo uses third-party tools to detect virtual environment. | |
Credential Access | T1056 | Input Capture | Amavaldo contains a command to execute a keylogger. It also steals contents from fake windows it displays. |
Discovery | T1083 | File and Directory Discovery | Amavaldo searches for various filesystem paths in order to determine what banking protection applications are installed on the victim machine. |
T1082 | System Information Discovery | Amavaldo extracts information about the operating system. | |
Collection | T1113 | Screen Capture | Amavaldo contains a command to take screenshots. |
T1125 | Video Capture | Amavaldo contains a command to capture photos of the victim via webcam. | |
Command and Control | T1024 | Custom Cryptographic Protocol | Amavaldo uses a unique cryptographic protocol. |
T1071 | Standard Application Layer Protocol | Amavaldo uses the SecureBridge Delphi library to perform SSH connections. | |
Exfiltration | T1041 | Exfiltration Over Command and Control Channel | Amavaldo sends the data it collects to its C&C server. |