DanaBot bekam zu Weihnachten ein Baukasten-Botnetz

DanaBot hat zu Weihnachten etwas bekommen, worüber sich wohl nur Hacker freuen: Ein neues Botnetz aus vielen kleinen Bausteinen, die es einzeln an potenzielle Opfer „weiterverschenken“ kann.

Die neueste Spam-Kampagne von DanaBot hat interessante neue Erkenntnisse darüber geliefert, wie der Banking-Trojaner in Umlauf gebracht wird. Um beim Aufbau ihres neuen Botnetzes so lange wie möglich unentdeckt zu bleiben, bringen Cyberkriminelle ihre Malware in kleinen Häppchen unter die Leute. Und wenn eines dieser zweifelhaften Geschenke unter dem falschen Weihnachtsbaum landet, beispielsweise im falschen Land oder auf der Malware-Analyse-Plattform eines Sicherheitsexperten, drehen die Täter einfach etwas an der Uhr und setzen diesen Empfänger auf ihre Sperrliste. Eine schöne Bescherung!

Viele kleine Geschenke

Malware in mehreren individuell an das Ziel angepassten „Teillieferungen“ in Umlauf zu bringen, mag vielleicht komplizierter erscheinen, als die Nutzlast in einem einzelnen Paket bereitzustellen. Aber mit dieser Strategie hinterlässt die Schadsoftware die wenigsten Spuren auf dem gewünschten Gerät, besonders in einer virtuellen Sandbox-Umgebung. Sicherheitsexperten wie Avira nutzen diverse automatisierte Malware-Analyse-Plattformen, um die eingehenden Samples zu klassifizieren. Und Hacker wissen das. Also machen sie es den Experten schwerer, neue und vollständige Samples zu erfassen. Das soll die Erkennungsraten so niedrig wie möglich halten – sowohl für die aktuellen als auch die zukünftigen Versionen ihrer Malware.

Das erste Paket ist nur für Sie

Das erste Paket ist eine Spear-Phishing-Mail mit einem Anhang. Dieser Anhang enthält ein VBScript in einer Archivdatei. Bisher sind diese E-Mails in Polen, Italien, Deutschland, Österreich, Frankreich, Finnland und möglicherweise noch weiteren europäischen Ländern aufgetaucht.


Jeder Empfänger bekommt eine individuelle, verschleierte Version dieses Skripts, natürlich immer in der jeweiligen Muttersprache. Dabei funktioniert das Skript immer gleich:

Das zweite Paket kommt vom C&C-Server

Der zweite Baustein der Nutzlast, der ebenfalls die Skriptsprache Visual Basic nutzt, wird durch das dynamische Ausführen von Anweisungsstapeln bereitgestellt. Diese Anweisungen kommen von einem der C&C-Server. Offenbar haben sich die Täter zu diesem Zweck eine Reihe billige Domainnamen unter TDLs wie „.club“ oder „.science“ registriert. Die Backend-Infrastruktur wird auf den kompromittierten und/oder illegal erworbenen Servern gehostet.

Die zweite Stufe der Malware-Verbreitung scheint von bestimmten Faktoren abhängig zu sein. Dazu gehören die Geo-IP des Empfängers und eine Überprüfung des IP-Adressbereichs mit anschließendem Abgleich mit einer Liste von verbotenen IP-Adressen. Wenn der C&C-Server die IP-Adresse des Empfängers nicht „mag“, gibt er die Anweisung zum Pausieren oder geht zu anderen Aktivitäten über. Die aufrufende Wrapper-Methode macht das mit dem Befehl „On Error Resume Next“. Das bedeutet, dass das Programm mögliche Fehler übergeht und mit der nächsten Anweisung fortfährt.

Beim dritten Paket ist der Standort entscheidend

Befindet sich der Empfänger in Deutschland, Österreich oder Italien, erhält er auch den dritten Teil der Nutzlast:


Die Ausführung dieser Nutzlast verwendet eine Methode zur Umgehung der Benutzerkontensteuerung, indem sie die Windows-Registry manipuliert und einen Prozess mit hoher Integrität startet: eventvwr.exe. Dieser wiederum versucht, durch Aufruf der Funktion ShellExecute evenvwr.msc zu öffnen.

Die Schreibvorgänge der Registry richten sich an den Shell-Öffnungsbefehl, der dem Dateityp msc zugeordnet ist. Dieser soll eigentlich mit mmc.exe geöffnet werden (Microsoft Management Console). Hier wechseln die Angreifer aber zu rundll32.exe, um die in der abgelegten DLL enthaltene schädliche Nutzlast zu laden und mit erhöhten Rechten auszuführen:

An der als dritte Stufe verwendeten Komponente fällt als Erstes auf, dass die von rundll32.exe ausgeführte Funktion f1 in der Verzeichnisstruktur für PE-Exporte fehlt:


Sie wird später zur Laufzeit der DllMain-Routine gepatcht, um beim Aufruf von GetProcAddress vom rundll-Prozess gefunden zu werden:

Abgesehen davon ist DllMain auch für die Entschlüsselung von verschlüsselten Zeichenfolgen, das dynamische Laden der benötigten DLLs und das Erstellen einer benutzerdefinierten Importtabelle im Abschnitt „.bss“ verantwortlich:

Entschlüsselte Verbindung weist nach Osten

Als Erstes durchsucht f1 die Kommandozeile und löscht eine bestimmte Datei, die dann als optionales Argument weitergegeben werden kann: rundll32.exe [Pfad zur DLL], f1 [Pfad zur Datei].

Dies verweist auf eine ältere Komponente, auf einen PE Dropper aus einer früheren Spam-Kampagne, die angeblich auf die Ukraine abzielte. Wenn wir uns die entsprechende Komponente der ersten Stufe von damals ansehen (ein JS Droppper), fällt Folgendes auf: Sie ist nur im September aktiv. Aufgrund dieser Eigenart werden derzeit keine anderen Systeme infiziert. Offenbar haben die Täter mit dieser Art der Verbreitung experimentiert und sie dann verworfen.

Im nächten Schritt wird durch Fingerprinting ein Fingerabdruck des Systems erstellt, indem mit der Windows Shell verknüpfte zeitstempelbezogene Informationen gesammelt werden (explorer.exe) und einige Registry-Einträge unter HKLM\HARDWARE\DESCRIPTION und HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion abgefragt werden:
– HKLM\HARDWARE\DESCRIPTION\CentralProcessor\0\Identifier
– HKLM\HARDWARE\DESCRIPTION\CentralProcessor\0\ProcessorNameString
– HKLM\HARDWARE\DESCRIPTION\System\Identifier
– HKLM\HARDWARE\DESCRIPTION\System\SystemBiosDate
– HKLM\HARDWARE\DESCRIPTION\System\VideoBiosVersion
– HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductId
– HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\InstallDate
All diese Informationen werden verkettet, d. h., die Zeichenfolgen werden von Anfang bis Ende zusammengefügt, und mit der API CryptHashData wird eine Reihe von drei MD5-Hashes berechnet. Der erste Hash wird basierend auf der ursprünglichen Zeichenfolge berechnet. Die anderen sind MD5-Entsprechungen des vorherigen Hashes. Diese werden als Teil eines benutzerdefinierten Protokolls für die Kommunikation mit dem Server verwendet.

433 ist der bevorzugt angesteuerte Port

Ein anderer interessanter Aspekt der Kommunikation mit der C&C-Infrastruktur ist, dass Verbindungsversuche mit zufälligen IP-Adressen über Port 443 ausgeführt werden. Dieser Port wird oft für HTTP über TLS (HTTPS) verwendet. Hier haben wir es allerdings mit einem speziell angepassten Kommunikationsprotokoll zu tun. Vermutlich nutzen die Täter hinter DanaBot diesen Port, weil er in den meisten Firewallregeln für ausgehende Verbindungen nicht blockiert wird.

Da DanaBot im September 2018 um ein RDP-Plugin (Remote Desktop Protocol) erweitert wurde und anscheinend alle erfolgreich kontaktierten Hosts Windows-Hosts mit offenem RDP-Port waren, ist davon auszugehen, dass hier ein Peer-to-Peer-Botnetz entsteht. Anstatt von den gängigen C&C-Servern scheinen die Hauptnutzlast und die zugehörigen Plugins von anderen infizierten Rechnern in Umlauf gebracht zu werden, die sich nicht hinter einem Router/einer NAT-Firewall befinden.

Schurken mit Zeitmaschine

Das I-Tüpfelchen des Verbreitungsmechanismus ist die Art und Weise, wie das Bereitstellen der Nutzlast verhindert wird, wenn die Malware in einer Sandbox-Umgebung ausgeführt wird (beispielsweise auf einer Malware-Analyseplattform): In diesem Fall wird eine Komponente genutzt, die für die Automatisierung und Verhaltensverfolgung verantwortlich ist (Zeitbeschleunigung).

Dies geschieht durch Aktivieren der Winsock 2 API send:

Das aktivierte „send“ stellt zunächst die ursprünglichen ungepatchten Bytes wieder her und ruft dann WSAIoctl mit dem Steuercode SIO_KEEPALIVE_VALS auf.

Anschließend wird ein neuer Thread erstellt, dem der Socket Handle als Parameter zugewiesen wird. Dieser Thread pausiert für 20 Sekunden und schließt dann den Socket.

In der Zwischenzeit ruft der Hauptthread den ursprünglichen „send“ auf. Unter der Annahme, dass das Backend mit dem Sleep-Befehl korreliert ist, wird der closesocket in einer Sandbox-Umgebung mit Zeitbeschleunigung früher aufgerufen (d. h., das Pausieren dauert weniger lang). Infolgedessen wird das Backend mit einem RST-TCP-Segment benachrichtigt und kann so die ID der gesendeten Hardware auf die Liste gesperrter Hardware-IDs setzen. Dadurch bekommt die Sandbox in Zukunft keine Updates mehr.

Unsere Erkenntnisse zeigen, dass die Verantwortlichen hinter DanaBot ihre Malware mit einer ausgefeilten Infrastruktur ausstatten und dabei möglicherweise mit Autoren anderer Malware-Familien zusammenarbeiten. Avira erkennt und blockiert alle Komponenten dieser Malware-Architektur unter den in der folgenden IOC-Tabelle angegebenen Erkennungsnamen:

KomponenteSHA256Erkennungsname
VBS Downloader4a0e84e57709e85b019459daac005e343230

ed6b4b6aabeb910be2638c863bd8

VBS/Dldr.Agent
JS Dropper6b3102f414cb80197598ea82c2502b2eb8b08

a0c9ecf3226961fd7687cf50516

JS/Dldr.Agent
PE Downloader1cc53453be89506bfd42b4d94ccaae0b0e0595

e36fb6e223bdf08231d032a9de

TR/Dldr.Danabot
PE Dropper21b5e1330e5f768da01c235efbeacb284b0376

c9c7bd6d874f55550fc09ca31e

TR/Drop.Danabot
Hauptmodul82edc6bc8f5e2a3cefc0d317350e10b884d0e40

ec8e3fd406ad750637e7344db

TR/Spy.Danabot

Dieser Artikel ist auch verfügbar in: EnglischFranzösischItalienisch