
أداة استغلال لإلغاء التسلسل مبنية على جافا أصلي لمستمعات WebLogic T3 (و T3S).
أداة استغلال إلغاء التسلسل (Deserialization) أصلية بلغة جافا لمستمعي T3 (و T3S) في WebLogic (كما هو موضح هنا). تتطلب تبعيات طرف ثالث ysoserial و wlthint3client.
يتطلب Oracle Java 7 أو 8. لم يتم اختباره مع أي بائع جافا آخر (مثل OpenJDK أو IBM JRE)، لذا لا أعد بدعم لهذه. يمكن بناؤه على الأرجح باستخدام Java 9 أو 10، لكني لا أعد بدعم ذلك.
يتم بناء WLT3Serial عبر نظام البناء Gradle. يجب استخدام Gradle 4 للبناء، على الرغم من اختبار إصدارات أخرى جزئيًا (انظر قسم التطوير).
التبعيات من طرف ثالث:
الإجراء:
git clone https://github.com/Bort-Millipede/WLT3Serial.gitgradle clean preparegradle build -x testيتطلب Oracle Java 7 أو 8. لم يتم اختباره مع أي بائع جافا آخر (مثل OpenJDK أو IBM JRE)، لذا لا أعد بدعم لهذه. يمكن استخدامه على الأرجح مع Java 9 أو 10، لكني لا أعد بدعم ذلك.
إذا كنت تستخدم طرق الاستغلال Property (الافتراضي)، Bind أو WLBind، يجب تنفيذ WLT3Serial على النحو التالي (لاحظ قيمة معامل -cp في جافا):
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_CMDjava -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 في جافا):
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_CMDjava -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أدناه هو طباعة قائمة المساعدة المدمجة:
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 مختلفة تمامًا عن الطرق الأخرى.
يوصى بأن يقوم المستخدم بمسح الخدمة الهدف باستخدام sslscan أو نص ssl-enum-ciphers في nmap لمعرفة البروتوكولات المدعومة. بهذه الطريقة، يمكن للمستخدم ضبط خيار --t3s بدقة عند تنفيذ WLT3Serial.
في محاولة لتحسين استغلال JavaUnserializeExploits weblogic.py و loubia، تم تطوير WLT3Serial بلغة جافا باستخدام الموارد التالية للاتصال بخدمات T3/T3S في WebLogic:
تم التركيز على التعامل مع اتصالات T3 بشكل أصلي في جافا، بالإضافة إلى معالجة الأخطاء المناسبة لتوفير مخرجات أوامر مفيدة للمستخدم.
تم تطوير WLT3Serial باستخدام إصدارات البرامج التالية:
تم إجراء الاختبارات الحية أثناء التطوير ضد الإصدارات التالية من خادم WebLogic:
يقوم المطورون بتوفير البرنامج مجانًا دون ضمان، ولا يتحملون أي مسؤولية عن أي ضرر يلحق بالأنظمة نتيجة استخدام البرنامج. من مسؤولية المستخدم الالتزام بجميع القوانين المحلية والولائية والفيدرالية أثناء استخدام البرنامج.
(C) 2017, 2018 Jeffrey Cap (Bort_Millipede)