Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
marshalsec | Kitploit
أدوات/GitHubGitHub/mbechler/marshalsec
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالأوراق والأبحاثالتعلم والتعليمالفريق الأحمرتطوير الحمولات
GitHubmbechler/marshalsec

marshalsec

عرض المستودع
3.7k678منذ سنة واحدةتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

Java Unmarshaller Security - تحويل بياناتك إلى تنفيذ كود

إذا أتيت إلى هنا بخصوص Log4Shell/CVE-2021-44228، فقد ترغب في القراءة حول نواقل الاستغلال وإصدارات Java runtime المتأثرة: https://mbechler.github.io/2021/12/10/PSA_Log4Shell_JNDI_Injection/

الورقة البحثية

لقد مرّ أكثر من عامين منذ أن قدم كريس فروهوف وغابرييل لورانس أبحاثهما حول ثغرات إلغاء تسلسل الكائنات في Java، والتي أسفرت في النهاية عمّا يمكن وصفه بسهولة بأنه أكبر موجة من أخطاء تنفيذ التعليمات البرمجية عن بُعد في تاريخ Java.

أشارت الأبحاث حول هذا الموضوع إلى أن هذه الثغرات ليست حصرية للآليات التعبيرية مثل Java serialization أو XStream، بل يمكن تطبيق بعضها على آليات أخرى أيضًا.

تقدّم هذه الورقة تحليلًا، بما في ذلك تفاصيل الاستغلال، لمختلف مكتبات marshalling مفتوحة المصدر في Java التي تسمح (أو سمحت) بإلغاء marshalling لأنواع عشوائية مقدمة من المهاجم، وتُظهر أنه بغض النظر عن كيفية تنفيذ هذه العملية وما هي القيود الضمنية الموجودة، فإنها عرضة لتقنيات استغلال مماثلة.

الورقة كاملة متاحة في marshalsec.pdf

إخلاء مسؤولية

تُقدَّم جميع المعلومات والكود لأغراض تعليمية فقط و/أو لاختبار أنظمتك الخاصة بحثًا عن هذه الثغرات.

الاستخدام

يتطلب Java 8. قم بالبناء باستخدام maven mvn clean package -DskipTests. شغّله كما يلي:

root@kitploit:~
java -cp target/marshalsec-[VERSION]-SNAPSHOT-all.jar marshalsec.<Marshaller> [-a] [-v] [-t] [<gadget_type> [<arguments...>]]

حيث

  • -a - يولد/يختبر جميع الـ payloads لذلك marshaller
  • -t - يعمل في وضع الاختبار، حيث يقوم بإلغاء marshalling للـ payloads المُولّدة بعد توليدها.
  • -v - وضع المفصّل (verbose)، على سبيل المثال يعرض أيضًا الـ payload المُولّد في وضع الاختبار.
  • gadget_type - معرّف gadget معين، إذا تم تركه فارغًا فسيتم عرض المتاح منها لذلك marshaller المحدد.
  • arguments - وسائط خاصة بـ gadget

مولّدات الـ payload للمارشالرات التالية مضمنة:

الوسائط والمتطلبات الإضافية

تنفيذ أوامر النظام

  • cmd - الأمر المطلوب تنفيذه
  • args... - معاملات إضافية تُمرَّر كوسائط

لا توجد متطلبات مسبقة.

تحميل الفئات عن بُعد (العادي)

  • codebase - عنوان URL لقاعدة الشيفرة عن بُعد
  • class - الفئة المراد تحميلها

المتطلبات المسبقة:

  • قم بإعداد خادم ويب يستضيف classpath جافا تحت مسار معين.
  • يجب تقديم ملفات الفئات المُترجمة المراد تحميلها وفقًا لاتفاقيات classpath في Java.

تحميل الفئات عن بُعد (ServiceLoader)

  • service_codebase - عنوان URL لقاعدة الشيفرة عن بُعد

الخدمة المراد تحميلها مثبتة حاليًا على javax.script.ScriptEngineFactory.

المتطلبات المسبقة:

  • نفس متطلبات التحميل عن بُعد العادي.
  • تحتاج أيضًا إلى ملف إعداد موفر (provider-configuration) في المسار /META-INF/javax.script.ScriptEngineFactory يتضمن اسم الفئة المستهدفة كنص عادي.
  • الفئة المستهدفة المحددة هناك يجب أن تنفذ واجهة الخدمة javax.script.ScriptEngineFactory.

توجيه مرجع JNDI غير المباشر

  • jndiUrl - عنوان JNDI URL لتشغيل عمليات البحث

المتطلبات المسبقة:

  • قم بإعداد قاعدة شيفرة عن بُعد، كما في التحميل عن بُعد.
  • شغّل خدمة إعادة توجيه مراجع JNDI تشير إلى تلك القاعدة - يتضمن التنفيذان التاليان: marshalsec.jndi.LDAPRefServer و RMIRefServer.
    root@kitploit:~
    java -cp target/marshalsec-[VERSION]-SNAPSHOT-all.jar marshalsec.jndi.(LDAP|RMI)RefServer <codebase>#<class> [<port>]
    
  • استخدم (ldap|rmi)://host:port/obj كـ jndiUrl، بحيث يشير إلى عنوان الاستماع لتلك الخدمة.

تشغيل الاختبارات

هناك بعض خصائص النظام التي تتحكم في الوسائط عند تشغيل الاختبارات (عبر maven أو عند استخدام -a)

  • exploit.codebase، القيمة الافتراضية هي http://localhost:8080/
  • exploit.codebaseClass، القيمة الافتراضية هي Exploit
  • exploit.jndiUrl، القيمة الافتراضية هي ldap://localhost:1389/obj
  • exploit.exec، القيمة الافتراضية هي /usr/bin/gedit

تُجرى الاختبارات مع تثبيت SecurityManager يتحقق من تنفيذ أوامر النظام وكذلك من تنفيذ التعليمات البرمجية من قواعد الشيفرة البعيدة. لكي يعمل ذلك، يجب أن تؤدي الفئة المحمّلة المستخدمة إلى تفعيل بعض عمليات فحص مدير الأمان.

تنزيل الأداة
Marshallerتأثير الـ Gadget
BlazeDSAMF(0|3|X)تصعيد إلى Java serialization باستخدام JDK فقط
ثغرات RCE في مكتبات خارجية متنوعة
Hessian|Burlapثغرات RCE في مكتبات خارجية متنوعة
Castorثغرة RCE في مكتبة تابعة (dependency)
Jacksonثغرة RCE محتملة باستخدام JDK فقط، ثغرات RCE في مكتبات خارجية متنوعة
Javaثغرة RCE خارجية أخرى
JsonIOثغرة RCE باستخدام JDK فقط
JYAMLثغرة RCE باستخدام JDK فقط
Kryoثغرات RCE في مكتبات خارجية
KryoAltStrategyثغرة RCE باستخدام JDK فقط
Red5AMF(0|3)ثغرة RCE باستخدام JDK فقط
SnakeYAMLثغرات RCE باستخدام JDK فقط
XStreamثغرات RCE باستخدام JDK فقط
YAMLBeansثغرة RCE في مكتبة خارجية