
नेटिव जावा-आधारित डिसीरियलाइज़ेशन शोषण WebLogic T3 (और T3S) श्रोताओं के लिए।
WebLogic T3 (और T3S) लिसनर के लिए नेटिव Java-आधारित डिसीरियलाइज़ेशन शोषण (जैसा यहाँ उल्लिखित है)। इसके लिए तृतीय-पक्ष निर्भरताएँ ysoserial और wlthint3client आवश्यक हैं।
Oracle Java 7 या 8 की आवश्यकता है। किसी अन्य Java विक्रेता (जैसे OpenJDK या IBM JRE) के साथ परीक्षण नहीं किया गया है, इसलिए मैं इनके लिए समर्थन का कोई वादा नहीं करता। Java 9 या 10 के साथ बनाया जा सकता है, लेकिन मैं इनके लिए समर्थन का कोई वादा नहीं करता।
WLT3Serial Gradle बिल्ड ऑटोमेशन सिस्टम के माध्यम से बनाया जाता है। निर्माण के लिए Gradle 4 का उपयोग किया जाना चाहिए, हालाँकि अन्य संस्करणों का आंशिक रूप से परीक्षण किया गया है (विकास अनुभाग देखें)।
तृतीय-पक्ष निर्भरताएँ:
प्रक्रिया:
git clone https://github.com/Bort-Millipede/WLT3Serial.gitgradle clean preparegradle build -x testOracle Java 7 या 8 की आवश्यकता है। किसी अन्य Java विक्रेता (जैसे OpenJDK या IBM JRE) के साथ परीक्षण नहीं किया गया है, इसलिए मैं इनके लिए समर्थन का कोई वादा नहीं करता। Java 9 या 10 के साथ उपयोग किया जा सकता है, लेकिन मैं इनके लिए समर्थन का कोई वादा नहीं करता।
यदि Property (डिफ़ॉल्ट), Bind या WLBind शोषण विधियों का उपयोग कर रहे हैं, तो WLT3Serial को इस प्रकार निष्पादित किया जाना चाहिए (java '-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 को इस प्रकार निष्पादित किया जाना चाहिए (java '-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 या nmap ssl-enum-ciphers script के साथ लक्ष्य सेवा का स्कैन करे कि कौन से प्रोटोकॉल समर्थित हैं। इस प्रकार, उपयोगकर्ता WLT3Serial निष्पादित करते समय --t3s विकल्प को ठीक कर सकता है।
JavaUnserializeExploits weblogic.py और loubia शोषणों में सुधार करने के प्रयास में, WLT3Serial को Java में निम्नलिखित संसाधनों का उपयोग करके WebLogic T3/T3S सेवाओं से जुड़ने के लिए विकसित किया गया था:
Java में T3 कनेक्शन को नेटिव रूप से संभालने के साथ-साथ उपयोगकर्ता के लिए सहायक कमांड आउटपुट प्रदान करने के लिए उचित त्रुटि प्रबंधन पर जोर दिया गया।
WLT3Serial को निम्नलिखित सॉफ़्टवेयर संस्करणों का उपयोग करके विकसित किया गया था:
विकास के दौरान लाइव परीक्षण WebLogic सर्वर के निम्नलिखित संस्करणों के विरुद्ध किया गया था:
डेवलपर्स सॉफ़्टवेयर को बिना किसी वारंटी के मुफ्त प्रदान करते हैं, और सॉफ़्टवेयर का उपयोग करके सिस्टम को हुए किसी भी नुकसान के लिए कोई जिम्मेदारी नहीं लेते हैं। सॉफ़्टवेयर का उपयोग करते समय सभी स्थानीय, राज्य और संघीय कानूनों का पालन करना उपयोगकर्ता की जिम्मेदारी है।
(C) 2017, 2018 जेफ़री कैप (Bort_Millipede)