ESET-Forscher haben eine zuvor unbekannte Lazarus-Backdoor entdeckt, mit der ein Logistikunternehmen in Südafrika angegriffen wurde. Die Hintertür, die sie Vyveva genannt haben, besteht aus mehreren Komponenten und kommuniziert mit ihrem C&C-Server über das Tor-Netzwerk. Bisher konnten wir das Installationsprogramm, den Loader und die Haupt-Payload finden - eine Backdoor mit einer TorSocket-DLL. Der bisher unbekannte Angriff wurde im Juni 2020 entdeckt.
Obwohl Vyveva seit mindestens Dezember 2018 verwendet wird, ist sein initialer Angriffsvektor bisher noch unbekannt. Unsere Telemetriedaten deuten auf eine gezielte Auslieferung hin, da wir nur zwei angegriffene Maschinen gefunden haben, die beide Server des Logistikunternehmens in Südafrika sind. Die Backdoor bietet Funktionen zur Ausleitung von Dateien, zum Timestomping (Änderung oder Löschung von Zeitstempeln zur Verschleierung), zur Informationssammlung über die Opfermaschine und ihre Laufwerke. Außerdem fanden wir andere gängige Backdoor-Funktionen, wie das Ausführen von beliebigem Code, der von den Betreibern der Malware angegeben wird. Dies deutet darauf hin, dass das Ziel der Operation höchstwahrscheinlich Spionage ist.
Dieser Blogpost ist die erste öffentliche Analyse der Komponenten von Vyveva.
Zuschreibung an Lazarus
Vyveva-Code hat mehrere Ähnlichkeiten mit älteren Malware-Samples von Lazarus, welche von ESET-Produkten als NukeSped-Malware-Familie erkannt werden. Die Ähnlichkeiten enden hier jedoch nicht: Auch die Verwendung von gefälschtem TLS in der Netzwerkkommunikation, Befehlszeilenausführungsketten und die Art der Verwendung von Verschlüsselungs- und Tor-Diensten weisen alle auf Lazarus hin. Daher können wir Vyveva mit hoher Sicherheit dieser APT-Gruppe zuordnen.
Ein Beispiel für die zahlreichen Code-Ähnlichkeiten ist in Abbildung 1 dargestellt – das Auflösen eindeutig benannter Tor-Bibliotheksexporte.
- 92F5469DBEFDCEE1343934BE149AFC1241CC8497 msobjs.drx Vyveva-Backdoor
- BF98EA1326E5F8C351E68C79B5D1E0164C7BE728 taskhosts.exe Win32/NukeSped.HV trojan
Technische Analyse
Bis jetzt ist es uns gelungen, drei der zahlreichen Komponenten zu finden, aus denen Vyveva besteht - Installer, Loader und Backdoor. Der Installer ist die chronologisch erste Stufe, die gefunden wurde. Sie setzt die Existenz anderer, bereits auf der Maschine vorhandenen, Komponenten voraus, was auf die Existenz einer früheren, unbekannten Stufe, einen Dropper, hindeutet. Der Loader dient zum Entschlüsseln der Backdoor mit einem einfachen XOR-Entschlüsselungsalgorithmus.
Abbildung 2 zeigt die Funktionalität des Installationsprogramms, der Backdoor und der Tor-Bibliothek.
Installer
Das Installationsprogramm hat zwei Hauptziele: Es erstellt einen Dienst, der die Persistenz des Backdoor-Loaders sicherstellt, und es speichert die eingebettete Standard-Backdoor-Konfiguration in der Registrierung.
Um einen legitim aussehenden Dienst zu erstellen, werden seine Attribute wie Dienst- und Anzeigename mit einer Kombination von Wörtern aus den Attributen vorhandener, zufällig ausgewählter Dienste gebildet. Es ist auch möglich, diese Attribute dem Installationsprogramm über die Befehlszeilenparameter -dll, -svc, -disp, -desc, und -group mitzugeben. In freier Wildbahn haben wir folgende Verwendung der Parameter beobachtet:
<SYSDIR>\powerctl.exe -svc powerctl -dll powerctl.dll
Für die letztere Aufgabe legt das Installationsprogramm zuerst einen zufällig generierten Wert als Konfigurationsinfektions-ID fest, die jedes Opfer eindeutig identifiziert, und speichert sie dann in der Registrierung, wie in Abbildung 3 dargestellt.
[HKLM\SOFTWARE\Microsoft\DirectX]
UsageMask = <CONFIG_DATA>
Abbildung 3. Konfigurationsregistrierungswert
Einer der Einträge in der Konfiguration ist eine Liste verschlüsselter C&C-Server: Beispielsweise wird das von uns analysierte Installations-Sample mit den folgenden C&Cs konfiguriert:
- 4bjt2rceijktwedi[.]onion:80
- cwwpxpxuswo7b6tr[.]onion:80
Backdoor-Funktionalität
Die Backdoor, die Hauptkomponente von Vyveva, stellt eine Verbindung zu C&C-Servern her und führt Befehle aus, die von den Hintermännern ausgegeben werden. Sie verfügt über 23 Befehle, von denen einige asynchron sind und in eigenen Threads ausgeführt werden. Die meisten von ihnen sind gewöhnliche Befehle für Datei- und Prozessoperationen oder das Sammeln von Informationen, aber es gibt auch einen weniger gebräuchlichen Befehl für die Manipulation der Dateizeitstempel (Timestomping). Die Hintertür kann auch Datei-Metadaten für Erstellung, Schreiben und Zugriff von einer „Spenderdatei“ in eine Zieldatei kopieren oder ein zufälliges Datum aus den Jahren 2000 bis 2004 verwenden.
Andere erwähnenswerte Befehle sind der Datei-Upload-Befehl von Vyveva und der Befehl 0x26. Der Befehl zum Hochladen von Dateien kann Verzeichnisse rekursiv ausleiten und unterstützt das Filtern von Dateierweiterungen, um z. B. nur Office-Dokumente auszuwählen. Der Befehl 0x26 zeigt die Existenz einer anderen, unbekannten Komponente an, die wir zum Zeitpunkt des Schreibens noch nicht beobachtet haben.
Die vollständige Liste der Befehle ist in Tabelle 1 aufgeführt.
Tabelle 1. Vyveva-Backdoor-Befehle
ID | Description |
---|---|
0x03 | Antworte auf "Ping" vom Server |
0x10 | Informationen zum Computer abrufen - Benutzername, Computername, IP, Codepage, Betriebssystemversion, Betriebssystemarchitektur, Tickanzahl, Zeitzone, aktuelles Verzeichnis |
0x11 | Informationen zu Laufwerken abrufen - Typ, Größe, Name, Seriennummer, Dateisystemtyp |
0x12 | Daten in die angegebene Datei schreiben, optional Timestomp. |
0x13 |
o Für jeden Eintrag - Name, Attribute
|
0x14 |
|
0x15 | Aktuelles Verzeichnis auf angegebenes Verzeichnis festlegen |
0x16 | Angegebenen Prozess erstellen |
0x17 | Informationen zum Ausführen von Prozessen abrufen - PID, PPID, ausführbarer Dateipfad |
0x18 | Prozesse durch PID oder ausführbaren Dateipfad beenden |
0x19 |
Der Befehl verwendet eine Formatzeichenfolge, die auf die Ausführung über cmd.exe hinweist Wenn die Ausgabe leer ist, wird stattdessen die eindeutige Zeichenfolge " |
0x1A |
|
0x1B | Kopieren der Datei-Metadaten für Erstellung, Schreiben und Zugriff von einer Quelldatei oder dem Verzeichnis in die Zieldatei oder das Verzeichnis. Wenn die Quelle nicht vorhanden ist, wird eine Zufallszeit aus dem Zeitraum 2000-2004 für die Erstellungs- und die letzte Schreibzeit verwendet. Die Zugriffszeit bleibt unverändert. |
0x1C |
|
0x1D | Aktuelles Konfigurations-Blob festlegen, in Registrierung speichern |
0x1E | Aktuellen Konfigurations-Blob abrufen |
0x1F | Laufwerksüberwachung aktivieren / deaktivieren (Konfigurationsfeld enable_drive_watchdog) |
0x20 | Sitzungs-Watchdog aktivieren / deaktivieren (Konfigurationsfeld enable_session_watchdog) |
0x21 | Konfigurationswert in Bezug auf die Verzögerung der Backdoor-Ausführung festlegen (Konfigurationsfeld delay_until_time) |
0x23 | Daten speichern, die vom asynchronen Befehl verwendet werden (bezogen auf die Befehle 0x12, 0x13) |
0x24 | Beenden Sie die Ausführung des asynchronen Befehls (bezogen auf die Befehle 0x12, 0x13). |
0x25 | Konfigurationswert für die Verzögerung zwischen fehlgeschlagenen C&C-Verbindungsversuchen festlegen (Konfigurationsfeld wait_minutes) |
0x26 |
|
Von besonderem Interesse sind die Watchdogs der Backdoor, die optional aktiviert oder deaktiviert werden können. Es gibt einen Laufwerk-Watchdog, der zum Überwachen neu verbundener und getrennter Laufwerke verwendet wird, und einen Sitzungs-Watchdog, der die Anzahl der aktiven Sitzungen (d.h. angemeldete Benutzer) überwacht. Diese Komponenten können eine Verbindung zum C&C-Server außerhalb des regulären, vorkonfigurierten Drei-Minuten-Intervalls sowie bei neuen Laufwerks- und Sitzungsereignissen auslösen.
Konfiguration
Die Konfiguration der Backdoor, die anfänglich vom Installationsprogramm festgelegt wird, wird aus dem Registrierungswert gelesen (siehe Abbildung 3). Wenn die Konfiguration durch einen C&C-Befehl geändert wird, wird der in der Registrierung gespeicherte Wert aktualisiert. Eine beispielhafte Konfiguration und ihre Struktur sind in Abbildung 4 dargestellt.
Das Feld wait_minutes gibt die Wartezeit vor der nächsten Verbindung zum C&C nach einem fehlgeschlagenen Verbindungsversuch an. Wenn die Ausführung der Hintertür bis zu einer bestimmten Zeit und einem bestimmten Datum verzögert werden muss, kann dies im Feld delay_until_time angegeben werden. Das Feld encrypted_cncs ist eine verschlüsselte Zeichenfolge, die durch Semikolons getrennte C&Cs enthält.
Tor-Bibliothek
Vyveva verwendet die auf dem offiziellen Tor-Quellcode basierende Tor-Bibliothek, um mit einem C&C-Server zu kommunizieren, der zufällig aus der Konfiguration ausgewählt wurde. Sie kontaktiert den C&C in Abständen von drei Minuten und sendet Informationen über den Computer des Opfers und seine Laufwerke, bevor Befehle empfangen werden. Das Exportverzeichnis der Backdoor enthält die Datei TorSocket.dll mit selbsterklärenden Exporten close_ch, connect_ch, open_ch, read_ch, write_ch.
Fazit
Vyveva ist eine weitere Ergänzung des umfangreichen Malware-Arsenals von Lazarus. Der Angriff auf ein Unternehmen in Südafrika zeigt auch die breite geografische Ausrichtung dieser APT-Gruppe.
Falls Sie Fragen haben oder Samples zu diesem Thema einreichen möchten, wenden Sie sich an uns: threatintel@eset.com.
Indicators of Compromise (IoCs)
Samples
SHA-1 | Filename | ESET detection name | Description |
---|---|---|---|
DAD50AD3682A3F20B2F35BE2A94B89E2B1A73067 | powerctl.exe | Win32/NukeSped.HX | Installer |
69529EED679B0C7F1ACC1FD782A4B443CEC0CF83 | powerctl.dll | Win32/NukeSped.HX | Loader (x86) |
043ADDFB93A10D187DDE4999D78096077F26E9FD | wwanauth.dll | Win64/NukeSped.EQ | Loader (x64) |
1E3785FC4FE5AB8DAB31DDDD68257F9A7FC5BF59 | wwansec.dll | Win32/NukeSped.HX | Loader (x86) |
4D7ADD8145CB096359EBC3E4D44E19C2735E0377 | msobjs.drx | - | Backdoor (encrypted) |
92F5469DBEFDCEE1343934BE149AFC1241CC8497 | msobjs.drx | Win32/NukeSped.HX | Backdoor (decrypted with fixed MZ header) |
A5CE1DF767C89BF29D40DC4FA6EAECC9C8979552 | JET76C5.tmp | - | Backdoor Tor library (encrypted) |
66D17344A7CE55D05A324E1C6BE2ECD817E72680 | JET76C5.tmp | Win32/NukeSped.HY | Backdoor Tor library (decrypted with fixed MZ header) |
Filenames
%WINDIR%\System32\powerctl.exe
%WINDIR%\SysWOW64\powerctl.exe
%WINDIR%\System32\power.dat
%WINDIR%\SysWOW64\power.dat
%WINDIR%\System32\wwanauth.dll
%WINDIR%\SysWOW64\wwanauth.dll
%WINDIR%\System32\wwansec.dll
%WINDIR%\SysWOW64\wwansec.dll
%WINDIR%\System32\powerctl.dll
%WINDIR%\SysWOW64\powerctl.dll
%WINDIR%\System32\JET76C5.tmp
%WINDIR%\SysWOW64\JET76C5.tmp
%WINDIR%\System32\msobjs.drx
%WINDIR%\SysWOW64\msobjs.drx
MITRE ATT&CK techniques
This table was built using version 8 of the MITRE ATT&CK framework.
Tactic | ID | Name | Description |
---|---|---|---|
Execution | T1569.002 | System Services: Service Execution | Vyveva loader executes via a service. |
T1106 | Native API | Vyveva backdoor uses the CreateProcessA API to execute files. | |
Persistence | T1543.003 | Create or Modify System Process: Windows Service | Vyveva installer creates a new service to establish persistence for its loader. |
Defense Evasion | T1140 | Deobfuscate/Decode Files or Information | Vyveva decrypts strings and components (backdoor, Tor library). |
T1070.006 | Indicator Removal on Host: Timestomp | Vyveva backdoor can timestomp files. | |
T1036.004 | Masquerading: Masquerade Task or Service | Vyveva installer can create a service with attributes mimicking existing services. | |
T1112 | Modify Registry | Vyveva stores its configuration in the registry. | |
T1027 | Obfuscated Files or Information | Vyveva has encrypted strings and components. | |
Discovery | T1083 | File and Directory Discovery | Vyveva backdoor can obtain file and directory listings. |
T1057 | Process Discovery | Vyveva backdoor can list running processes. | |
T1082 | System Information Discovery | Vyveva backdoor can obtain system information, including computer name, ANSI code page, OS version and architecture. | |
T1016 | System Network Configuration Discovery | Vyveva backdoor can obtain the local IP address of the victim computer. | |
T1033 | System Owner/User Discovery | Vyveva backdoor can obtain victim's username. | |
T1124 | System Time Discovery | Vyveva backdoor can obtain system time and time zone. | |
Collection | T1560.002 | Archive Collected Data: Archive via Library | Vyveva backdoor can compress files with zlib before sending to C&C. |
T1005 | Data from Local System | Vyveva backdoor can collect files from computer. | |
T1025 | Data from Removable Media | Vyveva backdoor can notify C&C about newly inserted removable media and collect files from them. | |
Command and Control | T1573.001 | Encrypted Channel: Symmetric Cryptography | Vyveva backdoor encrypts C&C traffic using XOR. |
T1573.002 | Encrypted Channel: Asymmetric Cryptography | Vyveva backdoor communicates with C&C via Tor. | |
Exfiltration | T1041 | Exfiltration Over C2 Channel | Vyveva exfiltrates data to C&C server. |