
تعداد classpath جافا عن بُعد عبر إلغاء التسلسل
EnumJavaLibs: تعداد مسار الفئة (classpath) عن بُعد عبر إلغاء التسلسل.
نظرة عامة
يمكن استخدام EnumJavaLibs لاكتشاف المكتبات التي يتم تحميلها (أي المتاحة على مسار الفئة) بواسطة تطبيق Java عن بُعد عندما يدعم إلغاء التسلسل.
-----------------
Serially - v1.1
by Stefan Broeder
-----------------
Usage:
EnumJavaLibs {MODE} [OPTIONS]
MODES:
base64 Write base64 encoded serialized objects to CSV file in current directory
rmi {host} {port} RMI mode. Connect to RMI endpoint and try deserialization.
OPTIONS:
-f {string} Only serialize classes from packages which contain the given string (e.g. org.apache.commons)
-d Debug mode on
لمزيد من المعلومات حول كيفية استخدام الأداة، يُرجى الاطلاع على هذه التدوينة.
الحصول على ملفات jar
مطلوب مستودع محلي لملفات jar في ~/.serially/jars. يجب تشغيل سكربت JavaClassDB بلغة python3 لفهرسة ملفات jar قبل تشغيل EnumJavaLibs. إحدى طرق بناء مستودع محلي هي تنزيل مكتبات Java الأكثر شيوعًا من Maven Central. أوفر سكربت getPopularJars.py يمكن استخدامه كما يلي:
./getPopularJars.py 20 | while read x; do wget --quiet -P ~/.serially/jars $x; sleep 5; done
سيقوم هذا الأمر بسحب أكثر 20 ملف jar شيوعًا من mavenrepository.com.
طريقة أخرى لتهيئة مستودع jar المحلي إذا كنت تستخدم Maven، هي نسخ ملفات jar الموجودة لديك بالفعل في ذاكرة التخزين المؤقت لـ Maven (~/.m2/repository)
RMI
لاختبار RMI، أنشأت صورة Docker يمكنك الحصول عليها من [https://cloud.docker.com/repository/docker/summ1t/jmxrmi_vulnerable/general]، والتي تشغّل مضيفًا يستمع إلى RMI على المنفذ 1617. إنه يعمل بإصدار Java 8u40، وهو إصدار قابل للاستغلال. يحتوي على مكتبة nanohttpd-2.2.0.jar محمّلة على مسار الفئة لعرض أن EnumJavaLibs قادر على اكتشاف هذه المكتبة عن بُعد (بشرط أن تكون قد جهّزت مستودعك المحلي بملف jar هذا)