Vyveva – eine neue Backdoor der Lazarus‑Gruppe

ESET-Forscher finden eine neue Backdoor der APT-Gruppe, die beim Angriff auf ein südafrikanisches Logistikunternehmen eingesetzt wurde

ESET-Forscher finden eine neue Backdoor der APT-Gruppe, die beim Angriff auf ein südafrikanisches Logistikunternehmen eingesetzt wurde

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

Abbildung 1. Hex-Rays-Dekompilierung die Ähnlichkeit von Vyveva (links) und eines NukeSped-Samples (rechts) aufweist

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.

Abbildung 2. Übersicht über die Vyveva-Komponenten

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

IDDescription
0x03Antworte auf "Ping" vom Server
0x10Informationen zum Computer abrufen - Benutzername, Computername, IP, Codepage, Betriebssystemversion, Betriebssystemarchitektur, Tickanzahl, Zeitzone, aktuelles Verzeichnis
0x11Informationen zu Laufwerken abrufen - Typ, Größe, Name, Seriennummer, Dateisystemtyp
0x12Daten in die angegebene Datei schreiben, optional Timestomp.
0x13Geben Sie die angegebene Datei oder das angegebene Verzeichnis hoch
 • Dateigröße, letzte Schreibzeit, Inhalt
 • Verzeichnisstatistiken - Gesamtgröße der Dateien, Anzahl der Dateien, Anzahl der Verzeichnisse
  o Für jeden Eintrag - Name, Attribute
  o Verzeichnisse - Rekurs in Verzeichnisse
  o Dateigröße, letzte Schreibzeit, Inhalt
Optionen
 • Verwenden Sie die Komprimierung für Dateiinhalte (zlib 1.2.5).
 • Dateierweiterungsfilter (Whitelist / Blacklist)
 • Rekursionsflag
0x14Liste des angegebenen Verzeichnisses abrufen
 • Name, Attribute, Schreibzeit
 • Verzeichnisse - ist nicht leer
 • Dateigröße
0x15Aktuelles Verzeichnis auf angegebenes Verzeichnis festlegen
0x16Angegebenen Prozess erstellen
0x17Informationen zum Ausführen von Prozessen abrufen - PID, PPID, ausführbarer Dateipfad
0x18Prozesse durch PID oder ausführbaren Dateipfad beenden
0x19Prozess mit umgeleiteter Ausgabe erstellen und Ausgabe hochladen
Der Befehl verwendet eine Formatzeichenfolge, die auf die Ausführung über cmd.exe hinweist
 • "% param0% / c"% param1%>% tmp_fpath% "2> & 1"
Wenn die Ausgabe leer ist, wird stattdessen die eindeutige Zeichenfolge " \ X0D \ x0A" hochgeladen
0x1ADen angegebenen Pfad löschen. Löschmethoden für Dateien:
 • Nur löschen
 • überschreiben & verschieben & löschen
0x1BKopieren 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.
0x1CInformationen zum angegebenen Pfad abrufen:
 • Datei - Attribute, Erstellungs- / Schreib- / Zugriffszeit, Typ, Größe
 • Verzeichnis / Laufwerk - Gesamtgröße der Dateien, Anzahl der Dateien, Anzahl der Verzeichnisse (mit optionaler Filterung und Rekursion der Erweiterung)
0x1DAktuelles Konfigurations-Blob festlegen, in Registrierung speichern
0x1EAktuellen Konfigurations-Blob abrufen
0x1FLaufwerksüberwachung aktivieren / deaktivieren (Konfigurationsfeld enable_drive_watchdog)
0x20Sitzungs-Watchdog aktivieren / deaktivieren (Konfigurationsfeld enable_session_watchdog)
0x21Konfigurationswert in Bezug auf die Verzögerung der Backdoor-Ausführung festlegen (Konfigurationsfeld delay_until_time)
0x23Daten speichern, die vom asynchronen Befehl verwendet werden (bezogen auf die Befehle 0x12, 0x13)
0x24Beenden Sie die Ausführung des asynchronen Befehls (bezogen auf die Befehle 0x12, 0x13).
0x25Konfigurationswert für die Verzögerung zwischen fehlgeschlagenen C&C-Verbindungsversuchen festlegen (Konfigurationsfeld wait_minutes)
0x26Wenn <SYSDIR>\wsdchngr.drx existiert
 • Konfigurationsregistrierungswert löschen
 • Backdoor-Datei löschen (selbst löschen)
 • Löschdatei löschen
 • Lesen, entschlüsseln, laden von wsdchngr.drx und Aufruf des SamIPromote-Export in einem neuen Thread
 • Beenden des aktuellen Threads

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.

Abbildung 4. Konfigurationsstruktur und kommentiertes Beispiel

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-1FilenameESET detection nameDescription
DAD50AD3682A3F20B2F35BE2A94B89E2B1A73067powerctl.exeWin32/NukeSped.HXInstaller
69529EED679B0C7F1ACC1FD782A4B443CEC0CF83powerctl.dllWin32/NukeSped.HXLoader (x86)
043ADDFB93A10D187DDE4999D78096077F26E9FDwwanauth.dllWin64/NukeSped.EQLoader (x64)
1E3785FC4FE5AB8DAB31DDDD68257F9A7FC5BF59wwansec.dllWin32/NukeSped.HXLoader (x86)
4D7ADD8145CB096359EBC3E4D44E19C2735E0377msobjs.drx-Backdoor (encrypted)
92F5469DBEFDCEE1343934BE149AFC1241CC8497msobjs.drxWin32/NukeSped.HXBackdoor (decrypted with fixed MZ header)
A5CE1DF767C89BF29D40DC4FA6EAECC9C8979552JET76C5.tmp-Backdoor Tor library (encrypted)
66D17344A7CE55D05A324E1C6BE2ECD817E72680JET76C5.tmpWin32/NukeSped.HYBackdoor 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.002System Services: Service Execution Vyveva loader executes via a service.
T1106Native API Vyveva backdoor uses the CreateProcessA API to execute files.
Persistence T1543.003Create or Modify System Process: Windows Service Vyveva installer creates a new service to establish persistence for its loader.
Defense Evasion T1140Deobfuscate/Decode Files or Information Vyveva decrypts strings and components (backdoor, Tor library).
T1070.006Indicator Removal on Host: Timestomp Vyveva backdoor can timestomp files.
T1036.004Masquerading: Masquerade Task or Service Vyveva installer can create a service with attributes mimicking existing services.
T1112Modify Registry Vyveva stores its configuration in the registry. 
T1027Obfuscated Files or Information Vyveva has encrypted strings and components.
Discovery T1083File and Directory Discovery Vyveva backdoor can obtain file and directory listings.
T1057Process Discovery Vyveva backdoor can list running processes.
T1082System Information Discovery Vyveva backdoor can obtain system information, including computer name, ANSI code page, OS version and architecture.
T1016System Network Configuration Discovery Vyveva backdoor can obtain the local IP address of the victim computer.
T1033System Owner/User Discovery Vyveva backdoor can obtain victim's username.
T1124System Time Discovery Vyveva backdoor can obtain system time and time zone.
Collection T1560.002Archive Collected Data: Archive via Library Vyveva backdoor can compress files with zlib before sending to C&C.
T1005Data from Local System Vyveva backdoor can collect files from computer.
T1025Data from Removable Media Vyveva backdoor can notify C&C about newly inserted removable media and collect files from them.
Command and Control T1573.001Encrypted Channel: Symmetric Cryptography Vyveva backdoor encrypts C&C traffic using XOR.
T1573.002Encrypted Channel: Asymmetric Cryptography Vyveva backdoor communicates with C&C via Tor.
Exfiltration T1041Exfiltration Over C2 Channel Vyveva exfiltrates data to C&C server.

Newsletter-Anmeldung

Hier können Sie mitdiskutieren