روبوت سلاك لاختبار الأمان مبني على خلفية كوبرنيتيز على منصة جوجل السحابية
ملاحظة: لم أعد أتابع هذا المشروع بنشاط. أعمل على الإصدار 2 من Kubebot مع عدد قليل من الأشخاص الآخرين، ومن المحتمل تقديمه في أحد المؤتمرات الأمنية القادمة.
1 - طلب API (أداة، هدف، خيارات) يتم إطلاقه من Slackbot، وإرساله إلى خادم API، الذي يعمل كحاوية Docker على مجموعة Kubernetes (K8s) ويمكن توسيعه.
2 - خادم API يضع الطلب المستلم كرسالة في موضوع PubSub للأدوات.
3 - يتم نشر الرسائل في اشتراك الأداة.
4 - عامل الاشتراك (أو العمال)، الذين يعملون كحاويات Docker على مجموعة K8s، يستهلكون الرسالة من الاشتراك. يمكن أيضًا توسيع عدد هؤلاء العمال.
5 - بناءً على الأداة والهدف والخيارات المستلمة من المستخدم النهائي، يتم بدء عاملات الأدوات المناسبة في نفس مجموعة K8s كحاويات Docker. يتم تخزين النتائج مؤقتًا في دليل محلي لتلك الحاوية. يتم استنساخ دليل Github لتلك الأداة.
6 - يتم التحقق مما إذا كان ملف النتائج الناتج موجودًا أم لا. إذا لم يكن موجودًا، يتم إضافته ودفع التغييرات إلى Github. إذا كان موجودًا، تتم مقارنة الملفات، ويتم دفع الملف الجديد إلى Github ودفع التغييرات فقط إلى الخطوة التالية.
7 - يتم إرسال التغييرات مرة أخرى إلى Slack عبر webhook من عامل الأداة. يتم حذف عاملات الأدوات لأنها لم تعد ضرورية.
ملاحظة: يتم تنزيل جميع صور Docker لخادم API وعامل الاشتراك وعاملات الأدوات من سجل حاويات جوجل لتلك الحساب GCP قبل نشرها على مجموعة K8s.
قائمة الأدوات المدمجة حتى الآن (سيتم تحديث هذه القائمة باستمرار مع إضافة المزيد من الأدوات. توجد بعض الأدوات الإضافية في مجلد الأدوات ولكن لا تزال قيد التطوير.)
حاوية أداة مساعدة تسمى checkfile تستخدم لإجراء عملية الفرق على ملفات github لتحديد أي تغييرات من التشغيل السابق لأداة مع التشغيل الأحدث. يتم تشغيل هذه الحاوية بعد كل حاوية أداة.
أداة مساعدة تسمى converttobq تستخدم لتحويل البيانات من الأدوات إلى تنسيق يمكن استيعابه في BigQuery. يتم تشغيل هذه الأداة في سير العمل الآلي حيث يتم تخزين نتائج كل أداة في BQ لتكون قابلة للاستهلاك من قبل أدوات أخرى.
أداة مساعدة تسمى wfuzzbasicauthbrute تستخدم لاختراق آلية المصادقة الأساسية لنقاط النهاية المخزنة في جدول BQ مع جميع الأسرار المخزنة في جدول BQ آخر.
.env.sample - أعد تسمية هذا الملف إلى .env وتأكد من صحة القيم الموجودة فيه عندما تريد نشر Kubebot محليًا.
Makefile - ملف make لبناء بيئة Kubebot الخاصة بك.
البدء
المتطلبات الأساسية - يرجى التأكد من استيفاء جميع هذه المتطلبات الأساسية.
تشغيل Kubebot محليًا - هذا مكان جيد للبدء للتعود على Kubebot قبل تشغيله عن بُعد.
دمج أدواتك الخاصة - إذا كنت ترغب في دمج أدواتك الخاصة في Kubebot، فمن السهل جدًا القيام بذلك!
تشغيل Kubebot عن بُعد - بمجرد أن تتأكد من أن Kubebot يعمل كما هو متوقع محليًا (باستخدام Minikube) وتريد الآن إطلاق العنان له واستخدامه بأقصى إمكاناته على السحابة، يمكن نشره على مجموعة Google Container Engine (GKE). ومع ذلك، لا يمكنني تقديم تعليمات للنشر عن بُعد حتى الآن. ومع ذلك، إذا كان هناك اهتمام، فسأكون سعيدًا بتقديم المساعدة. وإذا كنت ترغب في استخدام Kubebot فقط كتطبيق Slack ولا تقلق بشأن البنية التحتية الخلفية، فيمكن ترتيب ذلك أيضًا مقابل اشتراك شهري صغير لأنني سأستضيف الخلفية في حساب GCP الشخصي الخاص بي وستكون مسؤولاً فقط عن التكاليف العادية المرتبطة باستضافة VPS على مزود سحابي. لا تتردد في التواصل لمناقشة تلك الخيارات.
لاحظ كيف يمكنك تشغيل أمر شرطة مائلة باسم الأداة والخيارات والهدف (الأهداف). أقول أهدافًا لأنه يمكنك تشغيل أمر شرطة مائلة واحد لتشغيل أداة واحدة بمجموعة من الخيارات ضد أهداف متعددة. مثال، أمر gitrob أدناه يتم تشغيله ضد test و abc.
/runtool nmap|-Pn -p 1-1000|google.com
/runtool sublist3r|-t 50|test.com
/runtool gobuster|-m dns -w fierce_hostlist.txt -t 10 -fw|google.com
root@kitploit:~
PS - قائمة الكلمات للاختيار من بينها:
bitquark_20160227_subdomains_popular_1000000.txt
deepmagic.com_top500prefixes.txt
fierce_hostlist.txt
namelist.txt
names.txt
sorted_knock_dnsrecon_fierce_recon-ng.txt
subdomains-top1mil-110000.txt
/runtool enumall|-s shodan-api-key|test.com
/runtool subbrute|-s subfiles/names.txt -v|kubebot.io (يستغرق هذا وقتًا طويلاً)