www-jmbit-de/content/blog/2023-02-05-esxiargs.md

69 lines
4.0 KiB
Markdown

---
title: "ESXiArgs"
date: 2023-02-05T14:36:45+01:00
author: Johannes Bülow
draft: 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](https://www.vmware.com/security/advisories/VMSA-2021-0002.html), 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](https://bazaar.abuse.ch/sample/773d147a031d8ef06ee8ec20b614a4fd9733668efeb2b05aa03e36baaf082878/#yara)
der Backdoor, das ich analysiert habe, wurde auf port 8008 eine Webshell gestartet:
```python
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](/about/).
## 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](/img/blog/esxiargs-ransomnote.jpg)
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