
CVE-2020-0688 PoC
Dieser Proof-of-Concept für CVE-2020-0688 enthält Funktionen zum Scannen und Ausnutzen einer verwundbaren On-Prem-Exchange-Instanz.
scan - Angeben von Anmeldeinformationen und Zielinformationen, um die für die Ausnutzung erforderlichen Cookies zu erhalten, und Speichern dieser in 'cookies.txt'. Außerdem wird geprüft, ob der Exchange Control Panel (ECP)-Dienst für den Ziel-Exchange-Server exponiert ist, die Authentifizierung gegenüber diesem Dienst versucht und auf eine Übereinstimmung mit dem entsprechenden VIEWSTATEGENERATOR-Wert geprüft. Wenn die Authentifizierung erfolgreich ist, wird der Wert des Sitzungscookies für die Erstellung des serialisierten Payloads ausgegeben.
generate - Angeben des Sitzungscookie-Werts, der über die Funktion 'scan' erhalten wurde, sowie eines Befehls zur Codeausführung. Dadurch wird Ihre Eingabe für ysoserial.net formatiert, um einen serialisierten Payload zur Codeausführung zu erzeugen. Speichern Sie die Ausgabe von ysoserial in einer Datei wie 'payload.txt'.
exploit - Nimmt die Eingabe Ihrer Cookie-Datei, die Sie bei Verwendung der Funktion 'scan' mit erfolgreicher Authentifizierung erhalten haben, und URL-kodiert den Inhalt Ihrer Payload-Datei. Der Exploit führt die entsprechende authentifizierte Anfrage aus, um die Codeausführung gegen verwundbare Instanzen von On-Prem-Exchange auszulösen.
$./ecp_slap
scan - Scan eines Exchange-Hosts und Abruf der für die Ausnutzung benötigten Cookies:
./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 - Generieren des ysoserial.net-Befehls zur Payload-Erstellung:
./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 - Ausnutzung eines verwundbaren Exchange-Servers:
./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
Wenn Sie die Version des On-Prem-Exchange, die Sie ausnutzen möchten, überprüft haben:
Sie aber weiterhin keine erfolgreiche Codeausführung bestätigen können, sollten Sie in Betracht ziehen, einfache Befehle auszuführen, um zu bewerten, ob die Codeausführung funktioniert, wie zum Beispiel:
Beginnen Sie mit dem MSRC-Sicherheitshinweis, der Einzelheiten zu Patches und verwundbaren Versionen von On-Prem-Exchange enthält. Das Abgleichen von Patches mit Microsofts Exchange-Buildnummern hilft bei der Bestimmung der Verwundbarkeit. Um die Ausnutzung dieser Schwachstelle manuell zu reproduzieren, folgen Sie dem hervorragenden ZDI-Write-up.
Wenn Sie dieses Projekt aus dem Quellcode kompilieren möchten, anstatt die kompilierte Version zu verwenden, ist die Einrichtung Ihrer Go-Umgebung oft so einfach wie das Installieren von GoLang und das Setzen der entsprechenden Umgebungsvariable. Die Schritte dazu sind hier dokumentiert.