Suite à la détection par nos partenaires de l’activité récente d’un ransomware en Asie, l’équipe de Cyber Threat Intelligence de Stormshield a procédé à l’analyse approfondie de cette souche. Ce malware fait partie d’une famille déjà identifiée par d’autres acteurs de la cybersécurité, sous le nom de « Crypt888 », « Strictor », « Nymeria » ou d’autres encore. Le retour de ce malware est l’occasion pour le Stormshield Customer Security Lab de fournir des éléments techniques derrière cette attaque de ransomware.

Nous verrons dans cet article que « 888 » fait écho à une particularité technique du malware.

 

Vecteur initial de l’attaque du ransomware Crypt888

Nous nous sommes procurés deux samples que nous avons analysés :

  • 2e0f1385a0eb72f189c3d3cffa38020d71370ab621139c5688647c5bab6bc7f2
  • ba2598fdd2e5c12e072fbe4c10fcdc6742bace92c0edba42ca4ca7bc195cb813

Nous avons observé deux formes de phase initiale de l’attaque : dans la première, le fichier se fait passer pour un installateur du navigateur web Google Chrome, dans l’autre il se fait passer pour un document PDF.

Dans le cas de l’installeur du navigateur Google Chrome, le malware se présente sous la forme d’un exécutable reprenant l’icône de Google Chrome.

Dans le cas du document PDF, le fichier est également un exécutable mais avec une double extension. Il s’intitule « Academics.pdf.exe » mais si les paramètres sont réglés par défaut sur la session Windows, l’explorateur de fichiers masque les extensions de fichiers connues (ici, .exe). Visuellement, sans notion d’extension et avec une icône très suggestive, l’utilisateur ne se rend pas compte qu'il a affaire à un exécutable et non à un document PDF.

Figure 1 : Affichage des samples dans l’explorer Windows

Mis à part le changement de nom et d'icône, les attaquants n'ont pas réalisé d'efforts particuliers de personnalisation des samples utilisés. Les informations déclaratives de détails des fichiers (description, nom de la société ou du produit…) sont absentes.

Figure 2 - Détails des fichiers des deux samples

Nous n’avons pas assez d’éléments probants pour affirmer comment est distribué ce malware sur les ordinateurs des victimes. Toutefois, la volonté de faire passer les samples pour des exécutables légitimes rendent probable la distribution par phishing (Document PDF) et les sites de sites de téléchargement (Installeur de logiciel).

Langages et obfuscation du ransomware Crypt888

En dehors de l’icône et du fond d’écran, les deux samples sont identiques, dans le sens où leurs codes sources ne sont pas différents. Pour des raisons de simplicité et de lecture dans la suite de l’article, nous allons considérer ces deux souches comme étant des variantes du même malware, présenté sous le nom du ransomware « Crypt888 ».

Le malware utilise plusieurs couches d'obfuscation. À la base, la logique est développée sous la forme d’un script AutoIT, qui a ensuite été packé pour retirer toutes les valeurs constantes du code (chaines de caractères et valeurs numériques).

Les données retirées sont sérialisées et placées dans un fichier distribué avec le script. Ce script et tous les fichiers annexes sont ensuite compilés dans un exécutable qui est à son tour packé par UPX.

Voici un extrait du code AutoIT. Les commentaires sont les valeurs qui ont été reconstruites à partir des fichiers annexes :

Figure 3 - Extrait du code AutoIT d’un des samples

Chronologie de l’attaque du ransomware Crypt888

La chronologie en version rapide est la suivante : le ransomware commence par désactiver le mécanisme d'UAC ; il chiffre ensuite les fichiers situés dans les dossiers utilisateurs et les dossiers publics avec une clé fixe ; et enfin, il lance l’affichage de la demande de rançon via un changement du fond d'écran.

La chronologie en version détaillée est beaucoup plus complexe, récapitulée en image ci-dessous.

Figure 4 - Schéma récapitulatif du fonctionnement de Crypt888

L’infection par le ransomware se compose quant à lui en quatre étapes, qui seront détaillées dans des paragraphes dédiés juste ensuite :

  • Bypass de l’UAC via Side-Loading
  • Désactivation de l’UAC
  • Parcours et chiffrement des fichiers
  • Affichage de la note de rançon

Bypass de l’UAC via Side-Loading

Préparation d’un Side-Loading

Le ransomware commence par placer deux archives au format CAB (32.cab et 64.cab) dans le dossier temporaire de l'utilisateur courant : « C:\Users\<userName>\AppData\Local\Temp\ ».

Ces archives contiennent respectivement les versions 32 et 64 bits d'une librairie DLL nommée « cryptbase.dll ». Nous verrons plus tard que ce fichier DLL contient du code malveillant. Le malware tente ensuite de déployer la version correspondante à l'architecture processeur dans le dossier système « C:\WINDOWS\system32\migwiz\ ».

À ce moment précis, le malware va manquer de droits mais pour il va utiliser l'outil « Microsoft Windows Update Standalone Installer » (wusa.exe) avec le paramètre « /extract » pour ne pas rester bloqué. Cette commande permet de placer le contenu d'une archive à un emplacement arbitraire sans présenter la fenêtre d'avertissement de l'UAC sur un système Windows ayant la configuration par défaut.

Note : L'outil « wusa.exe » a été introduit avec Windows Vista et est utilisé dans le processus de mise à jour de Windows. En réponse à divers abus, Microsoft a décidé de retirer le paramètre « /extract » des versions fournies avec Windows 10. Cela implique donc que ce malware ne cible que les « anciens » Windows.

Figure 5 - Schéma récapitulatif de la mise en place du Side-Loading

Déclenchement du Side-Loading

Le malware dépose ensuite un script VBS nommé « 888.vbs » dans le dossier temporaire de l'utilisateur puis l'exécute. Le contenu du script VBS montre un lancement de l'utilitaire « migwiz.exe » avec les paramètres suivants :

Figure 6 - Contenu du script 888.vbs

Le programme « migwiz.exe » est un outil Microsoft légitime permettant de réaliser des migrations de données d'un poste Windows à un autre. Il a aussi la particularité technique de bénéficier d’une élévation UAC automatique, ce qui en fait un candidat potentiel pour des tentatives de bypass UAC.

Les actions malveillantes ne sont pas réalisées directement par ce programme. Mais pour son fonctionnement, il a besoin de charger le module « cryptbase.dll », lequel, dans le contexte technique de l’attaque, a justement été déposé par le malware dans le répertoire de « migwiz.exe ».

Cette version malveillante du module est donc prioritaire et sera chargée à la place de celle officielle fournie par Microsoft. Le code malveillant s’exécutera donc dans le contexte de cet exécutable légitime qui démarre automatiquement avec les droits d’administrateur.

Figure 7 - Schéma récapitulatif du déclenchement du Side-Loading

Désactivation de l'UAC

Une fois le Side-Loading déclenché, le module « cryptbase.dll » malveillant déposé par le malware s’assure qu'il est chargé par le processus « migwiz.exe ». Si c'est le cas, il exécute la commande donnée en paramètre de ligne de commande, ce qui permet donc d'exécuter des commandes dans le contexte du processus « migwiz.exe », lequel bénéficie d'une auto-élévation UAC.

Dans le cas de la chaine d’attaque, la commande passée à « migwiz.exe » permet d'écrire une valeur particulière dans la base de registres qui désactive le mécanisme d'UAC sur le système. De cette manière, si Crypt888 effectue des actions nécessitant des privilèges, elles pourront être réalisées directement sans que l'utilisateur n’ait à accepter un message de validation.

Note : Sur les versions à partir de Windows 8, cette étape ne fonctionne plus car « migwiz.exe » n'est plus présent par défaut. Cela implique encore une fois que ce malware ne cible que les « anciens » Windows.

Parcours et chiffrement des fichiers

Fichiers ciblés

L'exécutable initial de Crypt888 cherche à chiffrer tous les fichiers situés dans les sous répertoires « Documents », « Pictures », « Videos », « Desktop » et « Music » du dossier de l'utilisateur courant et du dossier partagé entre les utilisateurs : « Public ».

Note : Les samples étudiés sont étonnants par le fait de chercher à acquérir un niveau de privilège plus élevé au travers de bypass UAC, alors que les fichiers ciblés peuvent être modifiés avec les droits par défaut de l’utilisateur.

Chiffrement des fichiers

Les fichiers trouvés sont chiffrés en utilisant une clé fixe appliquée à l'algorithme DES. Ci-dessous le contenu d’un fichier avant et après chiffrement :

Figure 8 - Contenu d’un fichier avant et après chiffrement

Note : L’algorithme de chiffrement DES est déprécié depuis le début des années 2000 car il est devenu faible comparé aux puissances de calculs. On se serait attendu à l’emploi d’un algorithme de chiffrement plus « fort » de la part d’un ransomware ; ce qui nous pousse une nouvelle fois à penser qu’il n’est pas très évolué.

Renommage des fichiers chiffrés

Une fois les données chiffrées, le nom du fichier est préfixé de la chaine « Lock ». Il est donc possible de déchiffrer les fichiers altérés car les fichiers chiffrés sont clairement identifiables d’une part et l'algorithme de chiffrement est réversible et utilise une clef fixe d’autre part.

Voici le contenu d’un dossier avant et après chiffrement :

Figures 9 et 10 - Listing de fichiers avant et après chiffrement

Affichage de la note de rançon

Voici les fonds d'écran configurés par les deux samples :

Figure 11 - Fonds d’écran potentiels de demande de rançon

Note : Un des samples affichent une demande rançon en se présentant comme le malware « Pablukl0cker ». Une analyse de ce malware a cependant montré qu’il n’est en rien similaire aux samples étudiés dans ce rapport. Nous ne disposons pas d’éléments concrets pour affirmer pourquoi ces cyber-criminels veulent se faire passer pour un autre mais plusieurs hypothèses sont plausibles comme profiter de la notoriété d’un autre groupe de cyber-criminels Ou donner de fausses indications pour tromper les victimes et éviter une réaction efficace.

Synthèse et modélisation de l’attaque du ransomware Crypt888

En synthèse, « Crypt888 » est un ransomware très simpliste visant d'anciennes versions de Windows (Vista et 7). Le malware semble avoir demandé peu de moyens pour son développement et les motivations d'utilisation doivent sûrement résider dans sa simplicité d'utilisation, sa sobriété et son efficacité. Il n'y a par exemple pas besoin de maintenir une infrastructure de C&C pour générer les clés de chiffrement. Bien que le ransomware soit de conception ancienne (on en trouve les premières traces dès 2016), il semble toujours actif dans certaines régions géographiques comme dans le sud-est de l’Asie.

Plusieurs indices nous laissent penser que peu d’efforts ont été dédiés au développement du ransomware :

  • l'algorithme de chiffrement (DES) est déprécié depuis le début des années 2000 ;
  • les développeurs n’ont pas maintenu le malware pour supporter les évolutions du système Windows au court des années : la désactivation de l'UAC ne fonctionne donc pas sur les versions de Windows 8 et supérieures ;
  • la conception du système cryptographique rend les données facilement déchiffrables (clé de chiffrement fixe) ;
  • aucune action n'est réalisée pour désactiver le mécanisme de Shadow Copies (sauvegardes natives de Windows permettant de restaurer les fichiers) ;
  • le ransomware ne cible pas les fichiers des autres utilisateurs ou les partages réseaux par exemple.

Ce ransomware est un nouvel exemple qui illustre l'attrait des criminels pour les malwares simples d'utilisation, ne nécessitant aucune maintenance et très peu de compétences techniques. Pour développer le ransomware et l’exploiter, les n’ont besoin que de peu de compétences en programmation et aucune en administration système. De fait, aucun frais d’infrastructure n’est nécessaire pour héberger le serveur C&C. De plus, le malware est facilement réutilisable sans posséder le code source. Il est alors fort possible que des groupes cyber-criminels autres que les développeurs utilisent le ransomware.

Pour aller plus loin sur le sujet, voici la kill chain MITRE ATT&CK mise en œuvre par le ransomware Crypt888 :

Voici le détail de l’utilisation des techniques MITRE ATT&CK par le ransomware Crypt888 :

IOC du ransomware Crypt888

Lors de nos recherches, nous avons trouvé d’autres « samples initiaux », très proches de ceux analysés dans cet article. Sans les avoir étudiés précisément, nous nous permettons de les citer :

  • 130550cf5ec5ec37a4985b0fd3c66582d941c80e35e804e98a842dc5bef38c27
  • 134516fee6594208afbe6c4fe9dec0926130afecd9f46e26989f202176cea01e
  • 1480cc9e090d2edaf3de59b1b4e76a43c8f1fe40f66e73c5c6b9c91b69ba7a00
  • 1585208cccb80adbaa116c96f0efae1ccfdbc0fe7d9cff97c9c5ba714d18fd92
  • 15ba088d5cbc5a367f44e2a36beccee4ba90fec855c20e2b18adc889bd3b1bff
  • 1850cae22f29cb94c33b33a2361ed7de3c4a94c42cb3b3bda69b2b26dbec3259
  • 1aea04f6ca6974cbed14b9858dd6731b0d38d1313db23a38145dacdace725932
  • 219789b31182abc8cbd83b5fee52d72f9a1bf20a38557c2d5b9a2aa96281e5de
  • 234f4ac3322a8f958a20d7e68ea60a95732ede2d4b4050bb800d66a6b6c23636
  • 2f8d4e1d4a358d31716fcb5f7bc8d00913708ac47e5607265b33d47b201fa58b
  • 340aff7b8b16baa0878296d974b3a3114fb84dde6dd891bfe64adc8c12bd2cb5
  • 35c278afce8c96e43d556ed58e82108cbef6253e52e6ffcb04edac695d1bafbf
  • 3f0cc63d786e4f582a2bf200ac2fde5f44a3e095b5cf40a1a8dedcbe4fb1aded
  • 4cdaecbad21f704af5cdfb089a88c2947ebe3dc4c6965f5d273533c6810162ea
  • 53422a8efff6d48f7a985a6cb48b26035ca1cda53c40b1aeea1864270c324831
  • 5574d56d513187f1c174c30f07c7d8b61d312cd0c303012e53a7877e0564bee8
  • 5e0a2630d8bbc20de8b90ccd89389f8c01298b475fd8330738fe5519a6e01cfb
  • 6410f220fdbd34dae565f5fba45e85107741c13d19a91b3126e735fbe0425606
  • 642565dfff9850356709a6a094c169e1ee83cba56ac1bd92477e7de01e965ac3
  • 6659bf0069dfeabc33ec7ac5ec0c50e5a8cf70aa10f4201a83b870aa6c115627
  • 66bf9854472002fdfba5974f8fcba00b08b721c7241a1f0df06d18fd0858a387
  • 6bfe111be2d46f80abf6eea2371059d8e5dbaa3cecdf9aaf242f23ef894869f3
  • 6d8a15c8fdda25a9c1ac11028a93c0a6d95e1dd8327e7558a67bcf0ac39e2da6
  • 70d76ed4d836413447756b708875881f2afcf1bf7a00609e8cd37fa04fff354e
  • 72c83f54ef705cfd6ec86ac5e1a28810744670f6064c2b9a9501d5208b1d54b1
  • 72dd91677f6f8e8d5587d4a9c684f46eda77ede9dfcf22c699af8651cb407d34
  • 85f34cc8fe6247cfc13b3521a4678030a120f623bfc85bca186a8291a926d0b0
  • 8b726e8f27d6241d914588a1bd39fb37cf4ba5b181ff013c083e71f0f1ee4ff9
  • 82a576880faa9c4c5f017688ea414f54e10d7db78a83def90eb8a98c88c078cb
  • 90dab08c9499bf6bbe9795116f9207d047283eccfee792894335b8ea1afbcac7
  • 99ff99963727eac3b9766674faf1660348453c4509741be7d975f88a69a83331
  • a046b579a3bcd7eb5e044bfa10161ca5ae78dc3ebd395244d3f764b179f4a827
  • a1d09a7202623cbdb4278d980a522320be83ceb1f99d5f4ed87b4844fb8064a9
  • aa74b00f92a43501e52e20a8c214dd2e9c3d86c14935b3cbb01e2a81fca2c9e3
  • acc6114839d91d04b44de3f4483abcbbaeadb16294ce058348046f089bc65283
  • acd106cb5ac9eb0ca722b3453c9641e536db573dbf5e6dc03591b5158b751a41
  • b10a289269fea8392fae69aef57ed8fd7ed1faaec188bb4526927a37d99b22a8
  • b19bf8d7c338fdbbf4c15cf91749796ed7d9bd6ff2bd39c0d8a1b9a439db0bf7
  • bb243a3d07a96ff26c89496a9901c14772f235d0a678798f30faa389a25b1bb7
  • cf7a2ca1077093ada33b15a0ed40067eee421e084d2fefb544d865352b1138d5
  • d25176c86fdaa192fdf02abc04842f05c40bb7c0f6bfce8864f166031bd0ba32
  • d7c797ecf5135e96cf7a6936ac5eb53d6cd39e019159789d6ba857f6285eaddb
  • daa2b6c8201bd33d3bb871e2b94ec3beb4b4de471104082b0eafece5bd68ccc3
  • dd99e24f05e4b1ffcfcc8823826fb098db7a3793b0c798f8fc195351812330f7
  • e0c82339cbf535b0b30cef16dcb590cbdfe3898605776c6ca296070c5b11c9d9
  • e3d2dd6e47f0b1b1f9b0816b83107c94d5fc46cc299e7dd9470610130bb8ce13
  • e65d2f61b97db8f22a370b987ddc50fd26b1c95e1ec545c2777484796fbf942a
  • ecf420df36237d9c0b360bbde960ddf398759a128f56f4a0ff8717f107741c8b
  • ee372cd7a3457e169a7b8ebaabce843531d67c6f0c72cf17ec2fb7b292f43b4a
  • f1648b93c9f1fd740aaf2e367284c6e23ecebe8238b9dfd50c06c2a664184ee7
  • f582b4211193f0db6e45196677949425618306d270e47ac720cfe58a537147ff
  • f59dc4c4dceb805f083b4aad13705e2a4dde67967e9dd29fa8bb6fce3e00b1f0
  • d25176c86fdaa192fdf02abc04842f05c40bb7c0f6bfce8864f166031bd0ba32
  • d7c797ecf5135e96cf7a6936ac5eb53d6cd39e019159789d6ba857f6285eaddb
  • daa2b6c8201bd33d3bb871e2b94ec3beb4b4de471104082b0eafece5bd68ccc3
  • dd99e24f05e4b1ffcfcc8823826fb098db7a3793b0c798f8fc195351812330f7
  • e0c82339cbf535b0b30cef16dcb590cbdfe3898605776c6ca296070c5b11c9d9
  • e3d2dd6e47f0b1b1f9b0816b83107c94d5fc46cc299e7dd9470610130bb8ce13
  • e65d2f61b97db8f22a370b987ddc50fd26b1c95e1ec545c2777484796fbf942a
  • ecf420df36237d9c0b360bbde960ddf398759a128f56f4a0ff8717f107741c8b
  • ee372cd7a3457e169a7b8ebaabce843531d67c6f0c72cf17ec2fb7b292f43b4a
  • f1648b93c9f1fd740aaf2e367284c6e23ecebe8238b9dfd50c06c2a664184ee7
  • f582b4211193f0db6e45196677949425618306d270e47ac720cfe58a537147ff
  • f59dc4c4dceb805f083b4aad13705e2a4dde67967e9dd29fa8bb6fce3e00b1f0
  • dd99e24f05e4b1ffcfcc8823826fb098db7a3793b0c798f8fc195351812330f7
  • e0c82339cbf535b0b30cef16dcb590cbdfe3898605776c6ca296070c5b11c9d9
  • e3d2dd6e47f0b1b1f9b0816b83107c94d5fc46cc299e7dd9470610130bb8ce13
  • e65d2f61b97db8f22a370b987ddc50fd26b1c95e1ec545c2777484796fbf942a
  • ecf420df36237d9c0b360bbde960ddf398759a128f56f4a0ff8717f107741c8b
  • ee372cd7a3457e169a7b8ebaabce843531d67c6f0c72cf17ec2fb7b292f43b4a
  • f1648b93c9f1fd740aaf2e367284c6e23ecebe8238b9dfd50c06c2a664184ee7
  • f582b4211193f0db6e45196677949425618306d270e47ac720cfe58a537147ff
  • f59dc4c4dceb805f083b4aad13705e2a4dde67967e9dd29fa8bb6fce3e00b1f0
  • ee372cd7a3457e169a7b8ebaabce843531d67c6f0c72cf17ec2fb7b292f43b4a
  • f1648b93c9f1fd740aaf2e367284c6e23ecebe8238b9dfd50c06c2a664184ee7
  • f582b4211193f0db6e45196677949425618306d270e47ac720cfe58a537147ff
  • f59dc4c4dceb805f083b4aad13705e2a4dde67967e9dd29fa8bb6fce3e00b1f0

Moyens de protection Stormshield

Breach Fighter face au ransomware Crypt888

Le service de sandboxing Breach Fighter, disponible en option dans les firewalls Stormshield Network Security (sur le flux SMTP/HTTP/FTP) et également en API, détecte et bloque le malware.

Figure 12 - Détection par Breach Fighter du premier sample étudié

Figure 13 - Détection par Breach Fighter du second sample étudié

Indice de confiance de la protection proposée par Stormshield

Indice de confiance de l’absence de faux positif

Stormshield Network Security face au ransomware Crypt888

Les firewalls Stormshield Network Security ne peuvent pas détecter l’activité du malware, car il n’effectue aucune communication réseau. Ils peuvent toutefois détecter le transport du malware avec l’option Advanced Antivirus, même sans la présence de l’option Breach Fighter.

Les signatures de détection sont : « AIT:Trojan.Nymeria.4490 » et « Gen:Variant.Strictor.54686 ».

Indice de confiance de la protection proposée par Stormshield

Indice de confiance de l’absence de faux positif

Stormshield Endpoint Security Evolution face au ransomware Crypt888

La solution SES Evolution, équipée des politiques de sécurité v2403a, est capable de détecter et de bloquer le malware lors de son exécution, avant même le commencement du chiffrement.

Indice de confiance de la protection proposée par Stormshield

Indice de confiance de l’absence de faux positif

Recommandations face au ransomware Crypt888

Autres recommandations applicables :

  • veillez à maintenir vos systèmes d’exploitations à jour ;
  • si ce n’est pas déjà fait, veuillez appliquer la version la plus récente des politiques de SES Evolution (v2403a à ce jour) ;
  • en cas d’infection, faites-vous accompagner par des professionnels si vos équipes ne peuvent traiter l’incident.

Partager sur

[juiz_sps buttons="facebook, twitter, linkedin, mail"]
De la protection des réseaux informatiques à celle de vos infrastructures opérationnelles en passant par le chiffrement de vos données, découvrez la profondeur de nos lignes de produits. De toute taille, nos produits assurent le même niveau de sécurité. Notre mission : cyber-séréniser vos organisations en vous assurant le meilleur de notre expertise.
Notre équipe de Cyber Threat Intelligence remplit deux missions principales : étudier les menaces cyber pour les comprendre et améliorer en continu les protections des produits de Stormshield. Le tout, dans l’optique de contribuer à l’effort de la communauté de la cybersécurité pour faire face aux menaces cyber. Découvrez-en plus.