
إطار استغلال قابل للتوسيع مبني على بنية معيارية متعددة المهام
إطار استغلال تعليمي مبني على بنية معيارية وقابلة للتوسع بشكل كبير مع تعدد المهام والمعالجة المتعددة.
هل تبحث عن الإصدار 1؟ راجع الفروع في هذا المستودع.
بروتس هو إطار استغلال تعليمي مكتوب بلغة بايثون. يقوم بأتمتة عمليات الاستغلال الشبكي قبل وبعد الاتصال، بالإضافة إلى الاستطلاع القائم على الويب. كإطار خفيف الوزن، يهدف بروتس إلى تقليل الاعتماد على التبعيات الخارجية. محسّن لتوزيعة كالي لينكس، وهو متوافق أيضًا مع نظام macOS ومعظم توزيعات لينكس، ويتميز بواجهة سطر أوامر تفاعلية بالكامل ونظام إضافات متعدد الاستخدامات.
يتميز بروتس ببنية معيارية قابلة للتوسع بشكل كبير. تتكون الإضافات المضمنة (طبقة الإضافات) من عدة وحدات منفصلة تعمل على "طبقة مهام" تتكون من مجموعات خيوط وقوائم انتظار غير متزامنة آمنة للخيوط (أي منها هو الأنسب للوحدة المحددة). يعمل الخيط الرئيسي فوق تجمع معالجة متعددة يدير سياق التطبيق ويوزع عمليات جديدة بحيث يمكن للمهام العمل في الخلفية، في شل منفصلة، إلخ.
طبقة واجهة المستخدم منفصلة وقابلة للتوسع أيضًا. بشكل افتراضي، يأتي بروتس مع واجهة سطر أوامر قائمة على القوائم، ولكن لا يوجد سبب يمنعك من إضافة محولات لواجهة رسومية، محلل وسيطات، أو حتى واجهة برمجة تطبيقات HTTP أو استدعاء إجراء عن بعد.
أخيرًا، يحتوي بروتس على طبقة أدوات مساعدة مع وظائف شائعة لعمليات نظام الملفات، إدارة الشل (محاكي الطرفية)، طرق الثبات، والبيانات الوصفية للنظام.
إذا كنت مهتمًا فقط ببعض الاختراق بلغة بايثون، فلا تتردد في سحب السكربتات مباشرة - يمكن تشغيل كل وحدة بشكل مستقل.
عرض توضيحي للمسح الضوئي على الويب وتجميع الحمولات: شاهد mp4

ربما ستحتاج إلى التبعيات التالية:
بروتس محسّن لتوزيعة كالي لينكس. هناك الكثير من المعلومات عبر الإنترنت حول كيفية تشغيل كالي لينكس في جهاز افتراضي.
للتثبيت:
pipenv install
التشغيل:
pipenv run brutus
الاختبار:
pipenv run test
الفحص (Lint):
pipenv run lint
إعداد خطافات Git للتطوير:
pipenv run setup
لا تتردد في فتح طلبات سحب (PRs) مع مقترحات الميزات، وإصلاحات الأخطاء، وما إلى ذلك. لاحظ أن الكثير من هذا المشروع لا يزال قيد التقدم. القاعدة موجودة وجاهزة لك للبناء عليها.
يتضمن بروتس عدة وحدات يمكن تصنيفها ضمن ثلاث فئات رئيسية: قائمة على الشبكة، قائمة على الويب، والحمولات. الفئة الأخيرة هي مكتبة من المترجمات والحمولات المصاحبة - يمكن تجميع الحمولات عبر قائمة سطر الأوامر التفاعلية لبروتس؛ يمكن لاحقًا تحميل الحمولات المجمعة إلى العديد من وحدات بروتس القائمة على الشبكة.
تستخدم الطبقة الأساسية لبروتس خيوط POSIX للمهام المتزامنة المتعددة. بعض الوحدات - أي أي شيء مرتبط بشدة بالإدخال/الإخراج - تستخدم بدلاً من ذلك مكتبات الإدخال/الإخراج غير المتزامن في بايثون وتعمل على طبقة تجريد فوق حلقة الأحداث الافتراضية في بايثون.
الأدوات/السكربتات المضمنة
ملاحظة: هذه الأداة مخصصة لعناوين MAC ذات 48 بت، مع تنسيق بايت افتراضي %02x.
عنوان MAC (التحكم في الوصول إلى الوسائط) هو عنوان دائم ومادي وفريد يتم تعيينه لواجهات الشبكة من قبل مصنعي الأجهزة. هذا يعني أنه حتى بطاقة الشبكة اللاسلكية لديك، على سبيل المثال، لها عنوان MAC فريد خاص بها.
يُستخدم عنوان MAC، المشابه لـ IP على الإنترنت، داخل الشبكة لتسهيل التسليم الصحيح للموارد والبيانات (أي الحزم). يتكون التفاعل عمومًا من MAC المصدر و MAC الوجهة. يمكن لعناوين MAC التعرف عليك، أو تصفيتها، أو تقييد الوصول إليها.
من المهم ملاحظة أن هذه العناوين الفريدة ليست مؤقتة؛ فهي دائمة وستظل مرتبطة بجهاز حتى إذا قام المستخدم بتثبيته في جهاز آخر. لكن لا يجب أن يكون الاثنان مرتبطين بشكل لا ينفصم...
تقبل هذه الوحدة كمدخل من المستخدم أي جهاز لاسلكي معين وأي عنوان MAC صالح يرغب المستخدم في إعادة تعيين الجهاز المذكور إليه. البرنامج بسيط لدرجة أنني لست بحاجة لشرحه أكثر: فهو يستخدم وحدة subprocess لأتمتة تسلسل أوامر الشل اللازمة لإيقاف الواجهة اللاسلكية، وإعادة تعيين MAC، ثم إعادة تشغيلها.
إذا كنت تقوم بتغيير عنوان MAC الخاص بك بنشاط، فقد يكون من الحكمة وجود هيكل تحقق أو طريقة ذات مستوى أعلى للتأكد من أن 1) الجهاز اللاسلكي موجود، 2) الجهاز اللاسلكي يستوعب عنوان MAC، 3) عنوان MAC الذي أدخله المستخدم بتنسيق صالح، و4) تم تحديث عنوان MAC للجهاز اللاسلكي بنجاح. تقوم هذه الأداة بأتمتة هذه الوظائف.
من خلال اختيار خيار 'توليد' بدلاً من عنوان MAC محدد، سينشئ البرنامج عنوان MAC صالحًا وفقًا لمواصفات IEEE. أنا متحمس لتنفيذ وظائف موسعة لتوليد ليس فقط عناوين MAC عشوائية تمامًا (وصالحة)، ولكن أيضًا عناوين MAC التي تبدأ ببادئة بائع محددة (OUI)، أو يتم توليدها مع خيارات الإرسال المتعدد و/أو UAA. تطلق هذه الخيارات منطق البايت كود في طريقة التوليد، والتي يتم تعديلها وفقًا لمواصفات IEEE. تعلم المزيد عن عناوين MAC هنا.
ماسح الشبكة هو أداة مفيدة جدًا أخرى، وقوية عند استخدامها مع مغير MAC المذكور سابقًا. يستخدم هذا الماسح وظيفة طلب ARP بقبول عنوان IP صالح من الإصدار الرابع أو السادس كمدخل من المستخدم مع نطاق شبكة فرعية اختياري.
ثم يأخذ البرنامج عنوان IP و/أو النطاق المحدد، ويتحقق من صحتها وفقًا لمواصفات IEEE (مرة أخرى، يتم تشغيل هذا التحقق وفقًا لمعايير ipv4 و ipv6). أخيرًا، يتم إنشاء كائن بث مع عنوان IP المعطى وإطار إيثرنت مولّد؛ يعيد إلينا هذا الكائن قائمة بجميع الأجهزة المتصلة داخل الشبكة المعطاة والنطاق المصاحب، مع تعيين عناوين IP الخاصة بها إلى عناوين MAC الخاصة بها.
يقوم البرنامج بإخراج جدول بهذه الارتباطات، والتي يمكن استخدامها بعد ذلك كمدخل لمغير MAC إذا تطلبت الظروف ذلك.
تمكننا وحدة انتحال ARP من إعادة توجيه تدفق الحزم في شبكة معينة عن طريق التلاعب المتزامن بجداول ARP لعميل مستهدف معين وجدول الشبكة الخاص به. تقوم هذه الوحدة تلقائيًا بتمكين إعادة توجيه المنفذ أثناء هذه العملية، وتبني وترسل حزم ARP ديناميكيًا.
عند إنهاء الوحدة من قبل المستخدم، يتم إعادة تعيين جداول ARP للأهداف، حتى لا تترك المتحكم في موقف محفوف بالمخاطر (بالإضافة إلى أن هذا هو الشيء اللطيف الذي ينبغي فعله).
نظرًا لأن هذه العملية تضع المتحكم في منتصف تدفق الحزم بين العميل ونقطة الوصول، فإن المتحكم لديه إمكانية الوصول إلى جميع تدفقات البيانات (التعامل مع التشفير المحتمل لتلك البيانات هو مهمة سكربت آخر). من هنا، تصبح الخيارات المتعددة لتنظيم تدفق الحزم واضحة: استبدال الكود عن طريق الأتمتة والتعبيرات النمطية، إعادة التوجيه القسري، الوصول عن بعد، وما إلى ذلك. لحسن الحظ، يمكن لبروتس أتمتة هذا أيضًا.
متشمم الحزم هو وحدة ممتازة لاستخدامها بعد تشغيل مخادع ARP؛ فهو ينشئ تدفق بيانات لجميع بيانات حزم HTTP المعترضة والتي تتضمن إما عناوين URL أو بيانات اعتماد مستخدم محتملة.
السكربت قابل للتوسع ويمكنه استيعاب مجموعة متنوعة من البروتوكولات عن طريق إنشاء كائن المستمع مع واحد من العديد من المرشحات المتاحة. لاحظ أن بروتس يقوم تلقائيًا بخفض HTTPS إلى HTTP، لذلك ما لم يكن HSTS متورطًا، يجب أن يكون تدفق البيانات قابلاً للاستطلاع.
إخلاء مسؤولية: تم إنشاء هذا البرنامج وجميع محتوياته لأغراض البحث فقط. أنا لا أؤيد ولا أتحمل، بأي شكل من الأشكال، مسؤولية تصرفات أولئك الذين قد ينوون استخدام هذا البرنامج بطريقة ضارة أو غير قانونية.