Die Sicherheitsforscher des Zscaler ThreatLabZ-Teams haben die jüngsten Aktivitäten des Banking-Trojaners TrickBot genauer unter die Lupe genommen und dabei neue Fähigkeiten analysiert. Erstmals 2016 beobachtet, handelt es sich bei TrickBot um einen Nachfolger des Banking-Trojaners Dyre, der sich zu einem der am weitesten verbreiteten und gefährlichsten Schädlinge in der heutigen Bedrohungslandschaft entwickelt hat.
Er ist modular aufgebaut, mit einem Haupt-Bot-Binary, das Plugins lädt, die für bestimmte Aufgaben geeignet sind und in regelmäßigen Abständen werden neue Module eingeführt und alte verbessert.
Solidarisch mit anderem Schadcode
TrickBot arbeitet häufig mit anderen Arten von Malware zusammen. Manchmal werden diese als erster Infektionsvektor verwendet, um den Weg ins Ziel zu ebnen. Alternativ werden weitere Malware-Familien nachgeladen, um das Beste aus einer Infektionskette herauszuholen. So ist beispielsweise Emotet als der dominierende Banking-Trojaner zu einem wichtigen Partner für TrickBot-Implementierungen geworden. Es ist auch bekannt, dass TrickBot Kryptominer-Workloads (Monero-Miner XMRIG) auf infizierten Hosts abladen kann. Und darüber hinaus wird jüngst die Ransomware Ryuk bevorzugt von den TrickBot-Entwicklern eingesetzt, um höhere Lösegeldforderungen nach einer Infektion hochrangiger Ziele zu erpressen. Die Malware-Entwickler sind auch in der Lage, lohnende Angriffsziele anhand der von TrickBot gesammelten Daten zu identifizieren. Sobald ein Ziel identifiziert ist werden andere Tools, wie CobaltStrike, PowerShell Empire, PSExec und AdFind eingesetzt, um die Ryuk-Ransomware auszuliefern.
Von den Machern wurde nun eine neue Malware namens AnchorBotentwickelt, die auf TrickBot-Code basiert und DNS als Command-and-Control (C&C)-Medium verwendet. Im Gegensatz zu TrickBot wurde AnchorBot allerdings noch nicht „In the Wild“ entdeckt. Deshalb wird angenommen, dass es sich dabei um eine spezialisierte Version handelt, die für bestimmte Angriffsziele reserviert ist oder möglicherweise an spezielle Kunden, wie beispielsweise staatliche Akteure, vermietet werden kann.
Der Infektionsverlauf mit TrickBot
Da fast jede TrickBot-Infektion mit Malspam beginnt, der einen angehängten Downloader enthält, oder von einem Partner-Botnet wie Emotet stammt, starteten die Researcher ihre genauere Analyse mit drei Arten von derzeit aktiven TrickBot-Loadern, die sich hinter den Dateiendungen LNK, JS und DOC verbergen.
TrickBot wird häufig über Spam-E-Mails mit angehängten ZIP-Dateien verbreitet, die LNK-Dateien (.lnk) enthalten. Die Sicherheitsforscher haben LNK-Dateien mit den folgenden Symbolen gefunden. Die Namen der beobachteten Dateien hatten oftmals einen Bezug zu Labels oder Rechnungen und werden verschleiert ausgeliefert. Dabei sind Parallelen der Verschleierung zum Skript-Downloader beobachtet worden.
Auf Office-Dokumenten basierende Downloader waren einst die bevorzugte Wahl der TrickBot-Entwickler. Aber in letzter Zeit konnte ein Abwärtstrend bei der Verwendung makrobasierter Dokumente für die Bereitstellung von TrickBot verfolgt werden. Dagegen sind aktuell unterschiedliche Sätze an Dokumentvorlagen im Umlauf, die im Folgenden angezeigt werden.
Der TrickBot-Loader
Nach dem Herunterladen der zwischengeschalteten Loader beginnt die Hauptkomponente von TrickBot, der so genannte TrickBot-Loader, zu agieren. Dieser Loader fungiert als Banking-Trojaner und ist darüber hinaus für das nachgelagerte Ausliefern verschiedener Module für bestimmte Aufgaben zuständig. TrickBot-Module gibt es in 32-Bit und 64-Bit-Varianten, und je nach Architektur des infizierten Systems lädt der Loader die entsprechenden Module herunter und führt sie aus. Die folgenden Module sind verfügbar:
- Systeminfo – Zur Erfassung grundlegender Informationen über den Host
- importDll – Zum Stehlen von Daten aus einem Browser
- injectDll – Zum Injizieren in Bank-Websites, um Zugangsdaten zu stehlen
- Pwgrab – Zum Abgreifen von Passwörtern von verschiedenen Stellen
- cookiesDll – Zum Stehlen/Abgreifen von Cookies
- mailsearcher – Für die Durchsuchung aller Dateien auf allen Laufwerken im System
- sharedll – Für die Übertragung auf ADMIN-Aktien und die Schaffung von Persistenz über Dienste
- networkDll – Zur Erfassung von Systeminformationen und Netzwerk-/Domänentopologie
- NewBCtestDll – SOCK5-Modul Verbindung
- psfin – Point-of-Sale-Modul ‚Aufklärung
- vncDll – Fernsteuerung/VNC-Modul
- wormDll – Für seitliche Bewegung
- tabDll – Zur Verbreitung über SMB mit EternalRomance und MS17-010
- outlookDll – Für den Diebstahl von Daten aus Microsoft Outlook
- domainDll – Für das LDAP-Harvesting der Domänencontroller-Konfiguration
- mwormDll – Für laterale Bewegung/Aufzählungsmodul über LDAP und SMB-Ausnutzung
- mshareDll – Für laterale Bewegung/Aufzählung über LDAP und SMB-Ausnutzung; mshare- und mworm-Module arbeiten zusammen
- rdpScanDll – Neues Modul, welches das Brute-Force-Remote-Desktop-Protokoll (RDP) für eine bestimmte Liste von Opfern verwendet
Kommunikation mit C&C-Servern
Nach dem Installationsvorgang kommuniziert TrickBot mit C&C-Servern über GET-Anfragen und verwendet immer numerische IP-Adressen als C&C-Adressen; seine Port-Nummern sind normalerweise 443, 449 oder 499. Die Kommunikation erfolgt immer verschlüsselt über SSL/TLS, aber der tatsächliche Port kann variieren. Der TrickBot-Loader unterstützt verschiedene Befehle, die er zur Kommunikation mit den C&C-Servern verwendet.
Einige seiner interessanten Befehle sind:
- /0/ – Anfangskontakt-Format z.B. /0/{os name}/{version}/{öffentlich ip}/{64 hex char}/{base64}
- /1/ – am Leben bleiben, auf Befehl warten
- /5/{name} – Modul herunterladen oder injizieren z.B. /5/injectDll64/, /5/dinj/
- /10/ Die Ausführung des Protokollmoduls / Befehls hat begonnen, z.B. /10/62/972991/1/
- /14/ – Profilinformationen oder wichtige Rückmeldungen z.B. /14/Benutzer/{Benutzername}/0/
- /23/{config_version} – Basiskonfiguration aktualisieren
- /25/ – Bot z.B. aktualisieren /25/M2vzSeNWHHXZ2SZI8HNKwD/
- /60/ – von injectDll erfasster Netzverkehr
- /63/ – Befehl an Komponente (x) erteilen z.B. /63/injectDll/sTart/U3VjY2Vzcw==// (‚Erfolg‘) /1/
- /64/ – Befehl an ETERNALBLUE-Komponente (wormdll) erteilen z.B. /64/wormDll/InfectMachine/infect/
- /send/ – wird von der mailsearcher-Komponente verwendet für POST-Exfil-E-Mail-Adressen
Schlussfolgerung
Die Bedrohungsakteure von TrickBot werden immer raffinierter in ihrer Vorgehensweise. Unlängst wurde sogar beobachtet, dass TrickBot in Deutschland eine Android-Malware verwendet, um die Zwei-Faktor-Authentifizierung zu umgehen. Es wird nicht lange dauern, bis Angreifer diese Malware weltweit einsetzen werden. Das Team von Zscaler ThreatLabZ verfolgt die Aktivitäten von TrickBot und verwandter Malware kontinuierlich, um Downloader, Workloads, Webinjects und C&C-Aktivitäten zu blockieren. Da die C&C-Kommunikation von TrickBot hinter SSL-Verschlüsselung verborgen erfolgt, empfehlen die Sicherheitsforscher den Einsatz von SSL-Scanning, um TrickBot und ähnliche Bedrohungen in verschlüsselten Datenströmen zu erkennen und entsprechend zu blockieren.
Die detaillierte Analyse im zscaler Blog.