
Java RMI भेद्यता स्कैनर
remote-method-guesser (rmg) एक Java RMI भेद्यता स्कैनर है और इसका उपयोग Java RMI एंडपॉइंट्स पर सामान्य सुरक्षा कमजोरियों की पहचान और सत्यापन करने के लिए किया जा सकता है।

remote-method-guesser को Black Hat USA2021 में Arsenal सत्रों के भीतर प्रस्तुत किया गया था। सत्र की रिकॉर्डिंग और संबंधित स्लाइड्स सार्वजनिक रूप से उपलब्ध हैं और निम्नलिखित लिंक का उपयोग करके पाई जा सकती हैं:
remote-method-guesser रिपॉजिटरी में तीन उदाहरण सर्वर शामिल हैं जिनका उपयोग Java RMI गणना और हमलों का अभ्यास करने के लिए किया जा सकता है।
rmg-example-server नियमित RMI सेवाओं को उजागर करता है जिन्हें remote-method-guesser का उपयोग करके गणना और शोषण किया जा सकता है।
rmg-ssrf-server एक HTTP सेवा को उजागर करता है जो SSRF हमलों के लिए असुरक्षित है और RMI सेवाएँ चलाता है जो केवल localhost पर सुनती हैं। इसका उपयोग remote-method-guesser के --ssrf और --ssrf-response विकल्पों के साथ अभ्यास करने के लिए किया जा सकता है।
spring-remoting-server Spring Remoting के माध्यम से बनाए गए RMI इंटरफेस को उजागर करता है। ये नियमित Java RMI से थोड़े अलग हैं और remote-method-guesser के संबद्ध Spring Remoting एकीकरण का परीक्षण करने के लिए उपयोग किए जा सकते हैं।
सभी सर्वर GitHub Container Registry के भीतर कंटेनर के रूप में उपलब्ध हैं:
rmg एक maven प्रोजेक्ट है और स्थापना सीधी होनी चाहिए। maven स्थापित होने पर, निष्पादन योग्य .jar फ़ाइल बनाने के लिए बस निम्नलिखित कमांड निष्पादित करें:```console
$ git clone https://github.com/qtc-de/remote-method-guesser
$ cd remote-method-guesser
$ mvn package
आप [प्रत्येक रिलीज़](https://github.com/qtc-de/remote-method-guesser/releases) के लिए बनाए गए पूर्व-निर्मित पैकेजों का भी उपयोग कर सकते हैं।
डेवलपमेंट ब्रांच के लिए पूर्व-निर्मित पैकेज स्वचालित रूप से बनाए जाते हैं और इन्हें *GitHub* [एक्शन पेज](https://github.com/qtc-de/remote-method-guesser/actions) पर पाया जा सकता है।
*rmg* में *ysoserial* को निर्भरता के रूप में शामिल नहीं किया गया है। *ysoserial* समर्थन सक्षम करने के लिए, आपको या तो अपनी ``ysoserial.jar`` फ़ाइल का पथ अतिरिक्त तर्क के रूप में निर्दिष्ट करना होगा (उदा. ``--yso /opt/ysoserial.jar``) या प्रोजेक्ट बनाने से पहले [rmg कॉन्फ़िगरेशन फ़ाइल](https://github.com/qtc-de/remote-method-guesser/blob/master/src/config.properties) में डिफ़ॉल्ट पथ बदलना होगा।
*rmg* *bash* के लिए ऑटो-पूर्णता का भी समर्थन करता है। ऑटो-पूर्णता का लाभ उठाने के लिए, आपके पास [completion-helpers](https://github.com/qtc-de/completion-helpers) प्रोजेक्ट स्थापित होना चाहिए। यदि सही ढंग से सेटअप किया गया है, तो [पूर्णता स्क्रिप्ट](https://github.com/qtc-de/remote-method-guesser/blob/master/resources/bash_completion.d/rmg) को अपने ``~/.bash_completion.d`` फ़ोल्डर में कॉपी करने से ऑटो-पूर्णता सक्षम हो जाती है।```console
$ cp resources/bash_completion.d/rmg ~/bash_completion.d/
निम्नलिखित में, प्रत्येक उपलब्ध संचालन के लिए छोटे उदाहरण प्रस्तुत किए गए हैं। अधिक विस्तृत विवरण के लिए, आपको दस्तावेज़ीकरण फ़ोल्डर पढ़ना चाहिए जिसमें rmg और सामान्य रूप से Java RMI पर अधिक विस्तृत जानकारी है। सभी प्रस्तुत उदाहरण rmg-example-server और rmg-ssrf-server पर आधारित हैं। ये दोनों इस रिपॉजिटरी में docker फ़ोल्डर में शामिल हैं और Java RMI एनुमरेशन का अभ्यास करने के लिए उपयोग किए जा सकते हैं। आप या तो संबंधित कंटेनर स्वयं बना सकते हैं या उन्हें सीधे GitHub Container Registry से लोड कर सकते हैं।```console [qtc@devbox ~]$ rmg -h usage: remote-method-guesser [-h] action ...
rmg v4.0.0 - a Java RMI Vulnerability Scanner