Avez‑vous peur du noir? Méfiez‑vous de Vyveva, une nouvelle backdoor Lazarus

Les chercheurs d'ESET découvrent une nouvelle backdoor Lazarus déployée contre une entreprise de logistique de fret en Afrique du Sud.

Les chercheurs d’ESET découvrent une nouvelle backdoor Lazarus déployée contre une entreprise de logistique de fret en Afrique du Sud.

Les chercheurs d’ESET ont découvert une porte dérobée Lazarus jusqu’alors non documentée, utilisée pour attaquer une entreprise de logistique de fret en Afrique du Sud, qu’ils ont baptisée Vyveva. La porte dérobée est constituée de plusieurs composants et communique avec son serveur C&C via le réseau Tor. Jusqu’à présent, nous avons pu trouver son installateur, son chargeur et sa principale charge utile – une porte dérobée avec une DLL TorSocket. Cette attaque jusqu’alors inconnue a été découverte en juin 2020.

Bien que Vyveva ait été utilisé depuis au moins décembre 2018, son vecteur de compromission initial est encore inconnu. Nos données de télémétrie suggèrent un déploiement ciblé, car nous n’avons trouvé que deux machines victimes, qui sont toutes deux des serveurs appartenant à une entreprise de logistique de fret située en Afrique du Sud. La porte dérobée présente des capacités d’exfiltration de fichiers, de timestomping, de collecte d’informations sur l’ordinateur victime et ses lecteurs, ainsi que d’autres fonctionnalités courantes de porte dérobée telles que l’exécution de code arbitraire spécifié par les opérateurs du logiciel malveillant. Cela indique que l’intention de l’opération est très probablement l’espionnage.

Cet article fournit la première analyse technique publique des composants de Vyveva.

Attribution à Lazarus

Vyveva partage de nombreuses similitudes de code avec des échantillons plus anciens de Lazarus qui sont détectés par les produits ESET comme la famille de logiciels malveillants NukeSped. Cependant, les similitudes ne s’arrêtent pas là : l’utilisation de faux TLS dans la communication réseau, les chaînes d’exécution en ligne de commande et la manière d’utiliser le chiffrement et les services Tor sont autant d’éléments qui pointent vers Lazarus. Nous pouvons donc attribuer Vyveva à ce groupe APT avec une grande confiance.

Un exemple des nombreuses similitudes de code peut être vu dans la figure 1 – résolution des exportations de la bibliothèque Tor portant un nom unique.

  • 92F5469DBEFDCEE1343934BE149AFC1241CC8497 msobjs.drx Vyveva backdoor
  • BF98EA1326E5F8C351E68C79B5D1E0164C7BE728 taskhosts.exe Win32/NukeSped.HV trojan

Figure 1. Décompilation Hex-Rays montrant la similitude entre Vyveva (à gauche) et l’échantillon NukeSped (à droite)

Analyse technique

Jusqu’à présent, nous avons réussi à trouver trois des multiples composants de Vyveva – son installateur, son chargeur et sa porte dérobée. L’installateur est l’étape chronologique la plus ancienne trouvée et, comme il s’attend à ce que d’autres composants soient déjà présents sur la machine, il suggère l’existence d’une étape antérieure inconnue – un dropper. Le chargeur sert à déchiffrer la porte dérobée à l’aide d’un simple algorithme de déchiffrement XOR.

La figure 2 permet d’examiner de plus près les fonctionnalités de l’installateur, de la porte dérobée et de la bibliothèque Tor.

Figure 2. Aperçu des composants de Vyveva

Programme d’installation

L’installateur a deux objectifs principaux : il crée un service qui assure la persistance du chargeur de porte dérobée et il stocke la configuration par défaut de la porte dérobée dans le registre.

Pour créer un service d’apparence légitime, ses attributs, tels que le nom du service et le nom d’affichage, sont formés à l’aide d’une combinaison de mots provenant des attributs de services existants, qui sont sélectionnés au hasard. Il est également possible de spécifier ces attributs au programme d’installation via les paramètres de ligne de commande -‍dll, -svc, -disp, -desc, et -group. Nous avons observé ce qui suit dans la nature, avec ces paramètres :

<SYSDIR>\powerctl.exe -svc powerctl -dll powerctl.dll

En ce qui concerne cette dernière tâche, le programme d’installation définit d’abord l’ID de configuration de l’infection, qui identifie de manière unique chaque victime, par une valeur générée de manière aléatoire, puis la stocke dans le registre, comme le montre la figure 3.

[HKLM\SOFTWARE\Microsoft\DirectX]
    UsageMask = <CONFIG_DATA>

Figure 3. Valeur de registre de la configuration

L’une des entrées de la configuration est une liste de serveurs C&C chiffrés. Par exemple, l’échantillon de programme d’installation que nous avons analysé est configuré avec les C&C suivants :

  • 4bjt2rceijktwedi[.]onion:80
  • cwwpxpxuswo7b6tr[.]onion:80

Fonctionnalités de la porte dérobée

Le backdoor, principale composante de Vyveva, se connecte aux serveurs C&C et exécute les commandes émises par les acteurs de la menace. Il comporte 23 commandes, dont certaines sont asynchrones et exécutées dans leurs propres threads. La plupart d’entre elles sont des commandes ordinaires permettant d’effectuer des opérations sur des fichiers et des processus ou de collecter des informations, mais il existe également une commande moins courante pour le timestomping de fichiers. Elle peut copier les métadonnées d’heure de création/écriture/accès d’un fichier « donneur » vers un fichier de destination ou utiliser une date aléatoire dans les années 2000-2004.

Les autres commandes dignes d’intérêt sont la commande de téléchargement de fichiers de Vyveva et la commande 0x26. La commande de téléchargement de fichiers est capable d’exfiltrer des répertoires de manière récursive et prend en charge le filtrage des extensions de fichiers – par exemple, uniquement les documents Office. Quant à la commande 0x26, elle indique l’existence d’un autre composant inconnu que nous n’avons pas encore observé au moment de la rédaction de cet article.

Le Tableau 1 présente la liste complète des commandes.

Tableau 1. Commandes de la porte dérobée Vyveva

IDDescription
0x03Reply to “ping” from server
0x10Get information about computer – username, computer name, IP, code page, OS version, OS architecture, tick count, time zone, current directory
0x11Get information about drives – type, size, name, serial number, filesystem type
0x12Write data to specified file, optionally timestomp.
0x13Upload specified file or directory
 • File – size, last write time, content
 • Directory stats – total files size, file count, directory count
  - For each entry – name, attributes
  - Directories – recurse into directories
  - Files – size, last write time, content

Options
 • Use compression for file content (zlib 1.2.5)
 • File extension filter (whitelist/blacklist)
 • Recursion flag
0x14Get listing of specified directory
 • name, attributes, write time
 • Directories – is nonempty
 • Files – size
0x15Set current directory to specified directory
0x16Create specified process
0x17Get information about running processes – PID, PPID, executable file path
0x18Terminate process(es) by PID or executable file path
0x19Create process with redirected output and upload the output
The command uses a format string which hints at execution through cmd.exe
 • "%param0% /c "%param1% > %tmp_fpath%" 2>&1"
If the output is empty, unique string "<NO RESULT!>\r\n" is uploaded instead
0x1ADelete specified path. File deletion methods:
 • delete only
 • overwrite & move & delete
0x1BCopy creation/write/access time metadata from source file or directory to destination file or directory.
If the source doesn’t exist, random time in year 2000-2004 is used for creation & last write time, access time is unchanged.
0x1CGet info about specified path:
 • File – attributes, creation/write/access time, type, size
 • Directory / Drive – total files size, file count, directory count (with optional extension filtering and recursion)
0x1DSet current configuration blob, save to registry
0x1EGet current configuration blob
0x1FEnable/disable drive watchdog (configuration field enable_drive_watchdog)
0x20Enable/disable session watchdog (configuration field enable_session_watchdog)
0x21Set configuration value related to delay of backdoor execution (configuration field delay_until_time)
0x23Store data used by asynchronous command (related to commands 0x12, 0x13)
0x24Stop executing asynchronous command (related to commands 0x12, 0x13)
0x25Set configuration value related to delay between failed C&C connection attempts (configuration field wait_minutes)
0x26If <SYSDIR>\wsdchngr.drx exists
 • Delete configuration registry value
 • Delete backdoor file (self delete)
 • Delete loader file
 • Read, decrypt, PE-load wsdchngr.drx and call SamIPromote export in a new thread
 • Exit current thread

Les gardiens de la porte dérobée, qui peuvent être activés ou désactivés de manière facultative, sont particulièrement intéressants. Il existe un chien de garde du lecteur utilisé pour surveiller les lecteurs nouvellement connectés et déconnectés, et un chien de garde de la session qui surveille le nombre de sessions actives (c’est-à-dire les utilisateurs connectés). Ces composants peuvent déclencher une connexion au serveur C&C en dehors de l’intervalle régulier et préconfiguré de trois minutes, ainsi que lors de nouveaux événements liés aux lecteurs et aux sessions.

Configuration

La configuration de la porte dérobée, qui est initialement définie par le programme d’installation, est lue à partir de la valeur de registre (illustrée à la Figure 3). Lorsque la configuration est modifiée par une commande C&C, la valeur stockée dans le registre est mise à jour. Un exemple de configuration et sa structure sont illustrés à la Figure 4.

Figure 4. Structure de la configuration et exemple annoté

 

Le champ wait_minutes indique le temps d’attente avant la prochaine connexion au C&C après l’échec d’une tentative de connexion. Si l’exécution de la porte dérobée doit être retardée jusqu’à une date et une heure particulières, elle peut être spécifiée dans le champ delay_until_time. Le champ encrypted_cncs est une chaîne chiffrée, qui contient des C&C séparés par des points-virgules.

Librairie Tor

Vyveva utilise la librairie Tor, qui est basée sur le code source officiel de Tor, pour communiquer avec un serveur C&C choisi au hasard dans la configuration.  Il contacte le C&C à intervalles de trois minutes, envoyant des informations sur l’ordinateur victime et ses lecteurs avant de recevoir des commandes. Le répertoire d’exportation de la backdoor contient le fichier TorSocket.dll avec des exportations auto-explicatives close_ch, connect_ch, open_ch, read_ch, write_ch.

Conclusion

Vyveva constitue une nouvelle addition à l’arsenal étendu de logiciels malveillants de Lazarus. L’attaque d’une entreprise en Afrique du Sud illustre également le vaste ciblage géographique de ce groupe APT.

Pour toute demande de renseignements ou d’échantillons liés à ce sujet, contactez-nous à l’adresse threatintel@eset.com.

Indicateurs de compromission (IoCs)

Échantillons

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) 

Noms de fichier

%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

Techniques MITRE ATT&CK

Ce tableau a été conçu en utilisant la version 8 de MITRE ATT&CK.

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.

Infolettre

Discussion