
yakit v1.4.8-0731
منصة اختبار اختراق شاملة مع MITM proxy و web fuzzer و reverse connection handler ونظام plugins للاختبار الأمني الآلي والاستغلال.
Yakit - منصة اختبار أمان التطبيقات التفاعلية
عرض الورقة البيضاء • الوثائق الرسمية • تقديم ملاحظات • الموقع الرسمي • انضم إلى المجتمع • هندسة المشروع
:book:اختيار اللغة: English • 中文
مقدمة عن Yakit
دمج الأمان هو إصلاح في عمليات الأمن وإدارته بالنسبة للمؤسسات في ظل الظروف الطبيعية الجديدة، وهو أيضًا أولوية عاجلة للمؤسسات في هذه الظروف.
استنادًا إلى مفهوم دمج الأمان، طور فريق Yaklang.io لغة عمودية في مجال الأمن تدعى Yaklang. بالنسبة للمنتجات/الأدوات التي لا يمكن دمجها أصلاً في منصة Yak، يمكن استخدام Yaklang لإعادة كتابة "بدائل عالية الجودة" لها. بالنسبة للمنتجات ذات النظام البيئي الكامل والمقبولة على نطاق واسع، يمكن لـ Yaklang تجميعها ودمجها مباشرة، وإجراء التعديلات اللازمة على الكود المصدري لتكييفه بشكل أفضل مع لغة Yaklang. بالنسبة لممارسي الأمن الذين لا يرغبون في كتابة التعليمات البرمجية، توفر Yakit واجهات رسومية مناسبة لجميع قدرات Yaklang، وستصبح الواجهة الرسومية أكثر نضجًا مع تطور الإصدارات.
لتقريب قدرات Yaklang الأمنية من الاستخدام الفعلي للجميع، قمنا بكتابة خادم gRPC لـ Yak، واستخدمنا هذا الخادم لبناء عميل: Yakit.
هندسة المشروع
التقنية الأساسية: CDSL
يُعرف CDSL بأنه لغة خاصة بمجال الأمن السيبراني (CyberSecurity Domain Specific Language)؛ وقد كتبنا آلة افتراضية مكدسية لتحمل حالة تشغيل هذه اللغة المكتملة من حيث تورينج. نأمل من خلال وسيلة "CDSL" تحقيق دمج القدرات الأمنية وتوحيد الطبقة الأساسية.
لتكون CDSL في مجال الأمن التي طورناها ذاتيًا أقرب إلى سيناريوهات الاستخدام الفعلي، قمنا بكتابة خادم gRPC لـ Yaklang، وبناءً على خادم gRPC قمنا ببناء العميل Yakit. في الواقع، يتم التحكم في قدرات المحرك من خلال واجهة Yakit الرسومية. يجعل خادم gRPC الخاص بـ Yakit نشر المستخدم أكثر سهولة وسرعة، وبشكل مستقل عن المنصة، مع إمكانية النشر عن بُعد أو التشغيل محليًا مباشرةً على المضيف.
- بديل 100% لمنصة اعتراض MITM الخاصة بـ BurpSuite؛
- واجهة رسومية يصعب تكرارها للمسح السلبي MITM؛
- دمج نصوص Yaklang لتصحيح حركة المرور ديناميكيًا؛ تنفيذ الكود ديناميكيًا في أي وقت؛
- أول أداة اختبار تشويش مرئية على الويب في العالم — Web Fuzzer؛
- متجر إضافات Yakit:
- تنفيذ نصوص أو إضافات Yaklang مخصصة في أي خطوة من خطوات اختبار الاختراق ... ...
نظرة عامة على القدرات الأمنية:
التقنيات المميزة
اعتراض MITM التفاعلي
يمكن لمنصة تشغيل MITM أن تحل محل BurpSuite بنسبة 100% لتنفيذ جميع العمليات (تنزيل وتثبيت الشهادة، اعتراض الطلبات، الاستجابات، تعديل الحزم المعترضة، إلخ). وتوفر سير عمل كامل وسلس: اعتراض => السجل => Repeater/Intruder، اعتراض البيانات، عرض البيانات التاريخية في السجل، اختيار الحزم التي تحتاج إلى "استخراج"، وإرسالها إلى Web Fuzzer لإجراء عمليات Repeater/Intruder. بالإضافة إلى سيناريوهات التشغيل النموذجية هذه، يوفر MITM أيضًا وظائف أكثر مرونة مثل المسح السلبي للإضافات، التحميل الساخن، استبدال الحزم، وضع العلامات، إلخ.
مبدأ وحدة MITM في Yakit هو بدء وكيل HTTP، وإعادة توجيه حركة المرور تلقائيًا. عند بدء الاعتراض اليدوي، يتوقف إعادة التوجيه التلقائي، ويتم حظر الطلب، وإخراجه من المكدس، ومعالجته بفك Gzip ومعالجة التقسيم (chunk) وفك الترميز لجعل الطلب قابلًا للقراءة البشرية، وعرضه على واجهة المستخدم الأمامية. يمكن للمستخدم عرض الطلب أو تعديله أو إعادة تشغيله. أثناء إعادة التشغيل، يتم إصلاح حزمة طلب HTTP التي أنشأها المستخدم لضمان صلاحية الحزمة. قام محرك Yak بتنفيذ مكتبة HTTP يدويًا، لذا يمكن للمستخدمين تخصيص حزم طلب واستجابة غير طبيعية لاستغلال الثغرات في بعض السيناريوهات الخاصة.
إعادة تشغيل حركة المرور التفاعلية واختبار التشويش لتطبيقات الويب
يدعم وحدة Web Fuzzer المستخدم في تخصيص إرسال طلبات HTTP بصيغة النص الأصلي. لجعل الاستخدام بسيطًا وبديهيًا للمستخدم، حيث يحتاج فقط إلى الاهتمام بمعلومات البيانات ذات الصلة، قامت الواجهة الخلفية لـ Yakit بالكثير من العمل. يتم إصلاح بعض المعلومات في النص الأصلي لـ HTTP التي تضمن نقل البيانات وتحليلها بواسطة الواجهة الخلفية لـ Yakit، مثل إصلاح CRLF، واستكمال Content-Type، ونقلها بطريقة chunk، واستكمال boundary، وإصلاح Content-Length، إلخ.
تقنية Fuzztag
يدعم وحدة Web Fuzzer من خلال علامات Fuzz دمج وظائف مثل اصطدام المضيف (Host Collision) و Intruder واختراق الدليل بشكل طبيعي ومثالي. على سبيل المثال، في سيناريو اختراق معلمة واحدة، مثل اختراق معرف المستخدم، يمكن استخدام العلامة {{int(1-10)}} لإنشاء المعرفات المخترقة تلقائيًا. في مواجهة سيناريوهات اختراق معلمات متعددة، يتم استخدام نتائج حاصل الضرب الديكارتي كمعلمات اختراق، مقارنة بوحدة Intruder في BurpSuite، فإنها تلغي الحاجة إلى اختيار طريقة الاختراق واستيراد القواميس، مما يقلل بشكل كبير من مسار تشغيل المستخدم ويتوافق مع عادات الاستخدام. بالطبع، بالإضافة إلى استخدام العلامات لإنشاء المعلمات تلقائيًا، يدعم وحدة Web Fuzzer أيضًا استيراد القواميس الخارجية، مثل: {{file(/tmp/username.txt)}}. في مواجهة سيناريوهات بيانات أكثر تعقيدًا، يدعم وحدة Web Fuzzer إدراج علامات التحميل الساخن، مثل الحاجة إلى اختراق أرقام الهوية لمنطقة معينة، يمكن إدراج نص Yak مباشرة في وحدة Web Fuzzer لإنشاء البيانات واختراقها. بينما تواجه وحدة Intruder في BurpSuite هذا السيناريو، فإنها تحتاج إلى كتابة كود لإنشاء قاموس، ثم استيراده إلى وحدة Intruder.
لمزيد من المعلومات حول fuzztag، يمكنك الاطلاع على: Fuzztag نظرة سريعة
