Zu den zwei größten, durch Malware verursachten Cybersecurity-Vorfällen zählen zum einen die Industroyer-Cyberangriffe auf das ukrainische Stromnetzt und die beispiellose NotPetya Ransomware-Welle. Wir wollten herausfinden, was die beiden Cyber-Vorfälle miteinander verbindet.

Das erste durch Malware verursachte Blackout in der Geschichte fand im Dezember 2015 statt. Schuld war das BlackEnergy Malware Toolkit. ESET-Forscher verfolgen schon länger die Aktivitäten der APT-Gruppe hinter BlackEnergy – sowohl vor als auch nach dem Blackout. Nach dem Stromausfall 2015 schienen sie von BlackEnergy abzulassen und sich zu dem zu entwickeln, was wir heute TeleBots nennen.

Wenn wir in unseren Beiträgen „APT-Gruppen“ beschreiben, dann stellen wir Beziehungen unter technischen Gesichtspunkten her, wie zu Code-Ähnlichkeiten, gemeinsam genutzte C&C-Infrastrukturen, Malware Execution Chains und so weiter. An den Untersuchungen sind wir nicht direkt beteiligt und auch nicht an der Identifizierung der Personen, welche die Malware entwickeln und / oder verbreiten – auch wissen wir nichts über deren zwischenmenschliche Beziehungen.

Außerdem ist der Begriff „APT-Gruppe“ nur vage definiert. Oft wird dieser lediglich im Zusammenhang mit der Bündelung von Malware-Indikatoren eingesetzt. Das ist auch einer der Gründe, warum wir Spekulationen über die Zuordnung von Angriffen zu Nationalstaaten und dergleichen unterlassen.

Die ESET-Forschungen konnten zeigen, dass es Verbindungen zwischen den BlackEnergy Cyberattacken (auch auf andere kritische Infrastrukturen als auf das Stromnetz) und einer Serie von Malware-Kampagnen gegen den ukrainischen Finanzsektor durch die TeleBots-Gruppe gibt. Als im Juni 2017 viele große Unternehmen weltweit von der Diskcoder.C Ransomware aka Petya / NotPetya getroffen wurden – meistens als unbeabsichtigte Kollateralschäden – entdeckten wir, dass die Ransomware-Welle sich von Unternehmen beginnend ausbreitete, welche bereits von der TeleBots Backdoor betroffen waren. Diese Kompromittierung resultierte wiederum aus der weitverbreiteten M.E.Doc-Finanzsoftware.

Wie passt also Industroyer, das ausgeklügelte Malware-Framework, das den Blackout vom Dezember 2016 verursachte, in all das? Kurz nachdem wir unsere Entdeckung veröffentlichten, begannen einige IT-Sicherheitsunternehmen und Nachrichtenmedien mit wilden Spekulationen über eine Verbindung der BlackEnergy- / TeleBots-Gruppe (teilweise auch Sandstorm) mit Industroyer. Bisher konnte allerdings niemand konkrete Beweise dafür vorlegen – bis jetzt.

Win32/Exaramel ist die Verbindung

Im April 2018 entdeckten wir neue Aktivitäten der TeleBots-Gruppe: ein Versuch, eine neue Backdoor zu verbreiten, die ESET-Produkte als Win32/Exaramel enttarnen. Unsere Analyse legt nahe, dass diese TeleBots-Backdoor eine verbesserte Version der wichtigsten Industroyer-Backdoor ist – der bis dato fehlende Beweis.

Analyse der Win32/Exaramel Backdoor

Auf das Computer-System gelangt die Win32/Exaramel Backdoor mit Hilfe eines Droppers. Deren Metadaten verraten, dass die Backdoor mit Microsoft Visual Studio kompiliert wurde – wahrscheinlich nur kurz bevor der Ausbringung auf den spezifischen, anvisierten Computer.

PE-Zeitstempel in den Metadaten des Win32/Exaramel Backdoor Droppers

Abbildung 1: PE-Zeitstempel in den Metadaten des Win32/Exaramel Backdoor Droppers

Nach der Ausführung integriert der Dropper die Win32/Exaramel Backdoor-Binärdatei im Windows-Systemverzeichnis und erstellt und startet einen Windows-Dienst namens wsmproav mit der Beschreibung "Windows Check AV". Der Dateiname und die Windows-Dienstbeschreibung sind im Dropper fest codiert.

Registry-Einstellungen des durch Win32/Exaramel hinzugefügten Windows-Diensts

Abbildung 2: Registry-Einstellungen des durch Win32/Exaramel hinzugefügten Windows-Diensts

Darüber hinaus schreibt der Dropper die Backdoor-Konfiguration im XML-Format in die Windows-Registry.

Win32/Exaramel Backdoor XML-Konfiguration

Abbildung 3: Win32/Exaramel Backdoor XML-Konfiguration

Die Konfiguration enthält mehrere Abschnitte:

  • Interval - Zeit in Millisekunden für die Sleep-Funktion
  • Servers - Liste der Befehls- und Kontrollserver (C&C)
  • Check - Website, auf der festgestellt wird, ob dem Host eine Internetverbindung zur Verfügung steht.
  • Proxy - Proxy-Server im Host-Netzwerk
  • Storage - Pfad zum Speichern von Dateien, die für die Exfiltration geplant sind.

Wie aus der ersten Zeile der Konfiguration hervorgeht, gruppieren die Angreifer ihre Ziele basierend auf den verwendeten Sicherheitslösungen. Ähnliches Verhalten findet man im Industroyer-Toolset – insbesondere einige der Industroyer-Backdoors wurden als Antiviren-Dienste getarnt (unter dem Namen "avtask.exe") und gleich gruppiert.

Eine weitere interessante Tatsache ist, dass die Backdoor C&C-Server Domainnamen verwendet, die ESET-Domains nachahmt. Zusätzlich zu esetsmart[.]org aus der obigen Konfiguration haben wir eine weitere ähnliche Domain gefunden: um10eset[.]net. Diese wird von der kürzlich entdeckten Linux-Version der Telebots-Malware verwendet. Natürlich stehen die von den Cyberkriminellen gemanagten Servern in keiner Verbindung mit der legitimen Server-Infrastruktur von ESET. Uns ist bisher nicht bekannt, dass Exaramel auch Domain-Namen anderer Antiviren-Hersteller nachahmt.

Sobald die Hintertür aktiviert ist, stellt diese eine Verbindung zu einem C&C-Server her und empfängt ausführbare Befehle. Hier ist eine Liste aller verfügbaren Kommandos:

  • Launch process
  • Launch process under specified Windows user
  • Write data to a file in specified path
  • Copy file into storage sub-directory (Upload file)
  • Execute shell command
  • Execute shell command as specified Windows user
  • Execute VBS code using ScriptControl.1

Der Code der Befehlsschleife und die Implementierungen der ersten sechs Befehle ähneln stark der Backdoor des Industroyer-Toolsets.

Vergleich zwischen dekompiliertem Code der Win32/Exaramel-Backdoor (links) und der Win32/Industroyer-Backdoor (rechts

Abbildung 4: Vergleich zwischen dekompiliertem Code der Win32/Exaramel-Backdoor (links) und der Win32/Industroyer-Backdoor (rechts

Beide Malware-Familien verwenden eine Berichtsdatei zum Speichern der Ergebnisausgabe der ausgeführten Shell-Befehle und gestarteten Prozesse. Im Fall der Win32/Industroyer-Backdoor wird die Berichtsdatei in einem temporären Ordner mit randomisierten Dateinamen gespeichert – Bei der Win32/Exaramel-Backdoor lautet die Berichtsdatei report.txt und der Dateispeicherpfad ist in der Backdoor-Konfigurationsdatei definiert.

Um die Standardausgabe stdout und den Standardfehler stderr in die Berichtsdatei umzuleiten, setzen beide Backdoors die Parameter hStdOutput und hStdError in die entsprechende Berichtsdatei. Das ist eine weitere Ähnlichkeit zwischen den Malware-Familien.

Vergleich zwischen dekompiliertem Code der Win32/Exaramel-Backdoor (oben) und der Win32/Industroyer-Backdoor (unten).

Abbildung 5: Vergleich zwischen dekompiliertem Code der Win32/Exaramel-Backdoor (oben) und der Win32/Industroyer-Backdoor (unten).

Möchten die Malware-Operatoren Daten vom PC eines Opfers stehlen, müssen sie nur die entsprechenden Daten kopieren und in das data-Unterverzeichnis des in der Konfigurationsdatei definierten Speicherpfads einfügen. Sobald die Backdoor eine neue Verbindung zum C&C-Server herstellt, werden alle Dateien automatisch komprimiert, verschlüsselt und versendet.

Der Hauptunterschied zwischen der Backdoor des Industroyer-Toolsets und der neuen TeleBot-Hintertür besteht darin, dass letztere das XML-Format für die Kommunikation und Konfiguration, anstelle eines benutzerdefinierten Binärformats, verwendet.

Exaramel Password-Stealer

Neben der Exaramel-Backdoor, benutzt die TeleBots weitere bereits bekannte Tools. Dazu zählen beispielsweise der Password-Stealer CredRaptor (als PAI von den Cyberkriminellen bezeichnet) und das ein wenig modifizierte Mimikatz.

Das benutzerdefinierte Password-Stealer-Tool von CredRaptor, das seit 2016 exklusiv von dieser Gruppe verwendet wird, wurde leicht verbessert. Im Gegensatz zu früheren Versionen sammelt es gespeicherte Passwörter nun nicht nur von Browsern, sondern auch von Outlook und vielen FTP-Clients. Hier ist eine Liste der anvisierten Anwendungen:

  • BitKinex FTP
  • BulletProof FTP Client
  • Classic FTP
  • CoffeeCup
  • Core FTP
  • Cryer WebSitePublisher
  • CuteFTP
  • FAR Manager
  • FileZilla
  • FlashFXP
  • Frigate3
  • FTP Commander
  • FTP Explorer
  • FTP Navigator
  • Google Chrome
  • Internet Explorer 7 – 11
  • Mozilla Firefox
  • Opera
  • Outlook 2010, 2013, 2016
  • SmartFTP
  • SoftX FTP Client
  • Total Commander
  • TurboFTP
  • Windows Vault
  • WinSCP
  • WS_FTP Client

Durch diese Verbesserung können Angreifer nun auch einfacher die Anmeldeinformationen eines Webmasters für die betreute Website und Anmeldeinformationen für Server in internen Infrastrukturen erfassen. Sobald ein Zugriff zu solchen Servern besteht, können Angreifer dort zusätzliche Backdoors ablegen. Üblicherweise werden diese Server von einem anderen Betriebssystem als mit Windows betrieben. Die Cyber-Angreifer müssen ihre Backdoors also anpassen.

Während unserer Incident Response entdeckten wir eine von der TeleBots-Gruppe verwendete Linux-Backdoor. Wir tauften dieses Linux-Hintertürchen Linux/Exaramel.A.

Analyse der Linux/Exaramel.A-Backdoor

Die Hintertür ist in der Programmiersprache „Go“ geschrieben und als 64-Bit-ELF-Binärdatei kompiliert. Cyber-Angreifer können die Hintertür in einem beliebigen Verzeichnis unter einem ebenso beliebigen Namen ablegen.

Wenn die Backdoor von Angreifern mit der Zeichenfolge 'none' als Befehlszeilenargument ausgeführt wird, versucht sie, Persistenz zu erreichen, um nach einem Neustart automatisch zu starten. Wenn die Hintertür nicht unter einem root-Konto ausgeführt wird, verwendet man die crontab-Datei. Als root-User unterstützt das Backdoor verschiedene Linux-Init-Systeme. Es bestimmt, welches Init-System gerade verwendet wird, indem es folgenden Befehl ausführt:

strings /sbin/init |  awk 'match($0, /(upstart|systemd|sysvinit)/){ print substr($0, RSTART, RLENGTH);exit; }'

Abhängig vom Ergebnis des Befehls verwendet es die folgenden hartcodierten Speicherorte für die Persistenz:

Init system Location
sysvinit /etc/init.d/syslogd
upstart /etc/init/syslogd.conf
systemd /etc/systemd/system/syslogd.service

Beim Start versucht die Backdoor eine Konfigurationsdatei zu öffnen, die im selben Verzeichnis wie die Hintertür unter dem Namen config.json gespeichert ist. Wenn diese Konfigurationsdatei nicht existiert, wird eine neue Datei angelegt. Die Konfiguration wird mit dem Schlüssel s0m3t3rr0r mit Hilfe des RC4-Algorithmus verschlüsselt.

Entschlüsselte JSON-Konfiguration des Linux/Exaramel-Backdoors

Abbildung 6: Entschlüsselte JSON-Konfiguration des Linux/Exaramel-Backdoors

Die Backdoor stellte eine Verbindung zur hardcodierten C&C-Serveradresse (default: 176.31.225[.]204) oder zu einem C&C-Server aus der Liste der Konfigurationsfile von Hosts Value her. Die Verbindung wird über HTTPS aufgebaut. Unterstützt werden folgende Befehle:

Command Purpose
App.Update Updates itself to a newer version
App.Delete Deletes itself from the system
App.SetProxy Sets proxy in configuration
App.SetServer Updates C&C server in configuration
App.SetTimeout Sets timeout value (time between connections to C&C server)
IO.WriteFile Downloads a file from a remote server
IO.ReadFile Uploads a file from local disk to C&C server
OS.ShellExecute Executes a shell command

Fazit

Die Entdeckung von Exaramel zeigt, dass die TeleBots-Gruppe auch im Jahr 2018 noch aktiv ist und die Cyber-Angreifer ihre Tools und Taktiken verbesserten.

Die starken Code-Ähnlichkeiten zwischen der Win32/Exaramel-Backdoor und der Industroyer-Backdoor ist der erste publike Beweis, der Industroyer mit TeleBots und somit mit NotPetya und BlackEnergy verbindet.

In unserem Fall halten wir es für unwahrscheinlich, dass sich die Codes zufällig ähneln oder dass jemand Drittes hier versucht, eine falsche Fährte zu legen.

Interessant ist die Tatsache, dass die Cyberkriminellen Domain-Namen mit „eset“ verwendeten. Die bösartigen Netzwerkaktivitäten haben allerdings in keiner Weise mit der ESET-Serverstruktur zu tun.

Alle legitimen ESET-Domains haben wir auf der folgenden Webseite zusammengestellt:

https://support.eset.com/kb332/?locale=de_DE

Die ESET-Forscher werden die Aktivitäten der Cyberkriminellen auch weiterhin verfolgen.

Indicators of Compromise (IoCs)

ESET detection names
Win32/Exaramel trojan
Win32/Agent.TCD trojan
Linux/Agent.EJ trojan
Linux/Exaramel.A trojan
Win32/PSW.Agent.OEP trojan
Win32/RiskWare.Mimikatz.Z application
Win64/Riskware.Mimikatz.AI application

SHA-1 HASHES
TeleBots Win32/Exaramel backdoor
65BC0FF4D4F2E20507874F59127A899C26294BC7
3120C94285D3F86A953685C189BADE7CB575091D
Password Stealer
F4C4123849FDA08D1268D45974C42DEB2AAE3377
970E8ACC97CE5A8140EE5F6304A1E7CB56FA3FB8
DDDF96F25B12143C7292899F9D5F42BB1D27CB20
64319D93B69145398F9866DA6DF55C00ED2F593E
1CF8277EE8BF255BB097D53B338FC18EF0CD0B42
488111E3EB62AF237C68479730B62DD3F52F8614
Mimikatz
458A6917300526CC73E510389770CFF6F51D53FC
CB8912227505EF8B8ECCF870656ED7B8CA1EB475
Linux/Exaramel
F74EA45AD360C8EF8DB13F8E975A5E0D42E58732

C&C servers
um10eset[.]net (IP: 176.31.225.204)
esetsmart[.]org (IP: 5.133.8.46)