Pentesting JDWP - Java Debug Wire Protocol
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
अपने वेब ऐप्स, नेटवर्क और क्लाउड पर एक हैकर का दृष्टिकोण प्राप्त करें
महत्वपूर्ण, शोषण योग्य कमजोरियों को खोजें और रिपोर्ट करें जिनका वास्तविक व्यावसायिक प्रभाव है। हमारे 20+ कस्टम टूल का उपयोग करें ताकि हमले की सतह का मानचित्रण किया जा सके, सुरक्षा मुद्दों को खोजा जा सके जो आपको विशेषाधिकार बढ़ाने की अनुमति देते हैं, और आवश्यक सबूत इकट्ठा करने के लिए स्वचालित शोषण का उपयोग करें, जिससे आपका कठिन काम प्रभावशाली रिपोर्टों में बदल जाए।
JDWP शोषण प्रोटोकॉल की प्रमाणीकरण और एन्क्रिप्शन की कमी पर निर्भर करता है। यह सामान्यतः पोर्ट 8000 पर पाया जाता है, लेकिन अन्य पोर्ट भी संभव हैं। प्रारंभिक कनेक्शन "JDWP-Handshake" को लक्षित पोर्ट पर भेजकर किया जाता है। यदि एक JDWP सेवा सक्रिय है, तो यह उसी स्ट्रिंग के साथ प्रतिक्रिया करती है, इसकी उपस्थिति की पुष्टि करती है। यह हैंडशेक नेटवर्क पर JDWP सेवाओं की पहचान करने के लिए एक फिंगरप्रिंटिंग विधि के रूप में कार्य करता है।
प्रक्रिया पहचान के संदर्भ में, Java प्रक्रियाओं में "jdwk" स्ट्रिंग की खोज करना एक सक्रिय JDWP सत्र को इंगित कर सकता है।
उपयोग करने के लिए सबसे अच्छा टूल jdwp-shellifier है। आप इसे विभिन्न पैरामीटर के साथ उपयोग कर सकते हैं:
I found that the use of --break-on 'java.lang.String.indexOf'
make the exploit more stable. And if you have the change to upload a backdoor to the host and execute it instead of executing a command, the exploit will be even more stable.
यह https://ioactive.com/hacking-java-debug-wire-protocol-or-how/ का सारांश है। आगे की जानकारी के लिए इसे देखें।
JDWP Overview:
यह एक पैकेट-आधारित नेटवर्क बाइनरी प्रोटोकॉल है, जो मुख्य रूप से समकालिक है।
इसमें प्रमाणीकरण और एन्क्रिप्शन की कमी है, जिससे यह शत्रुतापूर्ण नेटवर्क के सामने कमजोर हो जाता है।
JDWP Handshake:
संचार शुरू करने के लिए एक सरल हैंडशेक प्रक्रिया का उपयोग किया जाता है। एक 14-चर ASCII स्ट्रिंग “JDWP-Handshake” डिबगर (क्लाइंट) और डिबगी (सर्वर) के बीच आदान-प्रदान की जाती है।
JDWP Communication:
संदेशों की एक सरल संरचना होती है जिसमें Length, Id, Flag, और CommandSet जैसे फ़ील्ड होते हैं।
CommandSet मान 0x40 से 0x80 के बीच होते हैं, जो विभिन्न क्रियाओं और घटनाओं का प्रतिनिधित्व करते हैं।
Exploitation:
JDWP मनमाने वर्गों और बाइटकोड को लोड और लागू करने की अनुमति देता है, जो सुरक्षा जोखिम पैदा करता है।
लेख में पांच चरणों में एक शोषण प्रक्रिया का विवरण दिया गया है, जिसमें Java Runtime संदर्भों को लाना, ब्रेकपॉइंट सेट करना, और विधियों को लागू करना शामिल है।
Real-Life Exploitation:
संभावित फ़ायरवॉल सुरक्षा के बावजूद, JDWP सेवाएँ वास्तविक दुनिया के परिदृश्यों में खोजी जा सकती हैं और शोषित की जा सकती हैं, जैसा कि ShodanHQ और GitHub जैसे प्लेटफार्मों पर खोजों द्वारा प्रदर्शित किया गया है।
शोषण स्क्रिप्ट को विभिन्न JDK संस्करणों के खिलाफ परीक्षण किया गया था और यह प्लेटफ़ॉर्म-स्वतंत्र है, जो विश्वसनीय Remote Code Execution (RCE) प्रदान करता है।
Security Implications:
इंटरनेट पर खुले 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
Get a hacker's perspective on your web apps, network, and cloud
Find and report critical, exploitable vulnerabilities with real business impact. Use our 20+ custom tools to map the attack surface, find security issues that let you escalate privileges, and use automated exploits to collect essential evidence, turning your hard work into persuasive reports.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)