Sednit‑Backdoor: Eine Reise ins Zebrocy‑Land | WeLiveSecurity

Sednit‑Backdoor: Eine Reise ins Zebrocy‑Land

ESET-Forscher beleuchteten die Befehle, mit denen Sednit ihre beliebte Backdoor manuell steuern.

ESET-Forscher beleuchteten die Befehle, mit denen Sednit ihre beliebte Backdoor manuell steuern.

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: 

CommandsArguments
SCREENSHOTNone
SYS_INFONone
GET_NETWORKNone
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: 

CommandsArguments
REG_GET_KEYS_VALUESHKEY_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_EXECUTEecho %APPDATA%
ipconfig /all
netstat -aon
CMD_EXECUTEwmic 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: 

CommandArguments
UPLOAD_AND_EXECUTE_FILEC:\ProgramData\Office\MS\msoffice.exe
[…]
4D5A9000…

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

CommandArguments
DOWNLOAD_LISTC:\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.dbFirefox private keys (now named key4.db)
cert8.dbFirefox certificate database
logins.jsonFirefox encrypted password database
account.cfnThe Bat! (email client) account credentials
wand.datOpera password database

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

CommandArguments

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

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 backdoorDownloaded Delphi backdoor
Delphi compiler version14.0-15.032.0
32/64-bit32-bit64-bit
Configuration locationresource sectionno config (C&C is passed as an argument)
Number of commands53
Encryption algorithmAES ECBcustom
Lifetime on the computera few daysa 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-1ESET detection names
48f8b152b86bed027b9152725505fbf4a24a39fdWin32/TrojanDownloader.Sednit.CMT
1e9f40ef81176190e1ed9a0659473b2226c53f57Win32/HackTool.PSWDump.D
bfa26857575c49abb129aac87207f03f2b062e07Win32/PSW.Agent.OGE

MITRE ATT&CK techniques

TacticIDNameDescription
Initial AccessT1192Spearphishing LinkSpearphishing emails using a URL-shortener service to trick the victim into clicking on a link to a zip file containing malicious files.
ExecutionT1204User ExecutionTricks users into running an executable with an icon that looks like a Microsoft Word document.
T1085Rundll32rundll32.exe has been used to run a new, downloaded, malicious DLL.
T1047Windows Management InstrumentationWMI commands to gather victim host details.
T1053Scheduled TaskSchedule task to execute malicious binaries.
PersistenceT1060Registry Run Keys / Startup FolderRegistry key HKCU\Software\Microsoft\CurrentVersion\Run\ used for persistence.
T1122Component Object Model HijackingCOM hijacking for persistence.
Defense EvasionT1107File DeletionDeletes files (binaries and files created) after usage.
T1089Disabling Security ToolsKills processes
DiscoveryT1012Query RegistryRegistry keys enumeration
T1057Process DiscoveryLists running processes
T1082System Information DiscoveryUses systeminfo command to gather information about the victim.
T1083File and Directory DiscoveryUses echo ENV command to list the content of a directory.
CollectionT1005Data from Local SystemScans files that match extensions listed in the malware.
T1039Data from Network Shared DriveEnumerates remote and local drives and then exfiltrates files matching specific extensions.
T1025Data from Removable MediaEnumerates remote and local drives and then exfiltrates files matching specific extensions.
T1074Data StagedCreates file containing path of all files to exfiltrate.
T1056Input CaptureKeylogger feature.
T1113Screen CaptureScreenshot feature.
ExfiltrationT1020Automated ExfiltrationAutomatically prepare a file with all file paths to retrieve and send it.
T1022Data EncryptedData sent are hex-encoded, encrypted with a known algorithm or a custom one.
T1041Exfiltration Over Command and Control ChannelData are exfiltrated to a C&C server.
Command And ControlT1043Commonly Used PortDownloaders and backdoors use ports 80 or 443 to communicate with the C&C server.
T1024Custom Cryptographic ProtocolData sent are hex encoded, encrypted with AES or a custom algorithm.
T1132Data EncodingData sent are hex-encoded, encrypted with a known algorithm or a custom one.
T1001Data ObfuscationData sent are hex-encoded, encrypted with a known algorithm or a custom one.
T1008Fallback ChannelsA fallback C&C server is embedded in the configuration.
T1079Multilayer EncryptionData sent are hex-encoded, encrypted with a known algorithm or a custom one.
T1071Standard Application Layer ProtocolHTTP, HTTPS are used to communicate.
T1032Standard Cryptographic ProtocolData sent are hex-encoded, encrypted with a known algorithm or a custom one.

Hier können Sie mitdiskutieren