DanaBot aktualisiert - verschlüsselte C&C-Kommunikation

DanaBot-Trojaner aktualisiert: nun mit verschlüsselter C&C-Kommunikation

ESET-Forscher entdeckten eine neue Version des DanaBot-Trojaners, der auch in Deutschland aktiv ist.

ESET-Forscher entdeckten eine neue Version des DanaBot-Trojaners, der auch in Deutschland aktiv ist.

Der sich schnell entwickelnde DanaBot-Trojaner wurde aktualisiert. Die neuste Version ist mit einem völlig neuen Kommunikationsprotokoll ausgestattet. Mit dem Ende Januar eingeführten Protokoll verfügt die DanaBot C&C-Kommunikation nun über mehrere Verschlüsselungsebenen.

Neben dem Kommunikationsprotokoll wurden auch die Architecture und Campaign IDs von DanaBot geändert.

Die Evolution von DanaBot

Seitdem DanaBot im Mai 2018 im Rahmen einer australischen Spam-Kampagne entdeckt worden war, ist viel passiert. Mittlerweile hat sich der DanaBot-Trojaner auch in Polen, Italien, Deutschland, Österreich und der Ukraine sowie in den Vereinigten Staaten manifestiert und wurde bereits um neue Fähigkeiten und Plugins zum Versenden von Spam erweitert.

ESET-Telemetrie-Daten zeigten am 25. Januar 2019 ungewöhnliche Executables, die in Beziehung zu DanaBot standen. Nach weiteren Untersuchungen entpuppten sich die Binaries als zusätzliche DanaBot-Varianten, welche aber ein anderes Kommunikationsprotokoll zur C&C-Server-Kommunikation gebrauchten.  Bereits am 26. Januar stellten die DanaBot-Entwickler die alten Binaries ein.

Zum Zeitpunkt der Entstehung dieses Artikels wird die neue DanaBot-Version auf zwei Wege verbreitet:

  • Als „Update“ für bereits bestehende DanaBot-Versionen
  • Via Malspam in Polen

Das neue Kommunikationsprotokoll von DanaBot

In dem vor dem 25. Januar verwendeten Kommunikationsprotokoll wurden Datenpakete in keiner Weise verschlüsselt, wie in Abbildung 1 dargestellt.

Abgefangene Datenpakete zeigen das alte Protokoll mit Informationen im Klartext

Abbildung 1: Abgefangene Datenpakete zeigen das alte Protokoll mit Informationen im Klartext

Nach der Aktualisierung verwendet DanaBot nun AES- und RSA-Verschlüsselungsalgorithmen für die C&C-Kommunikation. Das neue Kommunikationsprotokoll ist komplex. Es besteht aus mehreren Verschlüsselungsschichten, wie in Abbildung 2 dargestellt.

Schematische Darstellung des neuen DanaBot Kommunikationsprotokolls

Abbildung 2: Schematische Darstellung des neuen DanaBot Kommunikationsprotokolls

Diese Veränderungen durchbrechen vorhandene netzwerkbasierte Signaturen und erschweren das Erstellen neuer Regeln für Intrusion Detection und Prevention Systems. Ohne Zugriff auf die entsprechenden RSA-Schlüssel können gesendete oder empfangene Datenpakete nicht dekodiert werden. Für Forschende sind PCAP-Dateien aus cloudbasierten Analysesystemen (wie ANY.RUN) damit unbrauchbar.

Abgefangene Datenpakete mit neuem verschlüsselten Kommunikationsprotokoll

Abbildung 3: Abgefangene Datenpakete mit neuem verschlüsselten Kommunikationsprotokoll

Jedes vom Client gesendete Datenpaket besitzt einen 24-(0x18)-Byte-Header:

OffsetSize (bytes)Meaning
0x00x8Size of the data after this header
0x80x8Random value
0x100x8Sum of first two fields

Dem Header folgen AES-verschlüsselte Datenpakete, dann ein 4-Byte-Wert, der die AES Padding Size angibt, und letztendlich der RSA-verschlüsselte AES-Schlüssel. Jedes Paket ist durch einen anderen AES-Schlüssel verschlüsselt.

Der C&C-Server antwortet im selben Format. Anders als in DanaBot-Vorgängern folgen die Paketdaten der Serverantworten aber keinem bestimmten Layout – von manchen Ausnahmen einmal abgesehen.

Packet Data Layout der neuen DanaBot-Version

Das frühere Paketdatenlayout wurde von Proofpoint im Oktober 2018 detailliert beschrieben. In der neuesten Version von DanaBot wurde das Layout leicht geändert, wie in Abbildung 4 dargestellt.

Vergleich des Packet Data Layouts der alten und neuen DanaBot-Versionen

Abbildung 4: Vergleich des Packet Data Layouts der alten und neuen DanaBot-Versionen

Veränderungen in der DanaBot-Architektur

Neben dem geänderten Kommunikationsprotokoll erfuhr DanaBot auch einige Änderungen im Aufbau. Die vorherigen Versionen von DanaBot enthielten eine Komponente, die das Main Module heruntergeladen und ausgeführt hat. Das Main Module lud dann wiederum Plugins und Konfigurationen herunter und führte diese aus.

In der neuen DanaBot-Version hat man diese Verantwortlichkeit einer neuen Loader-Komponente übertragen. Der Loader lädt nun neben dem Main Module auch alle Plugins und Konfigurationen herunter. Persistenz auf den kompromittierten Systemen erreicht der Loader durch eine Registrierung der Loader-Komponente als Dienst.

Vergleich zwischen dem Aufbau der alten und neuen DanaBot-Versionen

Abbildung 5: Vergleich zwischen dem Aufbau der alten und neuen DanaBot-Versionen

Befehle der neuen DanaBot-Version

Gemäß der ESET-Analyse versteht die Loader-Komponente die folgenden Befehle:

  • 0x12C – Hello. Erster Befehl, der vom Client an den Server gesendet wird.
  • 0x12D – Download 32/64-bit Launcher-Komponente
  • 0x12E – Liste der Plugins und Konfigurationsdateien anfordern
  • 0x12F – Plugin-/Konfigurationsdateien herunterladen

Heruntergeladene Plugins und Konfigurationsdateien sind durch einen AES-Schlüssel verschlüsselt, der sich aus der Client ID ableitet. Zusätzlich sind die Plugins mit Hilfe des LZMA-Algorithmus ZIP-komprimiert, die Konfigurationsdateien durch zlib.

Folgende Befehle mit den ID-Nummern 0x130 – 0x134 werden vom Hauptmodul gesendet:

  • 0x130 – Gesammelte Informationen zum C&C-Server hochladen (z.B. Screenshots eines kompromittierten Computers; Systeminformationen)
  • 0x131 – wie 0x130 (z.B. Liste mit Dateien auf der Festplatte des Opfers)
  • 0x132 – C&C-Server nach weiteren Befehlen fragen; Es gibt etwa 30, für Backdoor typische, Befehle, wie das Starten von Plugins, das Sammeln detaillierter Systeminformationen und das Modifizieren von Dateien auf dem Client (Computer des Opfers)
  • 0x133 – Aktualisiere die C&C-Server-Liste via Tor-Proxy
  • 0x134 – (genauer Inhalt unbekannt); höchstwahrscheinlich für die Kommunikation zwischen Plugins und C&C-Server verwendet

Anpassungen der Campaign IDs

Frühere Untersuchungen ergaben, dass DanaBot unter verschiedenen „Partner-“ oder „Campaign IDs“ verbreitet wird.

In der vorherigen DanaBot-Version benutzten die Malware-Entwickler rund 20 unterschiedliche Campaign IDs. In der neuen Variante unterscheiden sich die Campaign IDs leicht zur alten. Seit 5. Februar sind folgende bekannt:

  • ID=2 scheint eine Testversion zu sein; stellt eine begrenzte Anzahl von Konfigurationsdateien aber keine Webinjects bereit
  • ID=3 wird aktiv verteilt; betroffen sind Polen und Italien; Webinjects für beide Länder
  • ID=5 stellt Konfigurationsdateien für australische Angriffsziele bereit
  • ID=7 bisher nur in Polen; Webinjects auf polnische Ziele
  • ID=9 scheint weitere Test-Version zu sein; kleinerer Verbreitungsradius ohne spezifische Ziele, limitierte Anzahl von Konfigurationsdateien und keine Webinjects

Fazit

Bereits im Jahr 2018 haben wir beobachtet, wie sich DanaBot in Bezug auf Verbreitung und Funktionalität weiterentwickelte. Zu Beginn dieses Jahres entwickelte sich der DanaBot-Trojaner mehr von Innen heraus, was auf eine aktive Entwicklerarbeit hindeutet. Die neuesten Updates weisen zudem darauf hin, dass sich die DanaBot-Entwickler bemühen, eine Erkennung auf Netzwerkebene zu umgehen. Wahrscheinlich achten sie außerdem auf die neusten Erkenntnisse von Malware-Forschern, um ihnen immer einen Schritt voraus zu bleiben.

ESET-Sicherheitsprodukte erkennen und blockieren alle DanaBot-Komponenten und -Plugins unter den im IoCs-Abschnitt aufgeführten Erkennungsnamen.

 

Dieser Research wurde von Kaspars Osis, Tomáš Procházka und Michal Kolář durchgeführt.

 

Indicators of compromise (IoCs)

Von der neuen Version von DanaBot verwendete C&C-Server

  • 84.54.37[.]102
  • 89.144.25[.]243
  • 89.144.25[.]104
  • 178.209.51[.]211
  • 185.92.222[.]238
  • 192.71.249[.]51

Webinject- und Redirect-Server

  • 47.74.249[.]106
  • 95.179.227[.]160
  • 185.158.249[.]144

Beispiel-Hashes

Da regelmäßig neue Builds der DanaBot-Komponenten veröffentlicht werden, bieten wir hier nur eine unvollständige Auswahl von Hashes an.

ComponentSHA-1ESET detection name
Dropper98C70361EA611BA33EE3A79816A88B2500ED7844Win32/TrojanDropper.Danabot.O
Loader (x86), campaign ID=30DF17562844B7A0A0170C9830921C3442D59C73CWin32/Spy.Danabot.L
Loader (x64), campaign ID=3B816E90E9B71C85539EA3BB897E4F234A0422F85Win64/Spy.Danabot.G
Loader (x86), campaign ID=95F085B19657D2511A89F3172B7887CE29FC70792Win32/Spy.Danabot.I
Loader (x64), campaign ID=94075375A08273E65C223116ECD2CEF903BA97B1EWin64/Spy.Danabot.F
Main module (x86)28139782562B0E4CAB7F7885ECA75DFCA5E1D570Win32/Spy.Danabot.K
Main module (x64)B1FF7285B49F36FE8D65E7B896FCCDB1618EAA4BWin64/Spy.Danabot.C

Plugins

PluginSHA-1ESET detection name
RDPWrap890B5473B419057F89802E0B6DA011B315F3EF94Win32/Spy.Danabot.H
Stealer (x86)E50A03D12DDAC6EA626718286650B9BB858B2E69Win32/Spy.Danabot.C
Stealer (x64)9B0EC454401023DF6D3D4903735301BA669AADD1Win64/Spy.Danabot.E
SnifferDBFD8553C66275694FC4B32F9DF16ADEA74145E6Win32/Spy.Danabot.B
VNCE0880DCFCB1724790DFEB7DFE01A5D54B33D80B6Win32/Spy.Danabot.D
TOR73A5B0BEE8C9FB4703A206608ED277A06AA1E384Win32/Spy.Danabot.G

Hier können Sie mitdiskutieren