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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
WLT3Serial — أداة استغلال لإلغاء التسلسل مبنية على جافا أصلي لمستمعات WebLogic T3 (و T3S). | Kitploit
أدوات/GitHubGitHub/bort-millipede/wlt3serial
توليد الحمولةتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقArchived
GitHubbort-millipede/wlt3serial

WLT3Serial

أداة استغلال لإلغاء التسلسل مبنية على جافا أصلي لمستمعات WebLogic T3 (و T3S).

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

الأكثر شعبية

عرض الكل →

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

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

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

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

WLT3Serial

أداة استغلال إلغاء التسلسل (Deserialization) أصلية بلغة جافا لمستمعي T3 (و T3S) في WebLogic (كما هو موضح هنا). تتطلب تبعيات طرف ثالث ysoserial و wlthint3client.

المزايا/العيوب مقارنة بـ JavaUnserializeExploits weblogic.py و loubia

المزايا:

  • يتعامل مع اتصال T3/T3S بشكل أصلي (لأغلب طرق الاستغلال) باستخدام جافا بدلاً من استخدام لقطات الحزم لمرة واحدة مع نصوص Python، وبالتالي يجب أن يعمل ضد جميع إصدارات خادم WebLogic.
  • يُنشئ حمولات الكائنات مباشرة عبر ysoserial خلال كل تنفيذ بدلاً من حمولات الكائنات المولدة لمرة واحدة، وبالتالي يدعم جميع أنواع حمولات الكائنات في أحدث إصدار من ysoserial.
  • يحلل (ويعرض إذا طُلب) جميع الاستثناءات (Exceptions) التي يتم رميها أثناء التنفيذ، ويوضح بوضوح النتيجة الإجمالية المفترضة للتنفيذ بناءً على هذه الاستثناءات. يتضمن ذلك إعلام المستخدم إذا بدا أن الاستغلال ناجح، أو إذا فشل الاتصال المشفّر عبر SSL/TLS، أو إذا بدا أن خادم WebLogic الهدف قد تم تصحيحه ضد الاستغلال.
  • يقدم عدة طرق مختلفة لتوصيل الحمولة (تشبه كلاً من JavaUnserialize weblogic.py/loubia و ysoserial.exploit.RMIRegistryExploit).

العيوب:

  • يعتمد على ملف .jar (wlthint3client.jar) لا يمكنني توزيعه (بسبب شروط ترخيص Oracle) ولا يمكن تنزيله إلا باستخدام اسم مستخدم/كلمة مرور Oracle. وبسبب هذا، لا يمكنني توزيع سوى إصدار "خفيف" من الـ jar لا يزال يتطلب من المستخدم الحصول على ملف wlthint3client.jar المطلوب من Oracle.
  • بسبب مشاكل في كيفية تحميل JVM للفئات أثناء التهيئة، لم يعد استخدام ملف WLT3Serial الكامل القابل للتنفيذ (WLT3Serial-full-[VERSION].jar) مدعومًا. لذلك، يتطلب WLT3Serial عدة ملفات (موضحة أدناه) ليعمل بشكل صحيح مع الوظائف الكاملة.

البناء

يتطلب Oracle Java 7 أو 8. لم يتم اختباره مع أي بائع جافا آخر (مثل OpenJDK أو IBM JRE)، لذا لا أعد بدعم لهذه. يمكن بناؤه على الأرجح باستخدام Java 9 أو 10، لكني لا أعد بدعم ذلك.

يتم بناء WLT3Serial عبر نظام البناء Gradle. يجب استخدام Gradle 4 للبناء، على الرغم من اختبار إصدارات أخرى جزئيًا (انظر قسم التطوير).

التبعيات من طرف ثالث:

  • ysoserial - لتوليد حمولات إلغاء التسلسل للكائنات؛ مطلوب الإصدار v0.0.5 أو أعلى (سيتم تنزيله تلقائيًا بواسطة Gradle إذا لم يوفره المستخدم مسبقًا.)
  • wlthint3client - للتعامل مع اتصالات T3/T3S بشكل أصلي؛ يجب توفيره من قبل المستخدم (بسبب شروط ترخيص Oracle): يمكن تنزيله (يتطلب اسم مستخدم/كلمة مرور Oracle) كجزء من ملف wls1036_dev.zip (الموجود في /wlserver/server/lib/wlthint3client.jar) المستضاف على هذه الصفحة ("توزيع مضغوط لنظامي Mac OSX وWindows وLinux" تحت قسم "Oracle WebLogic Server 10.3.6").

الإجراء:

  1. استنساخ مستودع WLT3Serial. git clone https://github.com/Bort-Millipede/WLT3Serial.git
  2. فتح الطرفية والانتقال إلى المستودع المستنسخ.
  3. تنفيذ الأمر التالي لإنشاء دليل البناء الأولي: gradle clean prepare
  4. وضع ملف wlthint3client.jar الذي تم تنزيله في الدليل build/libs/.
  5. (اختياري) إذا كنت تستخدم إصدارًا مفضلاً من ysoserial (v0.0.5 أو أعلى)، ضع ملف ysoserial.jar في الدليل build/libs/.
  6. لبناء ملف WLT3Serial jar (الموجود في build/libs/WLT3Serial-[VERSION].jar)، نفذ الأمر التالي: gradle build -x test

الاستخدام

يتطلب Oracle Java 7 أو 8. لم يتم اختباره مع أي بائع جافا آخر (مثل OpenJDK أو IBM JRE)، لذا لا أعد بدعم لهذه. يمكن استخدامه على الأرجح مع Java 9 أو 10، لكني لا أعد بدعم ذلك.

إذا كنت تستخدم طرق الاستغلال Property (الافتراضي)، Bind أو WLBind، يجب تنفيذ WLT3Serial على النحو التالي (لاحظ قيمة معامل -cp في جافا):

  • على *nix: java -cp /path/to/ysoserial.jar:/path/to/wlthint3client.jar:/path/to/WLT3Serial-[VERSION].jar bort.millipede.wlt3.WLT3Serial [OPTIONS] REMOTE_HOST REMOTE_PORT PAYLOAD_TYPE PAYLOAD_CMD
  • على Windows: java -cp \path\to\ysoserial.jar;\path\to\wlthint3client.jar;\path\to\WLT3Serial-[VERSION].jar bort.millipede.wlt3.WLT3Serial [OPTIONS] REMOTE_HOST REMOTE_PORT PAYLOAD_TYPE PAYLOAD_CMD

إذا كنت تستخدم طريقة الاستغلال CustomClass، يجب تنفيذ WLT3Serial على النحو التالي (لاحظ قيمة معامل -cp في جافا):

  • على *nix: java -cp /path/to/ysoserial.jar:/path/to/WLT3Serial-[VERSION].jar:/path/to/wlthint3client.jar bort.millipede.wlt3.WLT3Serial [OPTIONS] REMOTE_HOST REMOTE_PORT PAYLOAD_TYPE PAYLOAD_CMD
  • على Windows: java -cp \path\to\ysoserial.jar;\path\to\WLT3Serial-[VERSION].jar;\path\to\wlthint3client.jar bort.millipede.wlt3.WLT3Serial [OPTIONS] REMOTE_HOST REMOTE_PORT PAYLOAD_TYPE PAYLOAD_CMD

أدناه هو طباعة قائمة المساعدة المدمجة:

root@kitploit:~
Usage: WLT3Serial [OPTIONS] REMOTE_HOST REMOTE_PORT PAYLOAD_TYPE PAYLOAD_CMD

Options:
	--help				print usage (you're lookin at it)

	--verbose			Verbose output (full thrown exception output; Disabled by default)

	--method=EXPLOIT_METHOD		Exploit Method for delivering generated ysoserial payload
		Exploit Methods:
			Property	Send ysoserial payload as connection environment property value (Default; via javax.naming.Context.lookup(), variation of ysoserial.exploit.RMIRegistryExploit)
			Bind		Send ysoserial payload as object to bind to name (via javax.naming.Context.bind(), similar to ysoserial.exploit.RMIRegistryExploit)
			WLBind		Send ysoserial payload as WebLogic RMI object to bind to name (via weblogic.rmi.Naming.bind(), similar to ysoserial.exploit.RMIRegistryExploit)
			CustomClass	Send ysoserial payload during T3/T3S connection initialization (via custom weblogic.rjvm.ClassTableEntry class, similar to JavaUnserializeExploits weblogic.py)

	--t3s[=PROTOCOL]		Use T3S (transport-encrypted) connection (Disabled by default)
		Protocols:
			TLSv1.2
			TLSv1.1
			TLSv1 (Default)
			SSLv3
			SSLv2 (SSLv2Hello handshake only, then fallback to SSLv3 for communication: this is an Oracle Java limitation, not a WLT3Serial limitation)


Available Payload Types (WebLogic is usually vulnerable to "CommonsCollectionsX" and "JRMPClientX" types):
	(available payloads listed here)

ملاحظات حول طرق الاستغلال

طرق Property و Bind و WLBind متشابهة جدًا. لدرجة أنه إذا لم يكن بالإمكان استغلال النظام الهدف باستخدام إحدى هذه الطرق، فمن المحتمل ألا يمكن استغلاله باستخدام أي منها. طريقة CustomClass مختلفة تمامًا عن الطرق الأخرى.

مزايا/عيوب طرق Property/Bind/WLBind:

  • الميزة: لأن هذه الطرق تقوم بمحاولة الاستغلال عبر فئات/طرق WebLogic المتاحة من ملف wlthint3client.jar، يتم التعامل مع اتصال T3/T3S بشكل أصلي ويتم إنشاء مخرجات ذات معنى (استثناءات، تتبعات المكدس، إلخ) لمساعدة المستخدمين في تحديد احتمالية ونجاح الاستغلال.
  • العيب: وقت كتابة هذا التقرير، قامت Oracle بتصحيح معظم (إن لم يكن كل) طرق الاستغلال باستخدام هذه الطرق.

مزايا/عيوب طريقة CustomClass:

  • الميزة: لأن هذه الطريقة تهاجم محمل فئات WebLogic مختلفًا (يحتوي على مكتبات ثغرات إضافية) عن الطرق أعلاه، تتوفر طرق استغلال جديدة ناجحة.
  • العيب: بسبب طبيعة كيفية توصيل هذه الطريقة للحمولات إلى الخوادم الهدف (عن طريق تعطيل اتصال T3/T3S الأصلي بشكل أساسي)، لا يمكن إنشاء مخرجات ذات معنى (استثناءات، تتبعات المكدس، إلخ) لمساعدة المستخدمين في تحديد احتمالية ونجاح الاستغلال.

ملاحظات حول اتصال T3S

يوصى بأن يقوم المستخدم بمسح الخدمة الهدف باستخدام sslscan أو نص ssl-enum-ciphers في nmap لمعرفة البروتوكولات المدعومة. بهذه الطريقة، يمكن للمستخدم ضبط خيار --t3s بدقة عند تنفيذ WLT3Serial.

التطوير

في محاولة لتحسين استغلال JavaUnserializeExploits weblogic.py و loubia، تم تطوير WLT3Serial بلغة جافا باستخدام الموارد التالية للاتصال بخدمات T3/T3S في WebLogic:

  • https://docs.oracle.com/cd/E21764_01/web.1111/e13717/wlthint3client.htm
  • https://docs.oracle.com/cd/E13222_01/wls/docs92/jndi/jndi.html
  • https://docs.oracle.com/cd/E11035_01/wls100/javadocs/weblogic/rmi/Naming.html
  • https://gist.github.com/fkrauthan/ac8624466a4dee4fd02f

تم التركيز على التعامل مع اتصالات T3 بشكل أصلي في جافا، بالإضافة إلى معالجة الأخطاء المناسبة لتوفير مخرجات أوامر مفيدة للمستخدم.

تم تطوير WLT3Serial باستخدام إصدارات البرامج التالية:

  • Oracle Java 8 Update 191
  • Oracle Java 7 Update 80 و Oracle Java 7 Update 17
  • Gradle 4.10.2, 3.2 (تم اختباره جزئيًا), 2.10 (تم اختباره جزئيًا), 1.4 (تم اختباره جزئيًا)

تم إجراء الاختبارات الحية أثناء التطوير ضد الإصدارات التالية من خادم WebLogic:

  • 10.3.6
  • 12.1.3
  • 12.2.1.1 (عرضة فقط لأنواع معينة من الحمولات وطرق الاستغلال)
  • 12.2.1.2 (عرضة فقط لأنواع معينة من الحمولات وطرق الاستغلال)
  • 12.2.1.3 (عرضة جزئيًا)

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

يقوم المطورون بتوفير البرنامج مجانًا دون ضمان، ولا يتحملون أي مسؤولية عن أي ضرر يلحق بالأنظمة نتيجة استخدام البرنامج. من مسؤولية المستخدم الالتزام بجميع القوانين المحلية والولائية والفيدرالية أثناء استخدام البرنامج.

حقوق النشر

(C) 2017, 2018 Jeffrey Cap (Bort_Millipede)

تنزيل الأداة