Broadcom Symantec : Verblecon, un nouveau malware très dangereux !

Broadcom Symantec : Verblecon, un nouveau malware très dangereux !

560 420 2SB - Distributeur à valeur ajoutée - Solutions de Cybersécurité

Certaines indications nous montre que l’attaquant ne se rend peut-être pas compte des capacités potentielles du logiciel malveillant qu’il utilise!

Un attaquant encore inconnu utilise un nouveau chargeur de logiciels malveillants complexe et puissant dans des attaques relativement peu sophistiquées et peu rémunératrices, ce qui indique qu’il ne se rend peut-être pas compte des capacités potentielles des logiciels malveillants qu’il déploie.

Le malware, Trojan, “Verblecon” est utilisé dans des attaques dont l’objectif final semble être d’installer des mineurs de crypto-monnaies sur les machines infectées. Certains éléments indiquent que l’attaquant pourrait également être intéressé par le vol de tokens d’accès à l’application de chat Discord.
Cependant, les capacités de ce malware indiquent qu’il pourrait être très dangereux s’il était utilisé dans des campagnes de ransomware ou d’espionnage.

Verblecon a été repéré pour la première fois par les analystes de Symantec, une division de Broadcom Software, en janvier 2022.
Ce blog détaillera les capacités du malware.

Technical breakdown

Le malware est chargé sous la forme d’un fichier JAR polymorphe côté serveur.
Le fait que le fichier soit polymorphe signifie qu’en raison du cryptage et de l’obscurcissement, le code de la charge utile du malware semble différent à chaque téléchargement.
Les cybercriminels camouflent généralement les logiciels malveillants de cette manière afin d’échapper à la détection par les logiciels de sécurité.

Les échantillons de logiciels malveillants analysés par Symantec étaient entièrement obfusqués, dans le flux de code, les chaînes de caractères ou encore les symboles. Les échantillons eux-mêmes peuvent être basés sur du code disponible publiquement.

Une fois lancé, le logiciel malveillant vérifie ses arguments de ligne de commande. Il a besoin d’au moins un argument de ligne de commande pour s’exécuter, qui peut être l’ID de l’infection ou de la campagne au départ par exemple.

“CSIDL_SYSTEM_DRIVE\program files\java\jre1.8.0_301\bin\javaw.exe” -jar “CSIDL_PROFILE\appdata\local\temp\rpvbh.jar” masonkhonsari

et

“CSIDL_SYSTEM_DRIVE\program files\java\jre1.8.0_301\bin\javaw.exe” -jar “CSIDL_PROFILE\appdata\local\temp\rpvbh.jar” 923ec15ffa4474ca7bf200bfb90e782d

De plus, il tente également de déterminer si son propre processus est en cours de débogage en vérifiant les arguments de ligne de commande Java suivants :

  • “-xbootclasspath”
  • “-xdebug”
  • “-agentlib”
  • “-javaagent:”
  • “-xrun:”
  • “-verbose”
  • “-agentpath:”

Ensuite, il tente de détecter s’il est ouvert dans un environnement virtuel ou sandbox, ce qui indiquerait qu’il est probablement ouvert sur une “security researcher’s machine”.

Tout d’abord, il vérifie la présence des répertoires suivants :

  • “%ProgramFiles(X86)%\VMware\VMware Tools”
  • “%ProgramFiles(X86)%\Oracle\VirtualBox Guest Additions”

Il obtient également l’adresse MAC de la machine et tente de vérifier la présence des préfixes suivants, qui peuvent indiquer que le fichier est ouvert sur une “virtual machine” :

  • “00:05:69”
  • “00:0C:29”
  • “00:1C:14”
  • “00:50:56”
  • “08:00:27”
  • “00:16:3E”
  • “00:1C:42”
  • “0A:00:27”

Après ces vérifications, il exécute la commande suivante pour obtenir la liste des processus en cours d’exécution :

  • tasklist.exe /fo csv /nh

Il semble ensuite vérifier ces processus par rapport à une liste établie :

  • “vboxservice.exe”
  • “vboxtray.exe”
  • “xenservice.exe”
  • “vmtoolsd.exe”
  • “vmwaretray.exe”
  • “vmwareuser.exe”
  • “vgauthservice.exe”
  • “vmacthlp.exe”
  • “vmsrvc.exe”
  • “vmusrvc.exe”
  • “prl_cc.exe”
  • “prl_tools.exe”
  • “qemu-ga.exe”
  • “vmcomputeagent.exe”
  • “sandboxie”
  • “vdagent”
  • “vdservice”
  • “fiddler”
  • “joeboxserver.exe”
  • “joeboxcontrol.exe”
  • “blnsvr.exe”

Il vérifie également la présence des fichiers suivants :

  • “%Windows%\system32\windanr.exe”
  • “%Windows%\system32\drivers\VBoxMouse.sys”
  • “%Windows%\system32\drivers\VBoxGuest.sys”
  • “%Windows%\system32\drivers\VBoxSF.sys”
  • “%Windows%\system32\drivers\VBoxVideo.sys”
  • “%Windows%\system32\vboxdisp.dll”
  • “%Windows%\system32\vboxhook.dll”
  • “%Windows%\system32\vboxmrxnp.dll”
  • “%Windows%\system32\vboxogl.dll”
  • “%Windows%\system32\vboxoglarrayspu.dll”
  • “%Windows%\system32\vboxoglcrutil.dll”
  • “%Windows%\system32\vboxoglerrorspu.dll”
  • “%Windows%\system32\vboxoglfeedbackspu.dll”
  • “%Windows%\system32\vboxoglpackspu.dll”
  • “%Windows%\system32\vboxoglpassthroughspu.dll”
  • “%Windows%\system32\vboxservice.exe”
  • “%Windows%\system32\vboxtray.exe”
  • “%Windows%\system32\VBoxControl.exe”
  • “%Windows%\system32\Drivers\Vmmouse.sys”
  • “%Windows%\system32\Drivers\vm3dgl.dll”
  • “%Windows%\system32\Drivers\vmdum.dll”
  • “%Windows%\system32\Drivers\vm3dver.dll”
  • “%Windows%\system32\Drivers\vmtray.dll”
  • “%Windows%\system32\Drivers\VMToolsHook.dll”
  • “%Windows%\system32\Drivers\vmmousever.dll”
  • “%Windows%\system32\Drivers\vmhgfs.dll”
  • “%Windows%\system32\Drivers\vmGuestLib.dll”
  • “%Windows%\system32\Drivers\VmGuestLibJava.dll”
  • “%Windows%\system32\Driversvmhgfs.dll”
  • “[java.lang.System.getProperty(“user.home”)]\Desktop\moutonheart.wav”

Ensuite, il apparaît pour vérifier le nom d’utilisateur par rapport à ce qui suit :

  • java.lang.System.getProperty(“user.name”) == “WDAGUtilityAccount”
  • java.lang.System.getProperty(“user.name”).startsWith(“hal-“)

Puis il exécute la commande suivante :

  • reg query “HKU\S-1-5-19”

La manière dont les résultats sont traités n’est pas claire, mais certaines chaînes de caractères pourraient être liées à cette vérification ou à d’autres vérifications du registre :

  • “HARDWARE\ACPI\DSDT\”
  • “HARDWARE\ACPI\FADT\”
  • “HARDWARE\ACPI\RSDT\”
  • “SOFTWARE\Oracle\”
  • “SYSTEM\ControlSet001\Services\”
  • “SYSTEM\ControlSet001\Services\”
  • “SOFTWARE\Microsoft\Virtual Machine\Guest\”
  • “SOFTWARE\VMware, Inc.\”
  • “SOFTWARE\”
  • “VBOX__”
  • “VBOX__”
  • “VirtualBox Guest Additions”
  • “VBoxGuest”
  • “VBoxMouse”
  • “VBoxService”
  • “VBoxSF”
  • “VBoxVideo”
  • “Parameters”
  • “VMware Tools”
  • “Wine”

S’il est satisfait de ces vérifications, il peut se copier comme l’un des fichiers suivants :

  • “%ProgramData%[INFECTION_ID][INFECTION_ID].jar”
  • “%ALL_USERS_HOME%[INFECTION_ID][INFECTION_ID].jar”
  • “%LOCALAPPDATA%[INFECTION_ID][INFECTION_ID].jar”

Puis créez l’un des fichiers suivants pour l’utiliser comme point de chargement :

  • “%HOMEPATH%\Library\LaunchAgents[INFECTION_ID].plist”
  • “%Windows%\System32\Tasks[INFECTION_ID]”

[INFECTION_ID] est calculé comme suit :

  • hashlib.md5(b”%PROCESSOR_IDENTIFIER%%COMPUTERNAME%[USER_NAME]”).hexdigest()

Ensuite, il tente périodiquement de se connecter aux URLs suivants :

  • “hxxps://gaymers[.]ax/”
  • “hxxp://[DGA_NAME][.]tk/”

[DGA_NAME] est apparemment généré par la méthode suivante :

img1

Le trafic généré par le malware ressemble à ceci :

img2

La réponse du serveur se présente comme suit.
Certaines des chaînes de cette réponse indiquent que l’attaquant peut utiliser l’infrastructure Cloudflare légitime pour héberger une partie de son infrastructure C&C.

img3

Le corps de la réponse du serveur ci-dessus est un “encrypted blob” qui contient une URL signée avec une clé RSA.
Ce blob peut être décrypté et validé comme suit :

img4

Le malware commence alors à communiquer avec l’URL décodée en envoyant des détails sur l’ordinateur infecté :

img5

Le corps de la demande contient les informations suivantes sur la machine infectée, sous forme cryptée :

  • “id” is [INFECTION_ID
  • “os” is OS version, e.g. “Windows 10”
  • “pv” is “Admin” when running with Administrator privileges
  • “ip” is JAR pathname
  • “cn” is “[USER_NAME]@[COMPUTERNAME]”
  • “lr” has value “00:00:00”
  • “ct” has value “0”
  • “bv” has value “v1.0.0”

D’aprés certaines observations, le serveur répondait de la manière suivante :

img6

Où le corps de la réponse peut être décrypté comme suit :

img7

Le dernier terme ci-dessus contient la chaîne suivante :

  • hxxps://jonathanhardwick[.]me/hardwick.jar~start

Certains échantillons du malware communiquent avec les serveurs suivants :

  • gaymers[.]ax
  • 6f3af6ffb074513b51bba688a0b41df7[.]tk

La communication entre le logiciel malveillant et les serveurs se fait par HTTP ou HTTPS et cette communication semble avoir pour objectif,  d’inviter les “victimes” à se connecter à ce qui suit :

img8

La charge utile est téléchargée depuis l’URL observée précédemment :

  • hxxps://jonathanhardwick[.]me/hardwick.jar

La charge utile est obscurcie de la même manière que les autres échantillons, et contient également des techniques similaires pour détecter l’environnement de virtualisation, ainsi que d’autres fonctionnalités.

La fonctionnalité principale consiste à télécharger et à exécuter un blob binaire à partir de l’URL suivante :

  • hxxps://jonathanhardwick[.]me/hardwick.bin

Le blob est décrypté avec des artefacts *.bin provenant du même hôte.
Le blob téléchargé est ensuite mis en cache sur le système de fichiers local (sous une forme recryptée) et injecté dans %Windows%\SysWow64\dllhost.exe pour être exécuté.

L’injection est réalisée à l’aide de com.sun.jna et n’utilise pas les API habituelles pour l’injection.

La charge utile finale (hardwick.bin) contient l’URL intégrée suivante, qui pointe vers un fichier de configuration d’un mineur de crypto-monnaies :

  • hxxps://jonathanhardwick[.]me/config[.]txt

Cela indique que le but de cette activité était d’installer un logiciel de minage de crypto-monnaies sur les machines des victimes.

Quel est l’objectif de cette campagne ?

Les preuves trouvées sur les réseaux des victimes semblent indiquer que l’objectif de l’attaquant était d’installer un logiciel de minage de crypto-monnaies sur les machines des victimes.
Cela semble être un objectif relativement peu rémunérateur pour l’attaquant compte tenu du niveau d’effort qui aurait été nécessaire pour développer ce logiciel malveillant sophistiqué.

Certains éléments indiquent également que l’attaquant pourrait voler des tokens Discord et les utiliser pour faire de la publicité pour des applications de jeux vidéo trojanisées.

Nous soupçonnons qu’ils ont volé des tokens Discord car certaines des chaînes obscurcies font référence à des noms de chemin qui sont apparemment liés à des clients Discord, en particulier :

  • “AppData\Roaming\discordcanary\Local Storage\leveldb”
  • “AppData\Roaming\discordptb\Local Storage\leveldb”
  • “Library\Application Support\discord\Local Storage\leveldb”
  • “Library\Application Support\discordcanary\Local Storage\leveldb”
  • “Library\Application Support\discordptb\Local Storage\leveldb”
  • “.config\discordcanary\Local Storage\leveldb”
  • “.config\discordptb\Local Storage\leveldb”

Discord est une application de discussion de groupe particulièrement populaire dans la communauté des joueurs.
La publicité d’applications de jeux vidéo trojanisées via Discord est probablement un canal de redistribution pour Trojan.Verblecon.

Cela pourrait-il être utilisé pour distribuer des ransomwares ?

La plupart des infections que Broadcom Symantec a observé où ce malware était utilisé se trouvaient sur des machines non professionnelles ; nous voyons rarement des ransomwares déployés sur des machines non professionnelles.

Des rapports antérieurs ont établi un lien entre des domaines apparentés et une seule occurrence de ransomware, mais l’infrastructure peut être partagée avec un acteur non apparenté.
Les similitudes entre cet incident et l’activité que nous avons observée sont les suivantes :

  • The use of “verble” in the domain name
  • The downloading of shellcode for execution
  • Similar obfuscation

Cependant, il n’y a pas encore suffisamment de preuves pour établir un lien définitif entre ces deux types d’activité.

Le pouvoir entre les mains d’un acteur inexpérimenté ?

L’activité observée à l’aide de ce chargeur sophistiqué indique qu’il est manié par un individu qui ne se rend peut-être pas compte des capacités du malware qu’il utilise. Toutefois, s’il tombait entre les mains d’un acteur plus ambitieux, ce chargeur pourrait être utilisé pour des attaques plus importantes, y compris des rançongiciels ou ransomwares et potentiellement des campagnes de cyber espionnage.

Protection

File-based

  • Trojan.Verblecon

Pour obtenir les dernières mises à jour de protection, veuillez consulter le Bulletin de protection Symantec.

Indicators of Compromise (IoCs)

Si un IOC est malveillant et que le fichier est disponible, les produits Symantec Endpoint détecteront et bloqueront ce fichier.

32a9415daa7f37a93dd0b347461844673c0f5baf0c15c01ee48b147dadf28299

3688c249774cc9a28d2b9b316921cec842bb087c57f4733cf5866226fbe2aeed

5a4f6332ad08b35c055bb5e6dfddc79d2f7905e63fac7595efbedd0b27f12eb8

007f5898c52c3aa1c3dca6d3a30f28f5f72d9789fbb440ae656d88959f68e53e

f3f4af5f5eae1a28ad5a01b56d71302a265bce17d2c87ce731edf440612818a6

hxxp://verble[.]software/styles.jar

hxxps://jonathanhardwick[.]me/hardwick.jar

hxxps://jonathanhardwick[.]me/hardwick.bin

hxxps://jonathanhardwick[.]me/config.txt

hxxp://test.verble[.]rocks/dorflersaladreviews.jar

hxxp://test.verble[.]rocks/dorflersaladreviews.bin

Pour en savoir plus concernant la solution.