Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
fisy-fuzz — هذا هو الإطار الكامل لاختبار نظام الملفات (fuzzing) الذي قدمته في مؤتمر Hack in the Box 2020 Lockdown Edition في أبريل. | Kitploit
أدوات/GitHubGitHub/0xricksanchez/fisy-fuzz
تحليل الثغرات الأمنيةالاستغلالالاختبار العشوائي
GitHub0xricksanchez/fisy-fuzz

fisy-fuzz

هذا هو الإطار الكامل لاختبار نظام الملفات (fuzzing) الذي قدمته في مؤتمر Hack in the Box 2020 Lockdown Edition في أبريل.

عرض المستودع
150232منذ 3 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

FI(le) SY(stem) - FUZZer

هذا هو الإطار الكامل لاختبار الاختراق (fuzzing) لنظام الملفات الذي قدمته في مؤتمر Hack in the Box 2020 Lockdown Edition في أبريل.

  • محاضرة المؤتمر
    • محاضرة المؤتمر (فيديو واحد)
  • مواد المؤتمر

نظرة عامة على الإطار

الهدف

الهدف من هذا الإطار هو اكتشاف ثغرات أمنية في نواة أنظمة UNIX مع تركيز قوي على أنظمة BSD. تم تطويره واختباره بشكل مكثف ضد FreeBSD وOpenBSD وNetBSD، ولكنه يدعم أيضًا بشكل بسيط أنظمة Linux. تمكنا من اكتشاف أكثر من 100 ثغرة فريدة في نواة أنظمة الملفات المستندة إلى UFS وEXT، مع الحصول أيضًا على الكثير من البصيرة حول الإضافة الحديثة لـ ZFS.

مولد حالات الاختبار

يمكن استخدام makeFS2.py كأداة مستقلة لتوليد أنظمة ملفات صالحة مختلفة. يتم شرح الاستخدام بالتفصيل في مستودع مواد المؤتمر.

المتطلبات

تم اختبار الإطار فقط على Ubuntu 18.04. يعتمد على KVM وQEMU وlibvirt. يقوم Requirements.sh بإعداد جميع التبعيات الضرورية. قد يكون الإطار يعمل بكامل وظائفه على أحدث إصدار من Ubuntu 20.04. يمكن دعم أنظمة مضيفة أخرى غير قائمة على بسهولة، ولا يتطلب ذلك سوى تغييرات طفيفة في . بمجرد الانتهاء من المتطلبات، يمكنك متابعة خطوات الإعداد!

apt
Requirements.sh

الإعداد

ارجع إلى SETUP.md. إذا كانت بعض الخطوات غير واضحة، فيرجى التواصل!

ابدأ الاختبار!

لبدء الاختبار، ما عليك سوى تنفيذ: python3 run.py. اعتمادًا على إعدادك، قد تحتاج إلى صلاحيات sudo. عندما يبدأ كل شيء بنجاح، يمكنك الاتصال بجلسة tmux للاختبار عبر:

root@kitploit:~
(sudo) tmux attach-session -t fsfuzzer

الإعدادات

يمكن تكوين الإطار من خلال البرنامج النصي src/config/fuzzing_config.py:

root@kitploit:~

# [مواصفات مهام الاختبار]
# قائمة بالقواميس التي تحدد كل مثيل اختبار
fuzzer = [
    {
        "name": "fuzz1",  # اسم ما للتدوين الداخلي
        "fs_creator_vm": "genBox",  # الاسم كما هو محدد في libvirt للآلة الافتراضية التي تدير إنشاء نظام الملفات، يمكن أن يكون نفسه عبر جميع المثيلات
        "fuzzing_vm": "fuzzBox_0",  # الاسم كما هو محدد في libvirt للآلة الافتراضية التي تدير إنشاء نظام الملفات
        "mutation_engine": "radamsa, 0",  # محرك التحوير الذي سيتم استخدامه، وحجم التحوير (radamsa لا يأخذ معامل حجم)
        "target_fs": "ufs2",  # نظام الملفات المستهدف
        "target_size": 15,  # الحجم الأقصى لنظام الملفات بالميجابايت
        "populate_with_files": 10,  # عدد الملفات التي سيتم إنشاؤها
        "max_file_size": 1024,  # الحد الأقصى لحجم الملف بالبايت لكل ملف تم إنشاؤه
        "enable_dyn_scaling": False,  # سيعمل القياس الديناميكي على زيادة حجم نظام الملفات بشكل دوري
    },
]

# [بيانات الاعتماد]
# بيانات اعتماد المستخدم الجذر للآلات الافتراضية
# من المتوقع أن تكون هذه متطابقة عبر جميع المثيلات، ولكن ليس بالضرورة أن تكون للمستخدم الجذر
user = "root"
pw = "root"

محركات التحوير المتاحة هي:

  • radamsa
  • byte_flip_seq
  • byte_flip_rnd
  • metadata

تم تنفيذ القياس الديناميكي في البداية لاختبار ما إذا كان حجم نظام الملفات يؤثر على الأعطال المحتملة. لم أتمكن من تحديد قيمة محفزة لحجم نظام الملفات تتغير عندها الأعطال، لذلك يمكن ترك هذه العلامة معطلة. كما يمنع ذلك التدهور في الأداء عند التشغيل الطويل لأن أنظمة الملفات الأكبر تستغرق وقتًا أطول في التحوير.

يجب أن تكون معلمات الإعداد المتبقية واضحة بذاتها.

إثبات المفهوم

يظهر الفيديو أدناه عرضًا توضيحيًا سريعًا حيث يستهدف مثيلان للاختبار كليهما FreeBSD مع نظام ملفات UFS2 تم تحويره باستخدام radamsa ونظام ملفات EXT تم قلبه عشوائيًا بالبايتات. يؤدي نظام ملفات UFS المحور مباشرة إلى تعطل، مما يوضح مدى سرعة تعطيل النواة.

asciicast

مثال الاختبار

مجموعة الميزات

  • دعم كامل لأنظمة الملفات FFS وUFS وEXT وZFS
    • دعم جزئي لـ APFS
  • دعم كامل لـ FreeBSD وNetBSD وOpenBSD
    • دعم تجريبي لـ Ubuntu (وربما مشتقات Debian الأخرى)
  • التحوير عبر
    • radamsa
    • قلب البايتات العشوائي العام
    • تغييرات تسلسل البايتات العشوائي العام
    • تغييرات الكتلة الفائقة فقط
  • محاكاة كاملة عشوائية للمستخدم للوصول إلى نظام الملفات التالف/المعدل وتغييره
  • قاعدة بيانات الأعطال
  • التحقق من الأعطال
  • إعادة تعيين الآلة الافتراضية عبر اللقطات
  • عملية اختبار مؤتمتة بالكامل
  • واجهة مستخدم معقولة على سطر الأوامر

العمل المستقبلي

  • دعم محركات تحوير أكثر/مختلفة
  • إعداد آلي للآلة الافتراضية
  • التحقق من وجود لقطات متاحة وأخذها قبل الاختبار إذا كانت مفقودة
  • دعم macOS
  • تحسينات الأداء
    • جعل الإطار غير متزامن
      • إنشاء عينات مستمر دون انتظار تشغيل الاختبار
    • استخدام نفس العينة مع تحويرات مختلفة قبل إنشاء عينة جديدة
    • إعادة تصميم الخوارزميات/التفاعلات لتسريع العملية
  • تنظيف الكود وإعادة هيكلته
    • جعل مستوى تفصيل السجلات قابلاً للتبديل

الجوائز

باستخدام هذا الإعداد، تمكنت من العثور على أكثر من 100 ثغرة فريدة في نواة FreeBSD وNetBSD وOpenBSD لأنظمة الملفات المستندة إلى UFS وEXT. من بين هذه الأعطال، كان لدي مجموعة من الأعطال المثيرة للاهتمام:

  • قراءات خارج الحدود
  • كتابات خارج الحدود
  • خطأ مزدوج في EXT
  • خطأ ثلاثي في UFS
  • ثغرة غير حتمية في النواة مع أكثر من 6 تفريغات نواة فريدة

كانت غالبية الأعطال عبارة عن رفض خدمة (DoS) للنواة. علاوة على ذلك، لا تزال غالبية الأعطال التي تم مواجهتها غير مصححة حتى اليوم (مايو 2020). لذا، جرب العثور على ثغرات في النواة في تطبيقات أنظمة الملفات :).

إخلاء مسؤولية

تم بناء هذا المشروع بأكمله باستخدام 'التطوير الموجه بالثقة'، مما يعني أنه نما بشكل كبير جدًا وبسرعة كبيرة من فكرة إثبات مفهوم واحدة. وبالتالي، لا توجد اختبارات أيضًا، وعلى الأرجح هناك بعض الأخطاء. أنا آسف إذا واجهت أعطالًا (ليست مرتبطة بذعر النواة) ولكن لا تتردد في تقديم طلب سحب أو التواصل معي وسأصلح الأمور في أقرب وقت ممكن!

تواصل

تويتر: @0xricksanchez

تنزيل الأداة