Linux-versie van RansomHub-ransomware richt zich op VMware ESXi VMs

De ransomware-operatie RansomHub maakt gebruik van een Linux-encryptor die specifiek is ontworpen om VMware ESXi-omgevingen in bedrijfsmatige aanvallen te versleutelen.

RansomHub is een ransomware-as-a-service (RaaS) operatie die in februari 2024 van start ging, met code-overeenkomsten en ledenassociaties met ALPHV/BlackCat en Knight ransomware, en heeft meer dan 45 slachtoffers in 18 landen opgeëist.

Het bestaan van een Windows- en Linux-RansomHub-encryptor is sinds begin mei bevestigd. Recorded Future meldt nu dat de dreigingsgroep ook een gespecialiseerde ESXi-variant in hun arsenaal heeft, die voor het eerst werd waargenomen in april 2024.

In tegenstelling tot RansomHub’s Windows- en Linux-versies die in Go zijn geschreven, is de ESXi-versie een C++-programma dat waarschijnlijk afkomstig is van de inmiddels ter ziele gegane Knight ransomware.

Interessant is dat Recorded Future ook een eenvoudige bug in de ESXi-variant heeft gevonden die verdedigers kunnen gebruiken om het in een eindeloze lus te sturen en encryptie te ontwijken.

RansomHub’s ESXi-encryptor

Ondernemingen hebben zich de virtualisatie van hun servers eigen gemaakt, omdat dit een betere beheer van CPU-, geheugen- en opslagbronnen mogelijk maakt.

Vanwege deze toegenomen adoptie heeft bijna elke ransomware-bende die zich op ondernemingen richt, speciale VMware ESXi-encryptors gemaakt om deze servers aan te vallen.

RansomHub vormt hierop geen uitzondering, met hun ESXi-encryptor die verschillende opdrachtregelopties ondersteunt voor het instellen van een uitvoeringsvertraging, het specificeren welke VM’s uitgesloten moeten worden van encryptie, welke directorypaden moeten worden getarget, en meer.

Configuration options and commands
Configuratieopties en commando’s
Bron: Recorded Future

Het bevat ook ESXi-specifieke commando’s en opties, zoals ‘vim-cmd vmsvc/getallvms’ en ‘vim-cmd vmsvc/snapshot.removeall’ voor het verwijderen van snapshots, en ‘esxcli vm process kill’ voor het afsluiten van VM’s.

ESXi-specific commands
ESXi-specifieke commando’s
​​​​​​​Bron: Recorded Future

De encryptor schakelt ook syslog en andere kritieke diensten uit om logging te belemmeren en kan worden geconfigureerd om zichzelf na uitvoering te verwijderen om detectie en analyse te vermijden.

Het encryptieschema gebruikt ChaCha20 met Curve25519 voor het genereren van publieke en private sleutels, en versleutelt ESXi-gerelateerde bestanden zoals ‘.vmdk,’ ‘.vmx,’ ‘.vmsn,’ slechts gedeeltelijk (intermitterende encryptie) voor snellere prestaties.

Specifiek versleutelt het alleen de eerste megabyte van bestanden groter dan 1MB, en herhaalt het encryptieblokken elke 11MB. Ten slotte voegt het een 113-byte voetnoot toe aan elk versleuteld bestand met de publieke sleutel van het slachtoffer, ChaCha20 nonce, en blokkenaantal.

ESXi variant's encryption scheme
Encryptieschema van de ESXi-variant
Bron: Recorded Future

De losgeldbrief wordt geschreven naar ‘/etc/motd’ (Message of the Day) en ‘/usr/lib/vmware/hostd/docroot/ui/index.html’ om het zichtbaar te maken op inlogschermen en webinterfaces.

RansomHub in een eindeloze lus sturen

Analisten van Recorded Future ontdekten dat de ESXi-variant een bestand genaamd ‘/tmp/app.pid’ gebruikt om te controleren of een instance al actief is.

Als dit bestand bestaat met een process-ID, probeert de ransomware dat proces te beëindigen en sluit het af.

Echter, als het bestand ‘-1’ bevat, komt de ransomware in een oneindige lus terecht waarin het probeert een niet-bestaand proces te beëindigen, en zodoende zichzelf effectief neutraliseert.

Dit betekent praktisch dat organisaties een /tmp/app.pid bestand met ‘-1’ kunnen aanmaken om zich te beschermen tegen de RansomHub ESXi-variant. Dat wil zeggen, totdat de RaaS-operators de bug herstellen en bijgewerkte versies uitrollen voor hun affiliates om in aanvallen te gebruiken.

/** * Hook - container_wrap_end - 999 * * @hooked personal_cv_resume_container_wrap_end */ do_action( 'personal_cv_resume_container_wrap_end', esc_attr( $layout )); get_footer();