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
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/ |