Die Turla E-Spionage-Gruppe ist dafür bekannt, verschiedene Institutionen seit geraumer Zeit zu attackieren. Jetzt haben ESETs Malware Analysten eine neue Version der Second Stage Backdoor Carbon entdeckt, welches zur Grundausrüstung der Turla-Gruppe gehört. Im letzten Jahr untersuchte bereits die Schweizer GovCERT.ch Carbon-Angriffe auf das Schweizerische, staatliche Verteidigungsunternehmen RUAG Holding AG. Dieser Blogbeitrag behandelt die technischen Neuerungen der neusten Carbon-Version, die von ESET nun aufgedeckt wurden.

Weg der Kompromittierung

Die Mitglieder der Turla-Gruppe arbeiten sehr umsichtig und in Etappen. Über die Arbeitsumgebung potenzieller Opfer wird sich von Beginn an genau informiert, bevor ausgefeilte Tools wie Carbon zum Einsatz kommen.

Die klassische Kompromittierung mit Carbon beginnt mit dem Empfangen einer Spear-Phishing-E-Mail oder dem Besuchen einer vorher kompromittierten Webseite, die normalerweise häufiger aufgesucht wird (Watering-Hole-Attack).

Nach einer erfolgreichen Attacke wird die First Stage Backdoor „Tavdig“ auf dem Computer des Opfers installiert. Sobald die Aufklärungsphase vorüber ist, implementieren die Cracker dann die Second Stage Backdoor Carbon.

Globale Architektur – Der Aufbau der Carbon Malware

Zusammengefasst setzt sich das Carbon Framework aus folgenden Komponenten zusammen:

  • Ein Dropper installiert die Carbon-Komponenten und die Konfigurationsdatei
  • Ein Loader Implementiert die Bedienung
  • Eine Orchestrierung koordiniert die verschiedenen Aufgaben, leitet sie an andere Computer im Netzwerk weiter und injiziert dynamische Programmbibliotheken (DLLs), damit die Kommunikation mit dem C&C-Server stattfinden kann.
  • Eine Komponente für die C&C-Kommunikation

Die Konfigurationsdatei der Carbon Malware

Die Konfigurationsdatei beeinflusst das Verhalten der Malware. Das Dateiformat ist dem Windows .inf-Format sehr ähnlich. Unter anderem beinhaltet die Malware-Konfigurationsdatei:

  • Eine „object_id“, die eine einzigartige uuid für die Identifizierung der Opfer darstellt
  • Eine Liste von Prozessen in denen Code implementiert werden soll (iproc)
  • Die Häufigkeit und Zeit für die Ausführung einer Aufgabe / Backup Logs / Verbindungen zum C&C-Server [TIME]
  • Die IP-Adresse anderer Computer im Netzwerk [CW_LOCAL]
  • Die C&C-Server-Adresse [CW_INET]
  • Die Names Pipes, welche für die Kommunikation mit der eingebetteten Programmbibliothek und anderen Computern verantwortlich sind [TRANSPORT]

Die Konfigurationsdatei wird unter Umständen zu einem späteren Zeitpunkt aktualisiert.

Carbon 3.77 Konfigurationsdatei

[NAME]
object_id=
iproc =
iexplore.exe,outlook.exe,msimn.exe,firefox.exe,opera.exe
chrome.exeex = #,netscape.exe,mozilla.exe,adobeupdater.exe,chrome.exe

[TIME]
user_winmin = 1800000
user_winmax = 3600000
sys_winmin = 3600000
sys_winmax = 3700000
task_min = 20000
task_max = 30000
checkmin = 60000
checkmax = 70000
logmin = 60000
logmax = 120000
lastconnect=111
timestop=
active_con = 900000
time2task=3600000

[CW_LOCAL]
quantity = 0

[CW_INET]
quantity = 3
address1 = doctorshand.org:80:/wp-content/about/
address2 = www.lasac.eu:80:/credit_payment/url/
address3 = www.shoppingexpert.it:80:/wp-content/gallery/

[TRANSPORT]
system_pipe = comnap
spstatus = yes
adaptable = no

[DHCP]
server = 135

[LOG]
logperiod = 7200

[WORKDATA]
run_task=
run_task_system=

 

Der Dropper

Der Dropper ist die einzige ausführbare Datei, die keine DLL ist. Außerdem ist es der allererste binäre Code, der ausgeführt wird. Er extrahiert die anderen Komponenten von ihren Ressourcen.

Die Binärdateien, die zum Laden der Hauptkomponenten erforderlich sind, werden in das Windows System-Verzeichnis installiert. Die Orchestrierung, die Bibliotheken und die Konfigurationsdatei landen in der Arbeitsumgebung von Carbon.

In eine willkürliche „.inf“-Datei aus dem %SystemRoot%\INF-Verzeichnis hängt die Malware einen neuen Abschnitt an. Der Name entspricht der Datenträger-Seriennummer des kompromittierten Systems. Außerdem wird der Wert „root“ mit der gewählten Arbeitsumgebung von Carbon geschaffen.

[5049654F]

root="C:\Program Files\Windows Portable Devices"

 

Der Loader

Diese Komponente braucht es, um die Orchestrierung zu initiieren.

Es wird ein Dienst bereitgestellt, der die Persistenz von Carbon gewährleistet. Dieser kann unter den Namen "srservice", "ipvpn" or „hkmsvc“ auftauchen. Das hängt davon ab, welches Betriebssystem auf dem Computer des Opfers läuft.

Der Loader durchsucht den gesamten „%windir%\inf“-Ordner nach der Datei, die den Carbon Basispfad enthält. Dadurch findet er die Arbeitsumgebung von Carbon.

Schließlich ruft der Loader die Funktion „ModuleStart“ (in Carbon 3.71) bzw. „ModStart“ (seit Carbon 3.77) für die Orchestrierung auf.

Orchestrierung

Die Orchestrierung ist ein Hauptbestandteil der Carbon Arbeitsumgebung. Sie wird dafür verwendet, Code in einen über das Internet kommunizierenden Prozess einzubinden und dazu, Aufgaben von den dynamischen Programmbibliotheken an andere Computer im Netzwerk durch Named Pipes oder TCP zu senden.

Kommunikation mit dem C&C Server

Der Code dieses Prozesses wird verwendet, um neue Aufgaben vom C&C-Server abzurufen und neue Dateien an den Server zu senden (die Dateien sind in "C_56743.NLS" / "dsntype.gif" aufgeführt). Außerdem werden neue Aufgaben an die Orchestrierung übermittelt.

Bevor überhaupt eine Kommunikation mit dem C&C-Server oder mit anderen Computern im Netzwerk stattfindet, überprüft die Malware das kompromittierte System auf Sniffer bzw. Netzwerkanalyse-Tools wie:

  • TCPdump
  • windump
  • ethereal
  • wireshark
  • ettercap
  • snoop
  • dsniff

Wenn einer dieser Prozesse läuft, wird keine Kommunikation initiiert.

Erste Anfrage

Zunächst wird eine zufällige C&C-Serveradresse aus dem Abschnitt [CW_INET] der Konfigurationsdatei ausgewählt. Wenn der Port- und der HTTP-Ressourcenpfad nicht angegeben sind, ist der Standardwert für den Port 80 und "/javascript/view.php". Dann stellt die Malware den User-Agent fest.

Das Feld "trans_timemax" aus dem Abschnitt [TIME] wird abgerufen. Es wird verwendet, um das Timeout für Internet-Anfragen (über InternetSetOption()) festzulegen. Standartmäßig ist ein Timeout von 10 Minuten eingestellt.

Eine erste GET-Anfrage wird auf der Root-Seite des C&C-Servers durchgeführt. Die Malware überprüft, ob der Host noch zu erreichen ist. Wenn kein Netzwerkanalyse-Tool auf dem kompromittierten System läuft, wird eine neue Anforderung an den C&C-Server gestellt. Der Anfrage wird ein "PHPSESSID"-Cookie mit der Opfer-uuid hinzugefügt – genauso wie der Header "Referer", der auf die C&C-Server URL zeigt.

Auf die GET-Anfrage erwartet die Malware eine Antwort der folgenden Art:

<input name="%name%" value="%data_in_b64%">

Beinhaltet das Feld „value“ etwas, steht eine neue Aufgabe für den kompromittierten Rechner zur Verfügung.

Datensenden an den C&C-Server

Turla Datensenden an den C&C-Server

Die obige Darstellung erläutert die Vorgehensweise, wie Daten an den C&C-Server gesendet werden.

Dieser Beitrag ist nur eine kleine Zusammenfassung der neu entdeckten Malware-Version Carbon. Wer gerne tiefer in die Materie eindringen möchte, sollte sich unbedingt das Whitepaper „Carbon“ von ESET ansehen.

Carbon Malware Footprint

SHA1 hash
7f3a60613a3bdb5f1f8616e6ca469d3b78b1b45b
a08b8371ead1919500a4759c2f46553620d5a9d9
4636dccac5acf1d95a474747bb7bcd9b1a506cc3
cbde204e7641830017bb84b89223131b2126bc46
1ad46547e3dc264f940bf62df455b26e65b0101f
a28164de29e51f154be12d163ce5818fceb69233
7c43f5df784bf50423620d8f1c96e43d8d9a9b28
7ce746bb988cb3b7e64f08174bdb02938555ea53
20393222d4eb1ba72a6536f7e67e139aadfa47fe
1dbfcb9005abb2c83ffa6a3127257a009612798c
2f7e335e092e04f3f4734b60c5345003d10aa15d
311f399c299741e80db8bec65bbf4b56109eedaf
fbc43636e3c9378162f3b9712cb6d87bd48ddbd3
554f59c1578f4ee77dbba6a23507401359a59f23
2227fd6fc9d669a9b66c59593533750477669557
87d718f2d6e46c53490c6a22de399c13f05336f0
1b233af41106d7915f6fa6fd1448b7f070b47eb3
851e538357598ed96f0123b47694e25c2d52552b
744b43d8c0fe8b217acf0494ad992df6d5191ed9
bcf52240cc7940185ce424224d39564257610340
777e2695ae408e1578a16991373144333732c3f6
56b5627debb93790fdbcc9ecbffc3260adeafbab
678d486e21b001deb58353ca0255e3e5678f9614

C&C Server-Adressen (hacked Websites als First Level of Proxies missbraucht)
soheylistore.ir:80:/modules/mod_feed/feed.php
tazohor.com:80:/wp-includes/feed-rss-comments.php
jucheafrica.com:80:/wp-includes/class-wp-edit.php
61paris.fr:80:/wp-includes/ms-set.php
doctorshand.org:80:/wp-content/about/
www.lasac.eu:80:/credit_payment/url/