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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
BaRMIe — أداة تعداد وهجوم على Java RMI. | Kitploit
أدوات/GitHubGitHub/nickstadb/barmie
تحليل الثغرات الأمنيةالاستغلالجمع المعلوماتاختبار الاختراق
GitHubnickstadb/barmie

BaRMIe

أداة تعداد وهجوم على Java RMI.

عرض المستودع
74797منذ 8 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

BaRMIe

BaRMIe هي أداة لتعداد ومهاجمة خدمات Java RMI (استدعاء الأساليب عن بُعد).

غالبًا ما تعرض خدمات RMI وظائف خطيرة دون ضوابط أمنية كافية، ومع ذلك تميل خدمات RMI إلى المرور تحت الرادار أثناء التقييمات الأمنية بسبب نقص أدوات الاختبار الفعالة. في عام 2008، تحدث Adam Boulton في AppSec USA (YouTube) وأصدر بعض أدوات هجوم RMI التي اختفت بعد ذلك بوقت قصير، ولكن حتى مع تلك الأدوات، يعتمد الهجوم الناجح بدون معرفة مسبقة على هجوم قوة عمياء كبير (~64 بت / 9 كوينتيليون احتمال) يتم تنفيذه عبر الشبكة.

الهدف من BaRMIe هو تمكين المتخصصين في الأمن من تحديد و مهاجمة وتأمين خدمات RMI غير الآمنة. باستخدام واجهات RMI جزئية من البرامج الموجودة، يمكن لـ BaRMIe التفاعل مباشرة مع تلك الخدمات دون الحاجة أولاً إلى اختراق 64 بت عبر الشبكة من خلال القوة العمياء.

قم بتنزيل أحدث إصدار جاهز للتشغيل من هنا: https://github.com/NickstaDB/BaRMIe/releases/latest

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

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

الاستخدام

استخدام BaRMIe بسيط. قم بتشغيل BaRMIe بدون معاملات للحصول على معلومات الاستخدام.

root@kitploit:~
$ java -jar BaRMIe.jar
  ▄▄▄▄    ▄▄▄       ██▀███   ███▄ ▄███▓ ██▓▓█████
 ▓█████▄ ▒████▄    ▓██ ▒ ██▒▓██▒▀█▀ ██▒▓██▒▓█   ▀
 ▒██▒ ▄██▒██  ▀█▄  ▓██ ░▄█ ▒▓██    ▓██░▒██▒▒███
 ▒██░█▀  ░██▄▄▄▄██ ▒██▀▀█▄  ▒██    ▒██ ░██░▒▓█  ▄
 ░▓█  ▀█▓ ▓█   ▓██▒░██▓ ▒██▒▒██▒   ░██▒░██░░▒████▒
 ░▒▓███▀▒ ▒▒   ▓▒█░░ ▒▓ ░▒▓░░ ▒░   ░  ░░▓  ░░ ▒░ ░
 ▒░▒   ░   ▒   ▒▒ ░  ░▒ ░ ▒░░  ░      ░ ▒ ░ ░ ░  ░
  ░    ░   ░   ▒     ░░   ░ ░      ░    ▒ ░   ░
  ░            ░  ░   ░            ░    ░     ░  ░
       ░                                     v1.0
             أداة تعداد Java RMI.
               كتبها Nicky Bloor (@NickstaDB)

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

الاستخدام:
  BaRMIe -enum [options] [host] [port]
    تعداد خدمات RMI على نقطة (نقاط) النهاية المعطاة.
    ملاحظة: إذا لم يتم تحديد -enum، فهذا هو الوضع الافتراضي.
  BaRMIe -attack [options] [host] [port]
    تعداد ومهاجمة الهدف (الأهداف) المعطى.
الخيارات:
  --threads  عدد الخيوط المستخدمة للتعداد (الافتراضي 10).
  --timeout  المهلة الزمنية لعمليات socket (الافتراضي 5,000 مللي ثانية).
  --targets  ملف يحتوي على الأهداف المراد فحصها.
             يجب أن يحتوي الملف على مضيف واحد أو زوج مضيف ومنفذ
             مفصولين بمسافة لكل سطر.
             بدلاً من ذلك، جميع تنسيقات إخراج nmap مدعومة، حيث سيقوم BaRMIe
             بتحليل إخراج nmap بحثًا عن المنفذ 1099 أو 'rmiregistry' أو خدمات
             'Java RMI' لاستهدافها.
             ملاحظة: لا يتم دعم [host] [port] عند استخدام --targets.
الموثوقية:
    يتم استخدام نظام +/- للإشارة إلى موثوقية الهجوم كما يلي:
      [+  ]: يشير إلى هجوم خاص بالتطبيق
      [-  ]: يشير إلى هجوم على JRE
      [ + ]: مهاجمة الأساليب غير الآمنة (مثل 'writeFile' بدون مصادقة)
      [ - ]: مهاجمة إلغاء التسلسل في Java (أي معاملات من نوع Object)
      [  +]: لا يتطلب تبعيات غير افتراضية
      [  -]: يتطلب تبعيات غير افتراضية

يستخرج وضع التعداد (-enum) تفاصيل الكائنات المكشوفة من خلال خدمة تسجيل RMI ويسرد أي هجمات معروفة تؤثر على نقطة النهاية.

يقوم وضع الهجوم (-attack) أولاً بتعداد الأهداف المعطاة، ثم يوفر نظام قوائم لإطلاق الهجمات المعروفة ضد خدمات RMI.

يمكن تحديد هدف واحد في سطر الأوامر. بدلاً من ذلك، يمكن لـ BaRMIe استخراج الأهداف من ملف نصي بسيط أو إخراج nmap.

لم يتم تحديد أهداف ضعيفة؟

رائع! هذه فرصتك للمساعدة في تحسين BaRMIe! يعتمد BaRMIe على بعض المعرفة بالفئات المكشوفة عبر RMI، لذا ستساهم المساهمات بشكل كبير في تحسين BaRMIe وأمان خدمات RMI.

إذا كان لديك إمكانية الوصول إلى ملفات JAR أو الكود المصدري للتطبيق المستهدف، فإن إنتاج هجوم يكون بسيطًا مثل تجميع الكود مقابل ملفات JAR ذات الصلة. استرجع الكائن البعيد ذا الصلة باستخدام فئتي LocateRegistry و Registry واستدعِ الأساليب المطلوبة. بدلاً من ذلك، ابحث عن أساليب بعيدة تقبل كائنات عشوائية أو معاملات غير أولية، حيث يمكن استخدامها لتوصيل حمولات إلغاء التسلسل. سيتم توفير المزيد من التوثيق حول مهاجمة RMI وإنتاج الهجمات لـ BaRMIe في المستقبل القريب.

بدلاً من ذلك، تواصل معنا مع تقديم أكبر قدر ممكن من التفاصيل بما في ذلك إخراج BaRMIe -enum ويفضل ملفات JAR ذات الصلة.

أنواع الهجمات

يمكن لـ BaRMIe تنفيذ ثلاثة أنواع من الهجمات ضد خدمات RMI. يلي وصف موجز لكل منها. سيتم نشر المزيد من التفاصيل التقنية في المستقبل القريب على https://nickbloor.co.uk/. بالإضافة إلى ذلك، قدمت نتائج بحثي في 44CON 2017 ويمكن العثور على الشرائح هنا: BaRMIe - Poking Java's Back Door.

1. مهاجمة الأساليب غير الآمنة

الطريقة الأولى والأكثر مباشرة لمهاجمة خدمات RMI غير الآمنة هي ببساطة استدعاء الأساليب البعيدة غير الآمنة. غالبًا ما يتم كشف وظائف خطيرة عبر RMI يمكن تفعيلها بمجرد استرداد مرجع الكائن البعيد واستدعاء الأسلوب الخطير. الكود التالي هو مثال على ذلك:

root@kitploit:~
//الحصول على مرجع لخدمة تسجيل RMI البعيدة
Registry reg = LocateRegistry.getRegistry(targetHost, targetPort);

//الحصول على مرجع لكائن RMI الهدف
Foo bar = (Foo)reg.lookup(objectName);

//استدعاء الأسلوب البعيد executeCommand()
bar.executeCommand(cmd);

2. إلغاء التسلسل عبر معاملات من نوع Object

بعض خدمات RMI لا تكشف عن وظائف خطيرة، أو تنفذ ضوابط أمنية مثل المصادقة وإدارة الجلسات. إذا كانت خدمة RMI تكشف عن أسلوب يقبل كائنًا عشوائيًا (Object) كمعامل، فيمكن استخدام هذا الأسلوب كنقطة دخول لهجمات إلغاء التسلسل. بعض الأمثلة على هذه الأساليب موضحة أدناه:

root@kitploit:~
public void setOption(String name, Object value);
public void addAll(List values);

3. إلغاء التسلسل عبر استدعاء أسلوب غير قانوني

بسبب استخدام التسلسل والتعامل غير الآمن مع معاملات الأساليب على الخادم، يمكن استخدام أي أسلوب يحتوي على أنواع معاملات غير أولية كنقطة دخول لهجمات إلغاء التسلسل. يحقق BaRMIe ذلك باستخدام وكلاء TCP لتعديل معاملات الأساليب على مستوى الشبكة، مما يؤدي فعليًا إلى استدعاءات أساليب غير قانونية. بعض الأمثلة على الأساليب الضعيفة موضحة أدناه:

root@kitploit:~
public void setName(String name);
public Long add(Integer i1, Integer i2);
public void sum(int[] values); 

يمكن استبدال المعاملات في كل من هذه الأساليب بحمولة إلغاء تسلسل أثناء مرور استدعاء الأسلوب عبر وكيل. هذا الهجوم ممكن لأن Java لا تحاول التحقق من أن معاملات الأساليب البعيدة المستلمة عبر الشبكة متوافقة مع أنواع المعاملات الفعلية قبل إلغاء تسلسلها.

تنزيل الأداة