
نظام متعدد الوكلاء لاختبار الاختراق الآلي (MASAPT)
❗ تنويه
هذه الأداة طُوِّرت لأغراض أكاديمية وبحثية كجزء من مقرر جامعي. استخدام MASAPT لمهاجمة أهداف دون موافقة مسبقة غير قانوني.
المطورون لا يتحملون أي مسؤولية عن أي ضرر يحدث باستخدام هذه الأداة، ويستنكرون أي استخدام خبيث لـ MASAPT. هذه الأداة ليست مصممة للاستخدام في أي بيئة احترافية في هذه المرحلة، إنها مجرد إثبات مفهوم للنموذج النظري الأساسي.
نظام متعدد الوكلاء لاختبار الاختراق الآلي 🐱💻

نظام مستقل من وكلاء SPADE يتواصلون عبر XMPP لتنسيق وأداء اختبار الاختراق. في أداة سطر أوامر!
أدخل الرابط، انتظر قليلاً، اقرأ التقرير!

إنه إثبات مفهوم، نظام متعدد الوكلاء، مطور بلغة Python، يهدف إلى استخدامه لأتمتة عملية اختبار الاختراق بطريقة منظمة وذكية.
الهدف النهائي هو صنع أداة اختبار اختراق عاملة، مرنة، موزعة، قائمة على سطر الأوامر - يمكن استخدامها لأتمتة مهام اختبار الاختراق.
الميزات الحالية:
الخطط والميزات المستقبلية مدرجة هنا.
صعب.
هناك عدد لا بأس به من المتطلبات الأساسية والتبعيات التي يجب تثبيتها:
بالإضافة إلى Python وأدوات اختبار الاختراق الموجودة على Kali، تحتاج أيضاً إلى الوصول إلى خدمة XMPP. لاختبار النظام استخدمت ejabberd يعمل محلياً.
لتشغيل الوكلاء على خادم XMPP الذي تختاره، ستحتاج إلى إنشاء المستخدمين التاليين. يمكنك بالطبع إنشاء مستخدمين آخرين، ولكن بعد ذلك ستحتاج إلى تمرير معلمات JID و PWD الجديدة عند إنشاء الوكلاء في برنامج masapt النصي.
| JID | PASSWORD |
|---|---|
| repoter@domain | repoterSecret |
بعد تثبيت المتطلبات الأساسية وإعداد XMPP:
انتقل إلى مجلد المشروع
cd ../MASAPT
أضف المجلد إلى PATH
export PATH=$PATH:/path/to/MASAPT
source ~/.bashrc
ثبت متطلبات Python
pip install -r requirements.txt
اجعل البرنامج النصي masapt قابلًا للتنفيذ
chmod +x masapt
ابدأ النظام باستخدام:
masapt -t url/to/target
المزيد من الوكلاء:
توسيع Explorer.py ليمكنه:
توسيع SQLinjector.py ليمكنه:
توسيع Coordinator.py ليمكنه:
نظام MASAPT صُمم ليكون نمطيًا وموزعًا وبراغماتيًا. بمعنى أن الوكلاء الذين يشكلون النظام مستقلون عن العملية الرئيسية، وقابلون للترقية، ويستخدمون أدوات اختبار اختراق موجودة و'مختبرة في الميدان'.
لتحقيق الأهداف المرسومة، تم تطوير الوكلاء كجزء من نموذج ثلاثي المستويات المستمد من مراحل اختبار الاختراق القياسية (التخطيط - التنفيذ - ما بعد التنفيذ). يمكن رؤية نظرة عامة عالية لهذا النموذج في Img1 أدناه.
جميع المفاهيم النظرية في هذه النظرة العامة تم تنفيذها بالفعل في الكود (باستثناء الفكرة المستقبلية - Img 8.). يجب الاستمرار في تنفيذ هذه المفاهيم في أي ترقيات مستقبلية للنظام.
الفكرة الرئيسية وراء النموذج ثلاثي المستويات هي توفير إطار يمكن استخدامه لتنظيم وتصنيف الوكلاء في هذا النظام.
المستوى الأول من النموذج يحتوي على وكيل (وكلاء) Explorer المكلفين بإجراء OSINT وجمع أي معلومات استخباراتية مفيدة عن الهدف.
المستوى الثاني يحتوي على وكيل Coordinator ووكلاء Exploit. المنسق هو وكيل واحد يقرر أي وكلاء الاستغلال سيشاركون في الاختبار الحالي. وكلاء الاستغلال، كما يوحي الاسم، هم من يقومون بتشغيل الاستغلالات - حقن SQL، XSS، DoS، تجاوز سعة المخزن المؤقت... يمكن أن يكون هناك العديد من وكلاء الاستغلال هؤلاء.
المستوى الثالث يحتوي على Reporter ومهمته جمع جميع بيانات الاستغلال والنتائج وتفريغات البيانات من جميع وكلاء الاستغلال وتلخيصها في تقرير نهائي. ثم يُعرض التقرير على المستخدم ويُخزن محليًا.
في الصورة الأولى، تمثل الأسهم السميكة تدفق البيانات في النموذج.

Img2 يُظهر نفس النموذج الموجود في الصورة الأولى ولكن بتفصيل أكبر - يمكن رؤية الوكلاء بوضوح في مستوياتهم الخاصة. الأسهم الكاملة في هذه الصورة تمثل مرة أخرى تدفق البيانات في النموذج مما يُظهر أي الوكلاء يتواصلون مع بعضهم البعض. يمكن ملاحظة أن وكيل Explorer يرسل البيانات إلى وكيل Coordinator، والذي بدوره يرسل بعض البيانات إلى وكلاء Exploit (SQLinjector, agent2, agent3). أخيرًا، جميع البيانات التي يجمعها وكلاء الاستغلال تُمرر إلى وكيل Reporter الذي يقوم بجمعها وتلخيصها وعرضها على المستخدم.
يمكن أيضًا ملاحظة أن وكلاء Explorer و Exploit (SQLinjector) فقط يتفاعلون مع البيئة الخارجية (الهدف الاختباري). يتم تمثيل ذلك بأسهم منقطة ثنائية الاتجاه.
كما ذُكر سابقًا، إحدى خصائص نظام MASAPT هي أن يكون موزعًا. تم بالفعل تنفيذ جانب واحد من هذا نظرًا لأن جميع الوكلاء يتم تنفيذهم كبرامج مستقلة، يتم تشغيلها بواسطة البرنامج النصي الرئيسي (masapt).
Img 3. يُظهر كيفية إعداد النظام الحالي واختباره. يمكن ملاحظة أن الوكلاء يستخدمون بيئة SPADE للاتصال عبر خادم XMPP (ejabberd) المثبت على النظام المحلي. الهدف الاختباري (SQLi Labs) مثبت أيضًا على النظام المحلي. هذا الإعداد جيد لاختبار النظام لكنه لا يُظهر القدرة الكاملة لـ MASAPT كنظام موزع.
Img 4. من ناحية أخرى، يُظهر تطبيقًا مستقبليًا محتملاً لـ MASAPT. يُظهر نظامًا موزعًا متعدد الوكلاء يستخدم XMPP للاتصال و Docker للتشغيل عبر العديد من الأنظمة المختلفة. الأسهم الكاملة تُظهر مرة أخرى جانب الاتصال وتدفق البيانات في النظام، موضحة كيف يرسل الوكلاء ويستقبلون بياناتهم عبر خادم XMPP مركزي.
السبب الرئيسي لاتصال الوكلاء عبر XMPP هو توفير طريقة موثوقة ومستقلة عن اللغة للوكلاء للتواصل. مع هذا النهج، ليس من الضروري أن تكون جميع الوكلاء المستقبلية مكتوبة بلغة Python أو حتى تستخدم بيئة SPADE.
التفكير وراء ذلك هو أنه قد تكون هناك حالة استخدام لنظام مختلف ليكون جزءًا من MASAPT في المستقبل (مثل وكلاء مكتوبة بلغات برمجة أخرى). لذا فإن 'نهج XMPP' هو أفضل طريقة لتوفير هذا النوع من المرونة للنظام.
بالإضافة إلى قدرته على الاتصال، فإن السلوك هو ثاني أهم جانب في أي وكيل. وكلاء MASAPT وسلوكهم يتم نمذجته بمجموعة من الحالات، مما يجعلهم آلات حالة محدودة. بيئة SPADE تدعم بشكل جيد إنشاء آلات الحالة المحدودة.
تُظهر المخططات أدناه جميع الحالات الممكنة التي يمكن أن يكون فيها الوكيل في أي لحظة زمنية. تُظهر المخططات أيضًا الأحداث التي تجعل الوكيل ينتقل إلى الحالة التالية. يجب تنفيذ جميع الوكلاء المستقبلية بنفس الطريقة.
جميع وكلاء الاستغلال المستقبلية (مثل DoS, XSS...) يجب تنفيذها باستخدام مخطط Img 8. كقالب.


[1] شكر كبير لـ Audi-1 ومختبراته الممتازة SQLI labs لاختبار حقن SQL القائم على الأخطاء، والمنطق الأعمى، والقائم على الزمن!
| explorerSecret |
| coordinator@domain | coordinatorSecret |
| sqlinjector@domain | injectorSecret |