Un échantillon du chiffreur VMware ESXi du groupe de ransomwares Qilin a été trouvé et il pourrait s’agir de l’un des chiffreurs Linux les plus avancés et personnalisables jamais vus à ce jour.

Les entreprises se tournent de plus en plus vers des machines virtuelles pour héberger leurs serveurs, car elles permettent une meilleure utilisation des ressources disponibles en matière de processeur, de mémoire et de stockage.

En raison de cette adoption, presque tous les gangs de ransomwares ont créé des chiffreurs VMware ESXi dédiés pour cibler ces serveurs.

Alors que de nombreuses opérations de ransomware utilisent le code source divulgué de Babuk pour créer leurs chiffreurs, quelques-unes, comme Qilin, créent leurs propres chiffreurs pour cibler les serveurs Linux.

Qilin cible VMware ESXi
Le mois dernier, le chercheur en sécurité MalwareHunterTeam a trouvé un chiffreur Linux ELF64 pour le gang de ransomware Qilin et l’a partagé avec Breachtrace pour analyse.

Bien que le chiffreur puisse être utilisé sur les serveurs Linux, FreeBSD et VMware ESXi, il se concentre principalement sur le chiffrement des machines virtuelles et la suppression de leurs instantanés.

Le chiffreur de Qilin est construit avec une configuration intégrée spécifiant l’extension des fichiers cryptés, les processus à terminer, les fichiers à crypter ou exclure et les dossiers à crypter ou exclure.

Cependant, il inclut également de nombreux arguments de ligne de commande permettant une personnalisation approfondie de ces options de configuration et de la manière dont les fichiers sont chiffrés sur un serveur.

Ces arguments de ligne de commande incluent des options pour activer un mode de débogage, effectuer une exécution sans chiffrer aucun fichier ou personnaliser la manière dont les machines virtuelles et leurs instantanés sont chiffrés.

Chiffreur Qilin Linux

La liste complète des options de ligne de commande est répertoriée ci-dessous :

OPTIONS:
-d,--debug               Enable debug mode (logging level set to DEBUG, disables backgrounding)
   --dry-run             Perform scan for files to be processed, do not modify them
-h,--help                This help
-l,--log-level <number>  Set logging level. Values are from 0 for FATAL up to 5 for DEBUG
   --no-df               Ignore configured white-/black- lists of directories
   --no-ef               Ignore configured white-/black- lists of extensions
   --no-ff               Ignore configured white-/black- lists of files
   --no-proc-kill        Disables process kill
-R,--no-rename           Disables rename of completed files
   --no-snap-rm          Disables snapshot deletion
   --no-vm-kill          Disables VM kill
-p,--path <string>       Specifies top-level directory for files search
   --password <string>   Password for startup
-r,--rename              Enables rename of completed files (default)
-t,--timer <number>      Enabled timed delay before encryption (seconds)
-w,--whitelist           Use whitelists for inclusion instead of blacklists for exclusion (later is default behavior)
-y,--yes                 Assume answer 'yes' on all questions (script mode)

Dans l’échantillon analysé par Breachtrace.com, le chiffreur est configuré par défaut avec les exclusions et critères de ciblage suivants :

Processus à ne pas terminer :

"kvm", "qemu", "xen"

Répertoires à exclure du chiffrement :

"/boot/", "/proc/", "/sys/", "/run/", "/dev/", "/lib/", "/etc/", "/bin/", "/mbr/", "/lib64/", "/vmware/lifecycle/", "/vdtc/", "/healthd/"

Fichiers à exclure du chiffrement :

"initrd", "vmlinuz", "basemisc.tgz", "boot.cfg", "bootpart.gz", "features.gz", "imgdb.tgz", "jumpstrt.gz", "onetime.tgz", "state.tgz", "useropts.gz"

Extensions de fichiers à exclure du chiffrement :

"v00", "v01", "v02", "v03", "v04", "v05", "v06", "v07", "v08", "v09", "b00", "b01", "b02", "b03", "b04", "b05", "b06", "b07", "b08", "b09", "t00", "t01", "t02", "t03", "t04", "t05", "t06", "t07", "t08", "t09"

Répertoires à cibler pour le chiffrement :

"/home", "/usr/home", "/tmp", "/var/www", "/usr/local/www", "/mnt", "/media", "/srv", "/data", "/backup", "/var/lib/mysql", "/var/mail", "/var/spool/mail", "/var/vm", "/var/lib/vmware", "/opt/virtualbox", "/var/lib/xen", "/var/opt/xen", "/kvm", "/var/lib/docker", "/var/lib/libvirt", "/var/run/sr-mount", "/var/lib/postgresql", "/var/lib/redis", "/var/lib/mongodb", "/var/lib/couchdb", "/var/lib/neo4j", "/var/lib/cassandra", "/var/lib/riak", "/var/lib/influxdb", "/var/lib/elasticsearch"

Fichiers à cibler pour le chiffrement :

"3ds", "3g2", "3gp", "7z", "aac", "abw", "ac3", "accdb", "ai", "aif", "aiff", "amr", "apk", "app", "asf", "asx", "atom", "avi", "bak", "bat", "bmp", "bup", "bz2", "cab", "cbr", "cbz", "cda", "cdr", "chm", "class", "cmd", "conf", "cow", "cpp", "cr2", "crdownload", "cs", "csv", "cue", "cur", "dat", "db", "dbf", "dds", "deb", "der", "desktop", "dmg", "dng", "doc", "docm", "dot", "dotm", "dotx", "dpx", "drv", "dtd", "dvi", "dwg", "dxf", "eml", "eps", "epub", "f4v", "fnt", "fon", "gam", "ged", "gif", "gpx", "gz", "h264", "hdr", "hpp", "hqx", "htm", "html", "ibooks", "ico", "ics", "iff", "image", "img", "indd", "iso", "jar", "java", "jfif", "jpe", "jpeg", "jpf", "jpg", "js", "json", "jsp", "key", "kml", "kmz", "log", "m4a", "m4b", "m4p", "m4v", "mcd", "mdbx", "mht", "mid", "mkv", "ml", "mobi", "mov", "mp3", "mp4", "mpa", "mpeg", "mpg", "msg", "nes", "numbers", "odp", "ods", "odt", "ogg", "ogv", "otf", "ova", "ovf", "pages", "parallels", "pcast", "pct", "pdb", "pdf", "pds", "pef", "php", "pkg", "pl", "plist", "png", "pptm", "prproj", "ps", "psd", "ptx", "py", "qcow", "qcow2", "qed", "qt", "r3d", "ra", "rar", "rm", "rmvb", "rtf", "rv", "rw2", "sh", "shtml", "sit", "sitx", "sketch", "spx", "sql", "srt", "svg", "swf", "tar", "tga", "tgz", "thmx", "tif", "tiff", "torrent", "ttf", "txt", "url", "vdi", "vhd", "vhdx", "vmdk", "vmem", "vob", "vswp", "vvfat", "wav", "wbmp", "webm", "webp", "wm", "wma", "wmv", "wpd", "wps", "xhtml", "xlsm", "xml", "xspf", "xvid", "yaml", "yml", "zip", "zipx"

Configurer une liste de machines virtuelles qui ne doivent pas être chiffrées est également possible.

Lors de l’exécution du chiffreur, un acteur malveillant doit spécifier le répertoire de départ du chiffrement et un mot de passe spécifique lié au chiffreur.

Une fois exécuté, le ransomware déterminera s’il s’exécute sur un serveur Linux, FreeBSD ou VMware ESXi.

S’il détecte VMware ESXi, il exécutera les commandes esxcli et esxcfg-advcfg suivantes, que nous n’avons pas vues dans d’autres chiffreurs ESXi dans le passé.

for I in $(esxcli storage filesystem list |grep 'VMFS-5' |awk '{print $1}'); do vmkfstools -c 10M -d eagerzeroedthick $I/eztDisk > /dev/null; vmkfstools -U $I/eztDisk > /dev/null; done
for I in $(esxcli storage filesystem list |grep 'VMFS-5' |awk '{print $1}'); do vmkfstools -c 10M -d eagerzeroedthick $I/eztDisk; vmkfstools -U $I/eztDisk; done
for I in $(esxcli storage filesystem list |grep 'VMFS-6' |awk '{print $1}'); do vmkfstools -c 10M -d eagerzeroedthick $I/eztDisk > /dev/null; vmkfstools -U $I/eztDisk > /dev/null; done
for I in $(esxcli storage filesystem list |grep 'VMFS-6' |awk '{print $1}'); do vmkfstools -c 10M -d eagerzeroedthick $I/eztDisk; vmkfstools -U $I/eztDisk; done
esxcfg-advcfg -s 32768 /BufferCache/MaxCapacity
esxcfg-advcfg -s 20000 /BufferCache/FlushInterval

L’expert VMware Melissa Palmer a déclaré à Breachtrace que ces commandes étaient probablement copiées à partir des bulletins de support VMware pour résoudre un bogue connu d’épuisement du tas de mémoire VMware et augmenter les performances lors de l’exécution des commandes ESXi sur le serveur.

Avant de chiffrer les machines virtuelles détectées, le ransomware mettra d’abord fin à toutes les machines virtuelles et supprimera leurs instantanés à l’aide des commandes suivantes :

esxcli vm process list
vim-cmd vmsvc/getallvms
esxcli vm process kill -t force -w %llu
vim-cmd vmsvc/snapshot.removeall %llu > /dev/null 2>&1

Tous les fichiers ciblés seront ensuite cryptés et l’extension configurée sera ajoutée au nom du fichier.

Dans chaque dossier, une note de rançon nommée [extension]_RECOVER.txt sera créée. Elle contient des liens vers le site de négociation Tor du gang de ransomwares et les informations de connexion requises pour accéder à la page de discussion de la victime.

Demande de rançon Qilin

L’opération du rançongiciel Qilin
L’opération de ransomware Qilin a été initialement lancée sous le nom d’« Agenda » en août 2022. Cependant, en septembre, elle a été rebaptisée Qilin, qu’elle continue d’exploiter à ce jour.

Comme d’autres opérations de ransomware ciblant les entreprises, Qilin violera les réseaux d’une entreprise et volera des données à mesure qu’elles se propageront latéralement vers d’autres systèmes.

Une fois la collecte des données terminée et l’obtention des informations d’identification de l’administrateur du serveur, les acteurs malveillants déploient le ransomware pour chiffrer tous les appareils du réseau.

Les données volées et les fichiers cryptés sont ensuite utilisés comme levier dans des attaques de double extorsion pour contraindre une entreprise à payer une demande de rançon.

Depuis son lancement, l’opération ransomware a connu un flux constant de victimes, mais a connu une activité accrue vers la fin de 2023.

Une récente attaque de Qilin visait le géant des pièces automobiles Yanfeng.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *