Découvrez Ransom32 : le premier rançongiciel découvert dans JavaScript

Le logiciel en tant que service ou SaaS (pour Software as a service en anglais) est la nouvelle façon à la mode de faire affaire que choisissent de nombreuses sociétés spécialisées dans les logiciels, et cela semble leur réussir. Ne soyons donc pas surpris que les auteurs de logiciels malveillants et autres cybercriminels soient eux aussi tentés par ce modèle mais à des fins plutôt néfastes. Au cours de l’année passée, nous avons pu constater l’apparition de nombreuses campagnes de type “Le rançongiciel en tant que service” comme Tox, Fakben ou Radamant. Aujourd’hui, nous désirons partager avec vous quelles sont les dernières campagnes de ce type qui font rage.

Découvrez Ransom32

Au premier abord, Ransom32 ne se démarque pas vraiment des autres types de campagnes de logiciels malveillants similaires. Les inscriptions sont gérées par un serveur masqué du réseau Tor. Il vous suffit d’une simple adresse Bitcoin à laquelle envoyer les fonds générés par votre rançongiciel pour vous inscrire.

Tout ce dont vous avez besoin pour créer votre propre rançongiciel personnalisé est une adresse Bitcoin à laquelle envoyer les fonds recueillis

Tout ce dont vous avez besoin pour créer votre propre rançongiciel personnalisé est une adresse Bitcoin à laquelle envoyer les fonds recueillis

Après avoir saisi votre adresse Bitcoin, vous aurez accès à un panneau de commandes assez rudimentaire. Dans le panneau d’administration, vous pouvez consulter plusieurs statistiques comme le nombre de victimes ayant déjà payé ou combien de systèmes ont été infectés. Vous pouvez également personnaliser votre “client”, le nom donné actuellement au logiciel malveillant. Il est possible de modifier le nombre de Bitcoins que demandera le logiciel et de configurer certains paramètres comme de fausses boîtes de message que ce dernier est censé afficher lors de son installation.

Admin de Ransom32

Une interface web vous permet de voir combien de systèmes ont été infectés par le logiciel malveillant et combien de Bitcoins ont été engrangées. Vous pouvez même personnaliser le maliciel.

Un clic sur “Download client.scr” générera alors le logiciel malveillant selon les caractéristiques spécifiées et lancera le téléchargement du fichier malveillant de plus de 22 Mo. C’est là que l’on peut constater que Ransom32 diffère en de nombreux points des autres rançongiciels qui ne dépassent eux que très rarement les 1 Mo. En fait, la plupart des auteurs de rançongiciels utilisent comme seul argument de vente la petite taille de leurs fichiers malveillants lorsqu’ils en font la promotion dans les communautés de pirates clandestines. Cela a bien sûr éveillé notre attention.

Lever le voile sur le monstre

Après un examen plus approfondi, le fichier téléchargé est en fait un fichier auto-extractible WinRAR :

Contenu du fichier Ransom32 SFX

Contenu du fichier Ransom32 SFX

Le logiciel malveillant utilise le langage du script implémenté dans le WinRAR pour décompresser automatiquement le contenu de l’archive dans le répertoire des fichiers temporaires de l’utilisateur et exécuter le fichier “chrome.exe” contenu. Les fichiers au sein de l’archive ont les fins suivantes :

  • “chrome” contient une copie de l’accord de licence GPL.
  • “chrome.exe” est une application paquetée NW.js et contient le code actuel du logiciel malveillant ainsi que le cadre requis pour son exécution.
  • “ffmpegsumo.dll”, “nw.pak”, “icudtl.dat” et “locales” contiennent les données requises par le cadre NW.js afin qu’ils fonctionnent correctement.
  • “rundll32.exe” est une copie renommée du client Tor.
  • “s.exe” est une copie renommée du raccourci Optimum X, un utilitaire qui crée et manipule le Bureau et les raccourcis du menu de démarrage.
  • “g” contient les informations de configuration du logiciel malveillant telles que configurées dans l’interface Web.
  • “msgbox.vbs” est un petit script qui affiche un message pop-up personnalisé et qui est utilisé pour afficher la boîte de message configurée.
  • “u.vbs” est un petit script qui liste tous les fichiers et dossiers dans un répertoire donné avant de les supprimer.
Le fichier "g" contient la configuration du logiciel malveillant au format JSON

Le fichier “g” contient la configuration du logiciel malveillant au format JSON

La partie la plus intéressante, et de loin, dans ce paquet est le fichier “chrome.exe”. À première vue, il ressemble douteusement à une copie du vrai navigateur Chrome. Seul le manque de signatures numériques propres et des informations de version indique que ce fichier n’est pas réellement celui du vrai navigateur de Chrome. C’est pourquoi en y regardant de plus près, on peut constater que ce fichier est en réalité une application paquetée NW.js.

Recourir aux technologies internet modernes pour créer des rançongiciels

NW.js c’est quoi exactement ? NW.js est essentiellement un cadre qui vous permet de développer des applications courantes de bureau pour Windows, Linux et MacOS X à l’aide de JavaScript. Il se base sur les projets populaires Node.js et Chromium. Ainsi, alors que JavaScript est habituellement étroitement contenu dans la sandbox de votre navigateur et ne peut pas vraiment affecter le système sur lequel il est exécuté, NW.js permet de bien plus contrôler et interagir avec le système d’exploitation sous-jacent, permettant à JavaScript de faire quasiment les mêmes choses que les langages de programmation “normaux” comme C ++ ou Delphi. L’avantage pour le développeur est qu’il peut convertir ses applications Web en applications de bureau normales assez facilement. Pour les développeurs d’applications de bureau courantes, un des avantages est que NW.js est capable de fonctionner avec le même JavaScript sur différentes plateformes. Donc, une application NW.js ne doit être écrite qu’une fois et elle est immédiatement utilisable sur Windows, Linux et MacOS X.

Cela signifie aussi que, au moins en théorie, Ransom32 pourrait facilement être conditionné pour Linux et Mac OS X. Cela étant dit, à ce stade, nous n’avons jamais vu de tels paquets, ce qui, du moins pour le moment, fait que Ransom32 semble uniquement destiné aux systèmes sous Windows. Un autre avantage, et pas des moindres, pour l’auteur des logiciels malveillants est que NW.js est un cadre et une application légitimes. Il n’est donc pas surprenant que, même près de 2 semaines après la parution du logiciel malveillant, la couverture de la signature est toujours quasiment inexistante.

Une fois que Ransom32 est installé et exécuté sur un système, il commencera par décompresser tous ses fichiers dans le dossier des fichiers temporaires. De là, il se copiera dans le répertoire “%AppData%\Chrome Browser”. Il utilisera le fichier fourni “s.exe” pour créer un raccourci dans le dossier Démarrage de l’utilisateur nommé “ChromeService” et qui garantira le lancement du logiciel malveillant à chaque démarrage. Celui-ci lancera alors le client Tor fourni pour établir une connexion à son serveur de commandes et de contrôle (serveur C2) caché à l’intérieur du réseau Tor sur le port 85. Après une connexion réussie au serveur C2 pour négocier l’adresse Bitcoin à laquelle l’utilisateur concerné sera censé payer la rançon et échanger la clé cryptographique utilisée pour le cryptage, le logiciel malveillant finira par afficher son message de demande de rançon.

Message de rançon affiché par le logiciel malveillant

Message de rançon affiché par le logiciel malveillant

Il commencera alors à chiffrer les fichiers de l’utilisateur. Tous les fichiers dont les extensions sont reprises ci-après seront visés :

*.jpg, *.jpeg, *.raw, *.tif, *.gif, *.png, *.bmp, *.3dm, *.max, *.accdb, *.db, *.dbf, *.mdb, *.pdb, *.sql, *.*sav*, *.*spv*, *.*grle*, *.*mlx*, *.*sv5*, *.*game*, *.*slot*, *.dwg, *.dxf, *.c, *.cpp, *.cs, *.h, *.php, *.asp, *.rb, *.java, *.jar, *.class, *.aaf, *.aep, *.aepx, *.plb, *.prel, *.prproj, *.aet, *.ppj, *.psd, *.indd, *.indl, *.indt, *.indb, *.inx, *.idml, *.pmd, *.xqx, *.xqx, *.ai, *.eps, *.ps, *.svg, *.swf, *.fla, *.as3, *.as, *.txt, *.doc, *.dot, *.docx, *.docm, *.dotx, *.dotm, *.docb, *.rtf, *.wpd, *.wps, *.msg, *.pdf, *.xls, *.xlt, *.xlm, *.xlsx, *.xlsm, *.xltx, *.xltm, *.xlsb, *.xla, *.xlam, *.xll, *.xlw, *.ppt, *.pot, *.pps, *.pptx, *.pptm, *.potx, *.potm, *.ppam, *.ppsx, *.ppsm, *.sldx, *.sldm, *.wav, *.mp3, *.aif, *.iff, *.m3u, *.m4u, *.mid, *.mpa, *.wma, *.ra, *.avi, *.mov, *.mp4, *.3gp, *.mpeg, *.3g2, *.asf, *.asx, *.flv, *.mpg, *.wmv, *.vob, *.m3u8, *.csv, *.efx, *.sdf, *.vcf, *.xml, *.ses, *.dat

Le logiciel malveillant n’essaiera pas par contre de chiffrer les fichiers situés dans un répertoire contenant les chaînes suivantes :

  • :\windows\
  • :\winnt\
  • programdata\
  • boot\
  • temp\
  • tmp\
  • $recycle.bin\

Les fichiers sont cryptés via AES avec une clé de 128 bits en utilisant le CTR comme mode de chiffrement par bloc. Une nouvelle clé est générée pour chaque fichier. La clé est chiffrée en utilisant l’algorithme RSA et une clé publique obtenue du serveur C2 au cours de la première communication.

Une partie de l'échange de protocole personnalisé entre Ransom32 et son serveur de commande et de contrôle pour échanger l'adresse Bitcoin (en violet) et la clé publique (longueur jaune, clé verte)

Une partie de l’échange de protocole personnalisé entre Ransom32 et son serveur de commande et de contrôle pour échanger l’adresse Bitcoin (en violet) et la clé publique (longueur jaune, clé verte)

La clé cryptée AES est stockée avec les données cryptées AES à l’intérieur du fichier maintenant crypté.

Le logiciel malveillant propose également de décrypter un fichier unique afin de démontrer que l’auteur dudit maliciel est, en effet, capable de déchiffrer les fichiers cryptés. Lors de ce processus, le logiciel malveillant envoie la clé AES cryptée du fichier choisi au serveur C2 et obtient la clé décryptée par fichier AES en retour.

Comment me protéger de Ransom32 ?

Comme expliqué dans notre récent article sur les rançongiciels, la meilleure protection reste d’opter pour une stratégie sérieuse et éprouvée de sauvegarde. Encore une fois cependant, la technologie d’analyse de comportement utilisée par Emsisoft Anti-Malware et Emsisoft Internet Security s’avère être la deuxième meilleure ligne de défense, car tous nos utilisateurs une fois de plus sont protégés contre ce rançongiciel et des centaines de différentes variantes de celui-ci sans pour autant avoir besoin de signatures.

Les utilisateurs d'Emsisoft Anti-Malware et d'Emsisoft Internet Security sont protégés contre Ransom32 et d'autres familles de rançongiciels par l'analyse de comportement

Les utilisateurs d’Emsisoft Anti-Malware et d’Emsisoft Internet Security sont protégés contre Ransom32 et d’autres familles de rançongiciels par l’analyse de comportement

Nous considérons que les rançongiciels sont l’une des plus sérieuses menaces de l’année passée et nous nous efforçons de faire de notre mieux pour maintenir notre excellente réputation en la matière au cours de l’année à venir afin de continuer à protéger du mieux possible nos utilisateurs.

Sur cette note, l’équipe de chercheurs en logiciels malveillants d’Emsisoft vous souhaite à tous une nouvelle et excellente année, exempte de tout logiciel malveillant.

En dernier lieu, nous tenons à remercier nos amis de BleepingComputer, qui ont attiré notre attention sur cette menace. Nous tenons également à exprimer notre gratitude envers xXToffeeXx de BleepingComputer en particulier, pour son aide précieuse et ses judicieux conseils lors de nos recherches et efforts d’ingénierie inversée sur ce rançongiciel en particulier.