Pentesting JDWP - Java Debug Wire Protocol
शोषण
JDWP शोषण प्रोटोकॉल की प्रमाणीकरण और एन्क्रिप्शन की कमी पर निर्भर करता है। यह आम तौर पर पोर्ट 8000 पर पाया जाता है, लेकिन अन्य पोर्ट भी संभावित है। प्रारंभिक कनेक्शन को लक्षित करने के लिए "JDWP-Handshake" को लक्षित पोर्ट पर भेजकर बनाया जाता है। यदि JDWP सेवा सक्रिय है, तो यह उसी स्ट्रिंग के साथ प्रतिसाद देता है, अपनी मौजूदगी की पुष्टि करता है। यह हैंडशेक एक फिंगरप्रिंटिंग विधि के रूप में काम करता है जिससे नेटवर्क पर JDWP सेवाओं की पहचान की जा सकती है।
प्रक्रिया पहचान के संदर्भ में, जावा प्रक्रियाओं में "jdwk" स्ट्रिंग की खोज करना एक सक्रिय JDWP सत्र की ओर संकेत कर सकता है।
जीडब्ल्यूडीपी शैलिफायर](https://github.com/hugsy/jdwp-shellifier) जानकारी के लिए जानकारी के लिए जा सकता है। आप इसे विभिन्न पैरामीटर के साथ उपयोग कर सकते हैं:
मैंने पाया कि --break-on 'java.lang.String.indexOf'
का उपयोग एक्सप्लॉइट को और स्थिर बनाता है। और अगर आपके पास मेज़बान पर एक बैकडोर अपलोड करने और उसे कमांड का निष्पादन करने की बजाय निष्पादित करने का मौका है, तो एक्सप्लॉइट और भी अधिक स्थिर होगा।
अधिक विवरण
यह https://ioactive.com/hacking-java-debug-wire-protocol-or-how/ का सारांश है। अधिक विवरण के लिए इसे देखें।
JDWP अवलोकन:
यह एक पैकेट-आधारित नेटवर्क बाइनरी प्रोटोकॉल है, मुख्य रूप से समकालिक।
प्रमुखत: प्रमाणीकरण और एन्क्रिप्शन की कमी, इसे शत्रुतात्मक नेटवर्कों के सामने रखने पर भेद्य बनाती है।
JDWP हैंडशेक:
संचार प्रारंभ करने के लिए एक सरल हैंडशेक प्रक्रिया का उपयोग किया जाता है। डीबगर (ग्राहक) और डीबगी (सर्वर) के बीच एक 14-वर्णीय ASCII स्ट्रिंग "JDWP-हैंडशेक" का आदान-प्रदान होता है।
JDWP संचार:
संदेशों में लंबाई, आईडी, झंडा, और कमांडसेट जैसे फ़ील्ड्स होते हैं।
कमांडसेट मान 0x40 से 0x80 तक होते हैं, जो विभिन्न क्रियाएँ और घटनाएँ प्रतिनिधित करते हैं।
शोषण:
JDWP अनियमित क्लासेस और बाइटकोड लोड और आमंत्रित करने की अनुमति देता है, जो सुरक्षा जोखिम पैदा करता है।
लेख में पांच स्टेप्स में एक शोषण प्रक्रिया का विवरण दिया गया है, जिसमें जावा रनटाइम संदर्भों को प्राप्त करना, ब्रेकपॉइंट सेट करना, और विधियों को आमंत्रित करना शामिल है।
वास्तविक जीवन शोषण:
संभावित फ़ायरवॉल संरक्षण के बावजूद, JDWP सेवाएं खोजने और उन्हें वास्तविक दुनिया की स्थितियों में शोषित किया जा सकता है, जैसा कि ShodanHQ और GitHub जैसे प्लेटफ़ॉर्मों पर खोजों द्वारा प्रदर्शित किया गया है।
एक्सप्लॉइट स्क्रिप्ट को विभिन्न JDK संस्करणों के खिलाफ परीक्षण किया गया था और यह प्लेटफ़ॉर्म-असमर्थ, विश्वसनीय दूरस्थ कोड निष्पादन (RCE) प्रदान करता है।
सुरक्षा प्रभाव:
इंटरनेट पर खुली JDWP सेवाओं की मौजूदगी नियमित सुरक्षा समीक्षा, उत्पादन में डीबग क्षमताओं को अक्षम करने, और उचित फ़ायरवॉल विन्यास की आवश्यकता को दर्शाती है।
संदर्भ:
http://www.secdev.org/projects/scapy(no longer active)
http://www.hsc-news.com/archives/2013/000109.html (no longer active)
https://github.com/search?q=-Xdebug+-Xrunjdwp&type=Code&ref=searchresults
Last updated