79 lines
4.5 KiB
Markdown
79 lines
4.5 KiB
Markdown
|
---
|
||
|
title: "ESXiArgs"
|
||
|
date: 2023-02-05T14:36:45+01:00
|
||
|
author: Johannes Bülow
|
||
|
draft: false
|
||
|
---
|
||
|
|
||
|
| 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](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.
|
||
|
|
||
|
Laut ONYPHE sind 2,112 IPs kompromittiert (Stand 5.2.2023):
|
||
|
|
||
|
[![Tweet von Onyphe zu kompromittierten Hosts](/img/blog/esxiargs_onyphe.jpg)](https://twitter.com/onyphe/status/1622272331421736962)
|
||
|
|
||
|
|
||
|
## 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
|
||
|
https://twitter.com/onyphe/status/1622272331421736962
|