
أداة تعداد واختراق JMX.
beanshooter هي أداة تعداد وهجوم لـ JMX، تساعد في تحديد الثغرات الشائعة على نقاط نهاية JMX.
beanshooter هو مشروع maven وعملية التثبيت يجب أن تكون مباشرة. مع تثبيت maven، قم فقط بتنفيذ الأوامر التالية لإنشاء ملف .jar قابل للتنفيذ:```console
[qtc@devbox ~]$ git clone https://github.com/qtc-de/beanshooter
[qtc@devbox ~]$ cd beanshooter
[qtc@devbox ~]$ mvn package
يمكنك أيضًا استخدام الحزم المُعدة مسبقًا التي يتم إنشاؤها لكل [إصدار](https://github.com/qtc-de/beanshooter/releases).
يتم إنشاء الحزم المُعدة مسبقًا لفرع التطوير تلقائيًا ويمكن العثور عليها في صفحة *GitHub* [للإجراءات](https://github.com/qtc-de/beanshooter/actions).
كما أن صورة docker مُعدة مسبقًا لتشغيل *beanshooter* [متاحة](#docker-image).
*beanshooter* لا يتضمن *ysoserial* كاعتماد. لتمكين دعم *ysoserial*، تحتاج إما إلى تحديد المسار إلى ملف ``ysoserial.jar`` الخاص بك كوسيطة إضافية (مثل ``--yso /opt/ysoserial.jar``) أو تغيير المسار الافتراضي داخل [ملف تكوين beanshooter](https://github.com/qtc-de/beanshooter/blob/master/beanshooter/config.properties) قبل بناء المشروع.
*beanshooter* يدعم الإكمال التلقائي لـ *bash*. للاستفادة من الإكمال التلقائي، تحتاج إلى تثبيت مشروع [completion-helpers](https://github.com/qtc-de/completion-helpers). إذا تم الإعداد بشكل صحيح، فإن مجرد نسخ [نص الإكمال](https://github.com/qtc-de/beanshooter/blob/master/resources/bash_completion.d/beanshooter) إلى مجلد ``~/.bash_completion.d`` الخاص بك يُمكن الإكمال التلقائي.```console
[qtc@devbox ~]$ cp resources/bash_completion.d/beanshooter ~/bash_completion.d/
يمكن تقسيم عمليات beanshooter المختلفة إلى مجموعتين: العمليات الأساسية و عمليات MBean. بينما تُستخدم العمليات الأساسية لإجراء عمليات عامة على نقطة نهاية JMX، تستهدف عمليات MBean MBean محدد للتفاعل معه. لمزيد من التفاصيل، راجع أمثلة الاستخدام في الأقسام التالية.```console [qtc@devbox ~]$ beanshooter -h usage: beanshooter [-h] ...
beanshooter v3.0.0 - a JMX enumeration and attacking tool
positional arguments:
Basic Operations attr set or get MBean attributes brute bruteforce JMX credentials deploy deploys the specified MBean on the JMX server enum enumerate the JMX service for common vulnerabilities info display method and attribute information on an MBean invoke invoke the specified method on the specified MBean list list available MBEans on the remote MBean server serial perform a deserialization attack stager start a stager server to deliver MBeans undeploy undeploys the specified MBEAN from the JMX server
MBean Operations diagnostic Diagnostic Command MBean hotspot HotSpot Diagnostic MBean mlet default JMX bean that can be used to load additional beans dynamically recorder jfr Flight Recorder MBean tomcat tomcat MemoryUserDatabaseMBean used for user management tonka general purpose bean for executing commands and uploading or download files
named arguments: -h, --help show this help message and exit
### العمليات الأساسية
---
العمليات الأساسية هي عمليات عامة يمكن تنفيذها على خدمة JMX. وهي عادةً عمليات لا تستهدف MBean معينًا أو تستهدف MBean بدون دعم مدمج من beanshooter.
#### Attr
يمكن استخدام الإجراء `attr` للحصول على السمات أو تعيينها على *MBean* محدد. للحصول على السمات المتاحة، ينبغي استخدام الإجراء `info`:```console
[qtc@devbox ~]$ beanshooter info 172.17.0.2 9010
...
[+] MBean Class: sun.management.MemoryImpl
[+] ObjectName: java.lang:type=Memory
[+]
[+] Attributes:
[+] Verbose (type: boolean , writable: true)
[+] ObjectPendingFinalizationCount (type: int , writable: false)
[+] HeapMemoryUsage (type: javax.management.openmbean.CompositeData , writable: false)
[+] NonHeapMemoryUsage (type: javax.management.openmbean.CompositeData , writable: false)
[+] ObjectName (type: javax.management.ObjectName , writable: false)
[+]
[+] Operations:
[+] void gc()
عند تحديد اسم السمة فقط، يقوم beanshooter بالحصول على قيمة السمة الحالية وعرضها:```console [qtc@devbox ~]$ beanshooter attr 172.17.0.2 9010 java.lang:type=Memory Verbose false
عندما يتم تحديد قيمة إضافية، يحاول *beanshooter* تعيين السمة المقابلة. بالنسبة للسمات
التي لها نوع مختلف عن *String*، فإن تحديد نوع السمة باستخدام الخيار `--type` مطلوب:```console
[qtc@devbox ~]$ beanshooter attr 172.17.0.2 9010 java.lang:type=Memory Verbose true --type boolean
[qtc@devbox ~]$ beanshooter attr 172.17.0.2 9010 java.lang:type=Memory Verbose
true
يقوم الإجراء brute بتنفيذ هجوم القوة العمياء على خدمة JMX محمية بكلمة مرور. عند التشغيل بدون وسائط اختيارية إضافية، يستخدم beanshooter قائمة كلمات مدمجة تحتوي على عدد قليل من مجموعات أسماء المستخدمين وكلمات المرور الشائعة. للهجمات الأكثر تخصصًا، يجب عليك استخدام الخيارات --username-file و --password-file لتحديد قوائم كلمات أكثر شمولاً.```console
[qtc@devbox ~]$ beanshooter brute 172.17.0.2 1090
[+] Reading wordlists for the brute action.
[+] Reading credentials from internal wordlist.
[+]
[+] Starting bruteforce attack with 10 credentials.
[+]
[+] Found valid credentials: admin:admin
[+] [10 / 10] [########################################] 100%
[+]
[+] done.
#### نشر