Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/parikhakshat/autoharness
تحليل الثغرات الأمنيةتحليل الكودالاختبار العشوائيتحليل الملفات الثنائية
GitHubparikhakshat/autoharness

autoharness

أداة تقوم تلقائياً بإنشاء أدوات تسخير للاختبارات الفجائية استناداً إلى مكتبة.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

AutoHarness

من إنشاء أكشات باريك

ما هي هذه الأداة؟

AutoHarness هي أداة تقوم بإنشاء أدوات fuzzing harnesses تلقائيًا لك. تنبع هذه الفكرة من مشكلة متزامنة في تزويد قواعد الأكواد بالتغذية العشوائية اليوم: تحتوي قواعد الأكواد الكبيرة على آلاف الدوال وقطع الكود التي يمكن أن تكون مدفونة بعمق داخل المكتبة. من الصعب جدًا أو حتى المستحيل أحيانًا على أدوات fuzzing الذكية الوصول إلى مسار الكود هذا. حتى بالنسبة لمشاريع fuzzing الكبيرة مثل oss-fuzz، لا تزال هناك أجزاء من قاعدة الكود غير مغطاة في التغذية العشوائية. لذلك، يحاول هذا البرنامج تخفيف هذه المشكلة إلى حد ما بالإضافة إلى توفير أداة يمكن لباحثي الأمن استخدامها لاختبار قاعدة الكود مبدئيًا. هذا البرنامج يدعم فقط قواعد الأكواد المكتوبة بلغة C و C++.

الإعداد/العرض التوضيحي

يستخدم هذا البرنامج llvm و clang من أجل libfuzzer، و Codeql للعثور على الدوال، و python للبرنامج العام. تم اختبار هذا البرنامج على Ubuntu 20.04 مع llvm 12 و python 3. فيما يلي الإعداد الأولي.

sudo apt-get update;
sudo apt-get install python3 python3-pip llvm-12* clang-12 git;
pip3 install pandas lief subprocess os argparse ast;

اتبع إجراءات تثبيت Codeql على https://github.com/github/codeql. تأكد من تثبيت أدوات سطر الأوامر والمكتبات. بالنسبة لاختباراتي، قمت بتخزين كل من الأدوات والمكتبات في مجلد واحد. أخيرًا، استنسخ هذا المستودع أو قم بتنزيل إصدار. فيما يلي مخرجات البرنامج بعد تشغيله على nginx مع وضع الوسيطات المتعددة المضبوط. هذا هو الأمر الذي استخدمته.

python3 harness.py -L /home/akshat/nginx-1.21.0/objs/ -C /home/akshat/codeql-h/ -M 1 -O /home/akshat/autoharness/ -D nginx -G 1 -Y 1 -F "-I /home/akshat/nginx-1.21.0/objs -I /home/akshat/nginx-1.21.0/src/core -I /home/akshat/nginx-1.21.0/src/event -I /home/akshat/nginx-1.21.0/src/http -I /home/akshat/nginx-1.21.0/src/mail -I /home/akshat/nginx-1.21.0/src/misc -I /home/akshat/nginx-1.21.0/src/os -I /home/akshat/nginx-1.21.0/src/stream -I /home/akshat/nginx-1.21.0/src/os/unix" -X ngx_config.h,ngx_core.h

النتائج: image من الممكن بالتأكيد رفع نسبة النجاح من خلال مزيد من تصحيح أخطاء التجميع وإضافة المزيد من ملفات الرأس والمزيد. لاحظ أن مشروع nginx لا يحتوي على أي كائنات مشتركة بعد التجميع. ومع ذلك، يحتوي هذا البرنامج على ميزة يمكنها تحويل الملفات التنفيذية PIE إلى مكتبات مشتركة.

الميزات المخطط لها (حسب ترتيب التقدم)

  1. Struct Fuzzing

الطريقة الحالية المطبقة في البرنامج لتزويد الدوال ذات الوسيطات المتعددة بالتغذية العشوائية هي باستخدام مزود بيانات fuzzing (fuzzing data provider). هناك بعض التحسينات التي يجب إجراؤها في هذا التكامل؛ ومع ذلك، أعتقد أنه يمكنني دمج هذه الميزة مع هياكل البيانات. المشكلة التي أواجهها عند برمجة ذلك هي مع Codeql والهياكل المتداخلة. يصبح الأمر صعبًا بشكل خاص دون كتابة استعلامات متعددة تختلف لكل دالة. باختصار، هذه الميزة تحتاج إلى مزيد من العمل. كنت أفكر أيضًا في حل بسيط باستخدام protobufs.

  1. Implementation Based Harness Creation

باستخدام Codeql، من الممكن استخدامه لتوليد رسم بياني لتدفق التحكم يوضح كيفية تهيئة المعاملات في دالة. باستخدام هذه المعلومات، يمكننا إنشاء harness أفضل. طريقة أخرى هي البحث عن التطبيقات المتاحة للدالة في المكتبة واستخدام هذه المعلومات لتخمين مدروس لتطبيق الدالة كـ harness. المشاكل التي أواجهها حاليًا مع هذا هي توليد رسوم تدفق التحكم باستخدام Codeql.

  1. Parallelized fuzzing/False Positive Detection

يمكنني إنشاء برنامج بسيط يقوم بتشغيل جميع الـ harnesses ويلتقط أيًا من النتائج الإيجابية الخاطئة الشائعة باستخدام ASAN. أيضًا، يمكنني إنشاء واجهة جديدة تقوم بتشغيل جميع الـ harnesses في وقت واحد وتعرض إحصائياتها.

المساهمة / الأخطاء

إذا وجدت أي أخطاء في هذا البرنامج، يرجى إنشاء issue. سأحاول التوصل إلى إصلاح. أيضًا، إذا كانت لديك أي أفكار حول أي ميزات جديدة أو كيفية تنفيذ تحسينات الأداء أو الميزات المخطط لها حاليًا، يرجى إنشاء pull request أو issue مع الوسم (contribution).

PSA

هذه الأداة تولد بعض النتائج الإيجابية الخاطئة. يرجى أولاً تحليل حالات التعطل ومعرفة ما إذا كان خطأ صحيحًا أم مجرد خطأ في التطبيق. أيضًا، يمكنك تمكين وضع التصحيح إذا كانت بعض الدوال لا تترجم. سيساعدك هذا على فهم إذا كانت هناك بعض ملفات الرأس المفقودة أو أي مشاكل في الربط. إذا كان المشروع الذي تعمل عليه لا يحتوي على مكتبات مشتركة بل ملف تنفيذي، تأكد من تجميع الملف التنفيذي بشكل PIE حتى يتمكن هذا البرنامج من تحويله إلى مكتبة مشتركة.

المراجع

  1. https://lief.quarkslab.com/doc/latest/tutorials/08_elf_bin2lib.html
تنزيل الأداة