
ماسح ثغرات 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 واجهات RMI التي تم إنشاؤها عبر Spring Remoting. هذه مختلفة قليلاً عن
Java RMI العادية ويمكن استخدامها لاختبار تكامل Spring Remoting المرتبط بـ remote-method-guesser.
جميع الخوادم متاحة كحاويات داخل 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
positional arguments:
action
bind Binds an object to the registry thats points to listener
call Regulary calls a method with the specified arguments
codebase Perform remote class loading attacks
enum Enumerate common vulnerabilities on Java RMI endpoints
guess Guess methods on bound names
known Display details of known remote objects
listen Open ysoserials JRMP listener
objid Print information contained within an ObjID
rebind Rebinds boundname as object that points to listener
roguejmx Creates a rogue JMX listener (collect credentials)
scan Perform an RMI service scan on common RMI ports
serial Perform deserialization attacks against default RMI components
unbind Removes the specified bound name from the registry
named arguments: -h, --help show this help message and exit
#### bind و rebind و unbind