UPDATE
Mittlerweile ist eine neue Variante im Umlauf, die vmdks unwiederruflich verschlüsselt!

ESXiArgs ist eine vermutlich neue Ransomware-Familie, die ESXi-Server angreift und darauf laufende VMs (teilweise) verschlüsselt. Der wahrscheinlichste Angriffsvektor ist derzeit CVE-2021-21974, ein Heap-Overflow -> RCE Exploit. Benannt ist die Malware danach, dass sie dem Namen verschlüsselter Dateien “.args” anhängt.

Laut ONYPHE sind 2,112 IPs kompromittiert (Stand 5.2.2023):

Tweet von Onyphe zu kompromittierten Hosts

Was ist passiert?

Auf den betroffenen ESXi-Servern wurde vermutlich unter Ausnutzung von CVE-2021-21974 eine reverse shell installiert. In dem Sample der Backdoor, das ich analysiert habe, wurde auf port 8008 eine Webshell gestartet:

HTTPServer(('127.0.0.1', 8008), PostServer).serve_forever()

Ich habe leider nur die python-Datei selbst, da das Skript, das die VMs verschlüsselt, jedoch die Datei /etc/rc.local.d/local.sh leert, ist anzunehmen, dass das Python-Skript selbst von dort aufgerufen wird, also bei jedem reboot neu geladen wird.

Diese Reverse-Shell wurde dann verwendet, um mehrere Dateien unter /tmp/ abzulegen und dann die darunter befindliche compromise.sh auszuführen. Dieses Shellscript verschlüsselt alle Dateien, deren Namen auf “*.vmdk”, “*.vmx”, “*.vmxf”, “*.vmsd”, “*.vmsn”, “*.vswp”, “*.vmss”, “*.nvram” oder “*.vmem” enden, und die kleiner als 128MB sind. Bei Dateien, die größer als 128MB sind, werden nur 100 1MB-Blöcke in der Datei verschlüsselt. Dies bedeutet, dass die VMs selbst in der Regel relativ einfach wiederherstellbar sind. Am Ende dieses Artikels werde ich in der Linksammlung einige Anleitungen verlinken. Sollten Sie dabei Probleme haben, können Sie auch gerne auf mich zukommen.

Woran kann ich einen Befall erkennen?

Sollte das Virus bereits ausgeführt worden sein, sehen Sie auf Port 443 des Servers statt der gewohnten Web-UI diese Website:

Ransom Note

Die Backdoor, die vermutlich für die Infektion verwendet wird/wurde, läuft als Python Webserver. In diesem Fall lief er auf Port 8008, es wäre aber auch so ziemlich jeder andere Port denkbar. Mit esxcli network ip connection list können Sie sich auf dem ESXi-Server anzeigen, welche Netzwerkdienste aktuell laufen. Ebenso sollte in /etc/rc.local.d/ ein Eintrag zu finden sein, der das Python-Script startet. Das Skript selbst dürfte store/packages/vmtools.py heißen.

Welche Voraussetzungen für einen Befall gibt es?

Der ESXi-Server muss, damit CVE-2021-21974 ausgenutzt werden kann, auf Port 427 aus dem Internet erreichbar sein, sowie auf einer Version vor ESXi70U1c-17325551 (ESXi 7.0), ESXi670-202102401-SG (ESXi 6.7) oder ESXi650-202102101-SG (ESXi 6.5) sein. Da diese Malware aber eine bereits deployte Hintertür ausnutzt, reicht es, wenn diese Konstellation in der Vergangenheit existiert hat, um kompromittiert werden zu können (Gesetzt, die Hintertür ist weiterhin aus dem Internet erreichbar)


Linksammlung

Quellen und Weiterführendes:

https://www.bleepingcomputer.com/news/security/massive-esxiargs-ransomware-attack-targets-vmware-esxi-servers-worldwide/ https://blogs.juniper.net/en-us/threat-research/a-custom-python-backdoor-for-vmware-esxi-servers

Mögliche Anleitungen / Ansätze

Ich übernehme KEINE Verantwortung dafür, ob diese Anleitungen funktionieren. Ich habe Online sowohl von Erfolgen als auch Fehlschlägen gelesen. Ich empfehle Ihnen, sich bei wichtigen Daten an Experten zu wenden und die Wiederherstellung nicht selbst zu versuchen. https://enes.dev/ https://www.bleepingcomputer.com/forums/t/782193/esxi-ransomware-help-and-support-topic-esxiargs-args-extension/?p=5470599 https://www.bleepingcomputer.com/forums/t/782193/esxi-ransomware-help-and-support-topic-esxiargs-args-extension/?p=5470896 https://kb.vmware.com/s/article/1026353

Betroffene ESXi-Server

https://www.shodan.io/search?query=html%3A%22TOX_ID%22 https://twitter.com/onyphe/status/1622272331421736962