Operation TrickBot – ein globaler Schlag gegen das Botnetz | WeLiveSecurity

Operation TrickBot – ein globaler Schlag gegen das Botnetz

ESET Forscher unterstützten den erfolgreichen Schlag gegen eines der größten Botnetze und Schadcode-Verbreiter.

ESET Forscher unterstützten den erfolgreichen Schlag gegen eines der größten Botnetze und Schadcode-Verbreiter.

ESET hat mit Partnern wie Microsoft, Lumens Black Lotus Labs, NTT Ltd. und anderen zusammengearbeitet, um das TrickBot-Botnets zu stören. ESET hat zum Projekt beigetragen, indem wir technische Analysen, statistische Informationen sowie bekannte Domänennamen und IPs von Command-and-Control-Servern (C&C-Server) bereitgestellt haben.

Seit Ende 2016 hat TrickBot weltweit über eine Million Computergeräte infiziert und wir haben seine Aktivitäten von Anfang an verfolgt. Allein im Jahr 2020 konnte unsere automatische Plattform mehr als 125.000 bösartige Samples analysieren und mehr als 40.000 Konfigurationsdateien für die verschiedenen TrickBot-Module herunterladen und entschlüsseln. Dadurch erhielten wir einen hervorragenden Überblick über die verschiedenen C&C-Server, die von diesem Botnetz verwendet werden.

TrickBot, ein langlebiges Botnetz

TrickBot ist seit langem ein großes Ärgernis für Internetnutzer. Die erste Erkennung von TrickBot durch ESET datiert auf 2016. In den letzten Jahren wurde regelmäßig über Kompromittierungen durch TrickBot berichtet und mittlerweile ist es eines der größten und langlebigsten Botnetze überhaupt. Wie in unserem Threat Report für das 1. Quartal 2020 berichtet, gehört TrickBot zu den am weitesten verbreiteten Banking-Malware-Familien. Wie in Abbildung 1 zu sehen ist, zeigen ESET-Telemetriedaten eine weltweite Verbreitung dieses Malware-Stamms, das heißt er stellt eine Bedrohung für Internetnutzer weltweit dar.

Abbildung 1. Weltweite TrickBot-Erkennungen zwischen Oktober 2019 und Oktober 2020

TrickBot-Malware wurde im Laufe ihres Bestehens auf unterschiedliche Weise verbreitet. In letzter Zeit haben wir häufig beobachtet, dass TrickBot Systeme infiziert, die bereits von Emotet, einem anderen großen Botnetz, kompromittiert wurden. In der Vergangenheit wurde die TrickBot-Malware von ihren Betreibern hauptsächlich als Bankentrojaner eingesetzt, also um Anmeldeinformationen von Online-Bankkonten zu stehlen und betrügerische Überweisungen durchzuführen.

Aufgrund seiner modularen Architektur kann TrickBot über eine Vielzahl von Plugins böswillige Aktionen ausführen. Es kann alle möglichen Anmeldeinformationen von kompromittierten Computern stehlen und wurde in letzter Zeit hauptsächlich als Verbreitungsmechanismus für schädlichere Angriffe, wie Ransomware, beobachtet.

Eines der ältesten Plugins ermöglicht TrickBot die Verwendung von Web-Injects. Mit dieser Technik kann die Malware dynamisch verändern, was Benutzer eines kompromittierten Systems beim Besuch bestimmter Websites sehen. Für den Betrieb benötigt dieses Plugin Konfigurationsdateien, die vom Hauptmodul heruntergeladen werden. Diese enthalten Informationen darüber, welche Websites wie geändert werden sollen. Abbildung 2 zeigt einen Auszug einer solchen entschlüsselten Konfigurationsdatei mit Ziel-URLs und den schädlichen C&C-URLs, die der Bot kontaktieren soll, wenn das Opfer auf die Ziel-URLs zugreift.

Abbildung 2. Auszug aus einer entschlüsselten dinj-Konfigurationsdatei (redigiert)

Durch die Überwachung von TrickBot-Kampagnen haben wir Zehntausende verschiedener Konfigurationsdateien gesammelt und herausgefunden, auf welche Websites die Betreiber von TrickBot abzielten. Abbildung 3 zeigt die Anzahl der Websites, die wir im Jahr 2020 aus den Konfigurationsdateien extrahiert haben.

Abbildung 3. Anzahl der Zielwebsites im Jahr 2020

Diese Ziel-URLs gehören hauptsächlich zu Finanzinstituten. Ab März 2020 ist ein starker Rückgang der Anzahl der Ziele in den Konfigurationsdateien zu verzeichnen. Dies fällt mit dem Moment zusammen, in dem die Betreiber von TrickBot das Webinject-Modul aus der Liste der Standard-Plugins entfernt haben, die vom Hauptmodul automatisch heruntergeladen werden. Aus diesem Grund liegen uns für den März keine Daten vor. Wir mussten unsere Prozesse anpassen, um die Ziel-URLs weiter zu erfassen. Der Rückgang der Anzahl der Ziel-Webseiten ist wahrscheinlich darauf zurückzuführen, dass sich die TrickBot-Bande seit dieser Zeit auf ein anderes Mittel zur Monetarisierung konzentriert: Ransomware.

In solchen Fällen wird eine Kompromittierung durch TrickBot zuerst dazu genutzt, um das befallene System zu erkunden und sich im Netzwerk eines Unternehmens weiter auszubreiten. Dann wird die Ryuk-Ransomware auf so vielen Systemen wie möglich abgelegt. Die von uns gesammelten Daten legen nahe, dass die Betreiber von TrickBot sich vom versuchten Diebstahl von Bankkonten auf die Kompromittierung und Erpressung von ganzen Organisationen mittels Ryuk verlegt haben.

Wir haben außerdem die Entwicklung neuer Malware-Projekte beobachtet, die angeblich von den TrickBot-Betreibern stammen. Dies könnte ebenfalls ihr plötzliches Desinteresse am Betrieb von TrickBot als Bankentrojaner erklären. Eines dieser Projekte ist das sogenannte Anchor-Projekt, eine Plattform, die hauptsächlich auf Spionage und nicht auf Crimeware ausgerichtet ist. Die TrickBot-Hintermänner sind wahrscheinlich auch an der Entwicklung der Bazar-Malware beteiligt – ein Loader und eine Backdoor, mit denen Malware, beispielsweise Ransomware, bereitgestellt und vertrauliche Daten von kompromittierten Systemen gestohlen werden können.

Genauer Blick auf TrickBot

Was TrickBot so vielseitig macht, ist die Möglichkeit seine Funktionen mittels Plugins erheblich erweitern zu können. Während unseres Trackings der Malware konnten wir 28 verschiedene Plugins sammeln und analysieren. Einige dienen dem Diebstahl von Kennwörtern aus Browsern, E-Mail-Clients und einer Vielzahl von Anwendungen, andere verändern den Netzwerkverkehr oder dienen der eigenen Verbreitung. TrickBot-Plugins werden als Standard-Windows-DLLs implementiert, normalerweise mit mindestens diesen vier unterschiedlichen Exporten: Start, Control, Release und FreeBuffer.

Interessanterweise haben einige Rich-Header, andere nicht. Rich-Header sind eine undokumentierte Datenstruktur, die allen von Microsoft Visual Studio 97 SP3 oder höher erstellten Binärdateien hinzugefügt wird. Sie enthalten Informationen zur Entwicklungsumgebung, in der die ausführbare Datei erstellt wurde. Die Tatsache, dass Rich-Header nicht immer in Plugins vorhanden sind – und dass sie auf unterschiedliche Entwicklungsumgebungen verweisen, wenn sie vorhanden sind – lässt vermuten, dass diese Plugins von verschiedenen Entwicklern geschrieben wurden.

Wir konnten nicht viele unterschiedliche Samples der verschiedenen Plugins beobachten, sobald sie entwickelt waren und in freier Wildbahn verwendet wurden. Diejenigen, die sich am meisten geändert haben, enthalten eine statische Konfigurationsdatei, die in der Binärdatei eingebettet ist. Diese statischen Konfigurationsdateien enthalten, unter anderem, C&C-Serverinformationen, daher sind diese Veränderungen im Laufe der Zeit erwartbar. Abbildung 4 zeigt die Anzahl der Variationen, die wir für jedes Modul beobachtet haben, das über unsere Botnet-Tracker-Plattform gesammelt wurde. Die meisten Varianten der neueren Module sind paarweise vorhanden: Etwa die Hälfte der gesammelten Module waren 32-Bit-Versionen, während die andere Hälfte die 64-Bit-Versionen waren. Im Anhang (Appendix) finden Sie eine kurze Beschreibung der einzelnen Module.

Abbildung 4. Variantenanzahl für jedes TrickBot-Plugin

Konfigurationsdateien für alles

Obwohl in einer TrickBot-Installation potenziell viele verschiedene heruntergeladene Konfigurationsdateien vorhanden sind, enthält das Hauptmodul eine verschlüsselte, fest codierte Konfiguration. Diese enthält eine Liste der C&C-Server sowie eine Standardliste aller Plugins, die heruntergeladen werden sollten.

Wie schon erwähnt, sind einige Plugins auch auf eigene Konfigurationsdateien angewiesen, um ordnungsgemäß zu funktionieren. Diese Plugins benötigen das Hauptmodul, um diese Konfigurationsdateien von den C&C-Servern herunterzuladen. Die Plugins erreichen dies, indem sie eine kleine Modulkonfigurationsstruktur übergeben, die im Overlay-Bereich der Plugin-Binärdatei gespeichert ist und dem Hauptmodul mitteilt, was es herunterladen soll.

Durch das Sammeln dieser Konfigurationsdateien konnten wir die Netzwerkinfrastruktur von TrickBot kartieren. Das Hauptmodul verwendet seine Liste der fest codierten C&C-Server und stellt eine Verbindung zu einem von ihnen her, um eine zweite Liste der C&C-Server herunterzuladen, die sogenannte psrv-Liste. Das Hauptmodul kontaktiert diese zweite Schicht von C&C-Servern, um die in der fest codierten Konfigurationsdatei angegebenen Standard-Plugins herunterzuladen. Andere Module können später heruntergeladen werden, wenn die Betreiber es wollen. Einige der Plugins, wie beispielsweise das injectDll-Plugin, verfügen über eigene C&C-Server, die Konfigurationsdateien enthalten. Schließlich gibt es dedizierte C&C-Server für Plugins. Am weitesten verbreitet sind sogenannte dpost-Server, mit denen gestohlene Daten wie Anmeldeinformationen herausgefiltert werden. Doch es gibt, wie im Anhang beschrieben, auch andere. All diese verschiedenen Schichten erschweren es TrickBot lahmzulegen. Abbildung 5 zeigt diesen anfänglichen Kommunikationsprozess.

Abbildung 5. TrickBot-Netzwerkkommunikationsprozess

Wir verfolgen diese verschiedenen C&C-Server seit Anfang 2017. Das Wissen um die von den Cyberkriminellen verwendete Netzwerkinfrastruktur war für die Operation zur Lahmlegung des Botnetzes natürlich von entscheidender Bedeutung.

Ein weiteres interessantes Artefakt, das wir durch das Crawlen dieses Botnetzes sammeln konnten, ist die eindeutige Kennung, die zu jedem TrickBot-Sample gehört, der sogenannte gtag. Dies ist eine Zeichenfolge in der anfänglichen fest codierten Konfigurationsdatei, die verschiedene TrickBot-Kampagnen oder Kompromittierungsformen identifiziert. Zum Beispiel wird angenommen, dass die mor-Kampagnen TrickBot-Kompromittierungen aufgrund von Emotet sind. gtags können manchmal auch Anzeichen auf das Ziel einer Kampagne geben. Ein gutes Beispiel ist die uk03-1-Kampagne, die sich vorwiegend gegen Finanzinstitute im Vereinigten Königreich richtete.

Abbildung 6 zeigt eine Zeitleiste aller gtags, die wir von September 2019 bis September 2020 aus TrickBot-Konfigurationsdateien extrahiert haben. Wenn wir uns die mor-Gruppe ansehen, sehen wir den abrupten Stopp der Emotet-Kampagnen im April 2020. Es werden auch einige Gruppen von  bestimmten Modulen verwendet. Die Gruppen tot, jim und lib gehören zu den am häufigsten gesehenen gtags und sind laut einem kürzlich veröffentlichten Unit42-Blogpost den Modulen mshare, nworm/mworm und tab zugeordnet. Da all diese für die laterale Ausbreitung in Netzwerken verwendet werden, ist es nicht überraschend, dass in ihrer Zeitachse eine meist konstante Linie zu sehen ist.

Abbildung 6. Zeitleiste der gtags-Gruppen

Fazit

Der Versuch, eine schwer fassbare Bedrohung wie das TrickBot-Botnetz lahmzulegen, ist sehr herausfordernd und komplex. Es verfügt über verschiedene Fallback-Mechanismen und seine Verbindung mit anderen hochaktiven Cyberkriminellen macht den gesamten Vorgang äußerst komplex. Wir werden diese Bedrohung weiterhin beobachten und die Auswirkungen bewerten, die solche Störmaßnahmen auf lange Sicht auf ein so weitläufiges Botnetz haben können.

Besonderer Dank geht an Jakub Tomanek, Jozef Dúc, Zoltán Rusnák und Filip Mazán

ESET detection names

Win32/TrickBot
Win64/TrickBot

MITRE ATT&CK techniques

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

TacticIDNameDescription
Initial AccessT1566.001Phishing: Spearphishing AttachmentTrickbot has used an email with an Excel sheet containing a malicious macro to deploy the malware.
ExecutionT1059.003Command and Scripting Interpreter: Windows Command ShellTrickbot has used cmd.exe /c to download and deploy the malware on the user’s machine.
T1059.005Command and Scripting Interpreter: Visual BasicTrickbot has used macros in Excel documents to download and deploy the malware on the user’s machine.
T1106Native APITrickbot uses the Windows API CreateProcessW to manage execution flow.
T1204.002User Execution: Malicious FileTrickbot has attempted to get users to launch a malicious Excel attachment to deliver its payload.
T1059.007Command and Scripting Interpreter: JavaScript/JscriptTrickbot group used obfuscated JavaScript to download Trickbot loader.
T1559.001Inter-Process Communication: Component Object ModelTrickbot used COM to setup scheduled task for persistence.
PersistenceT1547.001Boot or Logon Autostart Execution: Registry Run Keys / Startup FolderTrickbot establishes persistence in the Startup folder.
T1053.005Scheduled Task/Job: Scheduled TaskTrickbot creates a scheduled task on the system that provides persistence.
Privilege EscalationT1055.012Process Injection: Process HollowingTrickbot injects into the svchost.exe process.
Defense EvasionT1140Deobfuscate/Decode Files or InformationTrickbot decodes its configuration data and modules.
T1562.001Impair Defenses: Disable or Modify ToolsTrickbot can disable Windows Defender.
T1112Modify RegistryTrickbot can modify registry entries.
T1027Obfuscated Files or InformationTrickbot uses non-descriptive names to hide functionality and uses an AES-CBC (256 bits) encryption algorithm for its loader and configuration files.
T1027.002Software PackingTrickbot leverages a custom packer to obfuscate its functionality.
T1553Subvert Trust ControlsTrickbot uses signed loaders with stolen valid certificates.
Credential AccessT1555.003Credentials from Password Stores: Credentials from Web BrowsersTrickbot can obtain passwords stored by web browsers such as Chrome, Firefox, Internet Explorer, and Microsoft Edge.
T1056.004Input Capture: Credential API HookingTrickbot has the ability to capture RDP credentials by capturing the CredEnumerateA API.
T1552.001Unsecured Credentials: Credentials In FilesTrickbot can obtain passwords stored by several applications such as Outlook, Filezilla, and WinSCP. Additionally, it searches for the .vnc.lnk suffix to steal VNC credentials.
T1552.002Unsecured Credentials: Credentials in RegistryTrickbot can retrieve PuTTY credentials from the Software\SimonTatham\Putty\Sessions registry key.
T1110Brute ForceTrickbot uses brute-force attack against RDP with rdpscanDll module.
DiscoveryT1087.001Account Discovery: Local AccountTrickbot collects the users of the system.
T1087.003Account Discovery: Email AccountTrickbot collects email addresses from Outlook.
T1082System Information DiscoveryTrickbot gathers the OS version, CPU type, amount of RAM available from the victim’s machine.
T1083File and Directory DiscoveryTrickbot searches the system for all of the following file extensions: .avi, .mov, .mkv, .mpeg, .mpeg4, .mp4, .mp3, .wav, .ogg, .jpeg, .jpg, .png, .bmp, .gif, .tiff, .ico, .xlsx, and .zip. It can also obtain browsing history, cookies, and plugin information.
T1016System Network Configuration DiscoveryTrickbot obtains the IP address and other relevant network information from the victim’s machine.
T1007System Service DiscoveryTrickbot collects a list of installed programs and services on the system’s machine.
T1135Network Share DiscoveryTrickbot module shareDll/mshareDll discovers network shares via the WNetOpenEnumA API.
T1057Process DiscoveryTrickbot uses module networkDll for process list discovery.
Lateral MovementT1210Exploitation of Remote ServicesTrickbot utilizes EthernalBlue and EthernalRomance exploits for lateral movement in the modules wormwinDll, wormDll, mwormDll, nwormDll, tabDll.
CollectionT1005Data from Local SystemTrickbot collects local files and information from the victim’s local machine.
T1185Man in the BrowserTrickbot uses web injects and browser redirection to trick victims into providing their login credentials on a fake or modified web page.
Command and ControlT1071.001Application Layer Protocol: Web ProtocolsTrickbot uses HTTPS to communicate with its C&C servers, to get malware updates, modules that perform most of the malware logic and various configuration files.
T1573.001Encrypted Channel: Symmetric CryptographyTrickbot uses a custom crypter leveraging Microsoft’s CryptoAPI to encrypt C&C traffic.
T1105Ingress Tool TransferTrickbot downloads several additional files and saves them to the victim’s machine.
T1571Non-Standard PortSome Trickbot samples have used HTTP over ports 447 and 8082 for C&C.
T1219Remote Access SoftwareTrickbot uses vncDll module to remote control the victim machine.
ExfiltrationT1041Exfiltration Over C2 ChannelTrickbot exfiltrates data over the C&C channel using HTTP POST requests.

Appendix

Lateral movement modules

  • shareDll, mshareDll, tshareDll
    • Modules used to propagate Trickbot loader to connected network shares of the victimized machine.
  • wormwinDll, wormDll, mwormDll, nwormDll
    • Modules used for spreading inside a local network of infected machines via SMB. It uses the EternalBlue exploit.
  • tabDll
    • Module used to spread into the network using the EternalRomance exploit.

Infostealers

  • pwgrab
    • Password stealer module.
  • systeminfo
    • Module used for gathering information about the victim machine.
  • domainDll
    • Module used for stealing credentials and other data from the Domain Controller via LDAP.
  • networkDll
    • Module used to collect system information and network topology.
  • outlookDll
    • Module used for stealing credentials from Microsoft Outlook.
  • importDll
    • Module used for stealing browser information such as cookies, browser history, configurations.
  • mailsearcher
    • Module used to search for files on the victim machine against a list of hardcoded extensions (documents, images, video).
  • cookiesDll
    • Web browser cookie stealer module.
  • squlDll
    • Module used to harvest email addresses from the SQL server and scrape credentials from the infected system with the Mimikatz utility.
  • aDll
    • Steals Active Directory database.
  • psfin
    • Module queries the Active Directory for specific string constants which are related to Point-of-Sale software.

Network abuse

  • injectDll
    • Webinject module.
  • NewBCtestDll, NewBCtestnDll
    • Module that is a reverse proxy and is able to execute commands.
  • vncDll
    • Module used as a RAT on the victim machine.
  • vpnDll
    • Module used to create VPN proxy routed to a given address.
  • rdpscanDll
    • Module used for brute forcing RDP on a certain list of targets.
  • bcClientDllTestTest
    • An old module used to proxy Trickbot operator traffic through a victim machine.
  • shadnewDll
    • Man-in-the-Browser module. It contains a full implementation of IcedID main module. It can intercept web traffic on the victim machine.

Other

  • mexecDll
    • General purpose “download and execute” module.
Module namesSub-configRich headers
shareDll, mshareDll, tshareDllNO
wormwinDll, wormDll, mwormDll, nwormDllNO
tabDlldpost YES
pwgrab dpost YES
systeminfo YES
domainDllNO
networkDll dpost YES
outlookDllNO
importDll NO
mailsearchermailconfNO
cookiesDlldpost YES
squlDll YES
aDll YES
psfindpost YES
injectDlldinj, sinj, dpost YES/NO
NewBCtestDll, NewBCtestnDll bcconfig3 YES
vncDll vncconf YES
vpnDllvpnsrv YES
rdpscanDllsrv YES
bcClientDllTestTest YES
shadnewDlldom YES
mexecDll YES

Useful links:

Microsoft blog post: https://blogs.microsoft.com/on-the-issues/?p=64132

Newsletter-Anmeldung

Hier können Sie mitdiskutieren