4.0 KiB
title | date | author | draft |
---|---|---|---|
ESXiArgs | 2023-02-05T14:36:45+01:00 | Johannes Bülow | false |
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.
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:
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