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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
TriforceOpenBSDFuzzer — اختبار Fuzzing لاستدعاءات النظام على OpenBSD amd64 باستخدام TriforceAFL (أي AFL و QEMU) | Kitploit
أدوات/GitHubGitHub/nccgroup/triforceopenbsdfuzzer
التحليل الديناميكي (عزل)تحليل الثغرات الأمنيةالاختبار العشوائي
GitHubnccgroup/triforceopenbsdfuzzer

TriforceOpenBSDFuzzer

اختبار Fuzzing لاستدعاءات النظام على OpenBSD amd64 باستخدام TriforceAFL (أي AFL و QEMU)

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

الأكثر شعبية

عرض الكل →

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

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

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

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

TriforceOpenBSDSyscallFuzzer

  • 20160825
  • https://github.com/nccgroup/TriforceOpenBSDFuzzer
  • Jesse Hertz [email protected]
  • Tim Newsham [email protected]

هذه مجموعة ملفات تُستخدم لإجراء اختبار Fuzzing لاستدعاءات النظام على OpenBSD amd64 باستخدام TriforceAFL (أي AFL و QEMU). لاستخدامها ستحتاج إلى TriforceAFL (https://github.com/nccgroup/TriforceAFL)، وتوزيعة FlashRD 2.0 (http://www.nmedia.net/flashrd/)، وجهاز OpenBSD لبناء برنامج التشغيل وصورة القرص، وجهاز Linux كمضيف لتشغيل أداة الاختبار (قد تعمل مضيفات أخرى أيضًا، لكننا شغّلنا TriforceAFL من مضيف Linux فقط، وتحديدًا Debian/Ubuntu).

سنقوم بكل شيء بصلاحية root على جهاز OpenBSD، لأن هذا الجهاز يُستخدم فقط لتجهيز بيئتنا. إذا كان لديك جهاز OpenBSD حالي، فلا بأس من تنفيذ قدر أقل من ذلك بصلاحية root. إذا كنت مستخدمًا متمرسًا في OpenBSD، فكثير من هذه الخطوات سيكون مطولًا بشكل مفرط. على أي حال، لنتابع!

على جهاز OpenBSD:

root@kitploit:~
export PKG_PATH=http://mirrors.sonic.net/pub/OpenBSD/$(uname -r)/packages/$(uname -m)/
pkg_add git
pkg_add python # pick python 2.7

بعد ذلك ستحتاج إلى تنزيل مصادر OpenBSD ومصادر النواة، ثم فك ضغطها:

root@kitploit:~
cd ~
ftp http://mirrors.sonic.net/pub/OpenBSD/5.9/src.tar.gz 
ftp http://mirrors.sonic.net/pub/OpenBSD/5.9/sys.tar.gz
cd /usr/src; tar -xzpf $HOME/src.tar.gz; tar -xzpf $HOME/sys.tar.gz;

إذا كان لديك قرص التثبيت بالفعل، فلست بحاجة إلى تنزيل الملفات التالية (ستكون موجودة في $CDMOUNT/5.9/amd64/*.tgz). ستحتاج فقط إلى ضبط $DISTDIR بشكل مناسب. وإلا...

root@kitploit:~
cd ~
ftp http://mirrors.sonic.net/pub/OpenBSD/5.9/amd64/base59.tgz
ftp http://mirrors.sonic.net/pub/OpenBSD/5.9/amd64/man59.tgz
ftp http://mirrors.sonic.net/pub/OpenBSD/5.9/amd64/comp59.tgz
ftp http://mirrors.sonic.net/pub/OpenBSD/5.9/amd64/game59.tgz
export DISTDIR=~

أصبحت لدينا الآن التبعيات الضرورية مثبتة، ويمكننا البدء في بناء الأشياء.

ادخل إلى دليل TriforceOpenBSDFuzzer. توجد أدلة منفصلة تحتوي على ملفات OpenBSD (targ) وملفات مضيف أداة الاختبار (fuzzHost).

بناء برنامج التشغيل والمدخلات

على مضيف OpenBSD، ادخل إلى دليل targ وشغّل make. يجب أيضًا بناء ملفات الإدخال من هذا الدليل

root@kitploit:~
    mkdir inputs
    ./gen.py                   # build simple tests
    ./genTempl.py templ.txt    # build most syscall tests
    ./gen2.py                  # build complex syscall tests
    tar -czf ../inputs.tgz inputs

بناء صورة القرص

بعد ذلك ستحتاج إلى بناء صورة قرص تحتوي على برنامج التشغيل، باستخدام توزيعة FlashRD (http://www.nmedia.net/flashrd/). على مضيف OpenBSD (مع وجود المصادر في /usr/src ومصادر النواة في /usr/src/sys من القسم السابق)، سنقوم الآن بعدة أمور:

  • فك ضغط flashrd-2.0
  • تطبيق التصحيحات على flashrd
  • إنشاء دليل obsd وملؤه بالمحتوى!
root@kitploit:~
    cd ~ #make sure this is on your /home parition, you will need significant disk space for this
    ftp http://www.nmedia.net/flashrd/flashrd-2.0.tar.gz
    tar xzf flashrd-2.0.tar.gz
    cd flashrd-2.0
    patch -p1 < $FUZZER/image-diff.txt #set $FUZZER to where you cloned TriforceOpenBSDFuzzer
    mkdir obsd
    cd obsd

    tar xzpf $DISTDIR/base59.tgz
    tar xzpf $DISTDIR/man59.tgz
    tar xzpf $DISTDIR/comp59.tgz
    tar xzpf $DISTDIR/game59.tgz
    tar xzpf /var/sysmerge/etc.tgz
    cp $FUZZER/image-etc-rc etc/rc
    cp $FUZZER/targ/inputs/ex1 root/ex1
    cd ..

يمكنك الآن إنشاء صورة بتشغيل هذه الأوامر:

root@kitploit:~
    cp $FUZZER/targ/driver obsd/bin/driver
    ./flashrd obsd
    mv flashimg* $FUZZER/flashimg.bin
    mv bsd.gdb $FUZZER/bsd.gdb

احتفظ بنسخة من flashimg.bin و bsd.gdb. ستحتاج إليهما على مضيف أداة الاختبار.

قد ترغب في إنشاء صورة ثانية لأغراض التصحيح تتيح لك تشغيل قشرة تفاعلية. عدّل obsd/etc/rc واستبدل /bin/driver -v بـ /bin/sh -i وأنشئ صورة ثانية. ثم سنحفظ نسخة من flashimg-sh.bin و bsd-sh.gdb لاستخدامها لاحقًا.

root@kitploit:~
    ./flashrd obsd
    mv flashimg* $FUZZER/flashimg-sh.bin
    mv bsd.gdb $FUZZER/bsd-sh.gdb

يمكننا الآن مغادرة جهاز OpenBSD والعودة إلى مضيف الاختبار (تأكد من نسخ $FUZZER إلى الخارج، حتى نتمكن من استخدامه على مضيف الاختبار).

الاختبار بالـ Fuzzing

نقوم بتشغيل أداة الاختبار على مضيف Linux (يجب أن تعمل على أي مضيف يُبنى ويعمل عليه TriforceAFL، لكن النتائج قد تختلف، خاصة على مضيف غير Linux). على مضيف الاختبار، ثبّت TriforceAFL في ../TriforceAFL. انسخ flashimg*.bin وbsd*.gdb إلى دليل fuzzhost، وفك ضغط المدخلات في دليل fuzzHost:

root@kitploit:~
    cd TriforceOpenBSDFuzzer # this should now have the files we made on the BSD host in it
    cp flashimg* fuzzHost/
    cp bsd* fuzzHost/
    cd fuzzhost
    tar xzf ../inputs.tgz

نحن الآن جاهزون للاختبار! ادخل إلى دليل fuzzHost وابدأ أداة الاختبار بالأمر ./runFuzz -M M0.

لاحظ أن سكربت runFuzz يتطلب اسم master أو slave، لأنه يعمل دائمًا في وضع master/slave. راجع سكربت runFuzz لمزيد من معلومات الاستخدام.

إعادة الإنتاج

لإعادة إنتاج حالات الاختبار (مثل حالات الانهيار)، شغّل على مضيف الاختبار:

root@kitploit:~
  ./runTest inputs/ex1
  ./runTest outputs/crashes/id*

يمكنك أيضًا تشغيل برنامج التشغيل خارج البيئة المُحاكاة باستخدام الخيار -t، مع تسجيل مفصّل باستخدام -vv، ودون تنفيذ استدعاءات النظام فعليًا باستخدام -x. على سبيل المثال، على مضيف OpenBSD شغّل:

root@kitploit:~
  ./driver -tvvx < inputs/ex1
  ktrace ./driver -t < inputs/ex1

من المفيد أحيانًا أن تتمكن من إقلاع النواة وتشغيل الاختبارات بشكل تفاعلي. يمكنك تشغيل ./runSh للإقلاع إلى قشرة تفاعلية.

ستحتاج غالبًا إلى إضافة ملفات إضافية (مثل حالات الاختبار) إلى ملف flashimg-sh.bin للاختبار. للقيام بذلك، انسخ الملفات الإضافية إلى flashrd-2.0/obsd/root على مضيف OpenBSD وأعد بناء صورة flash. انقل الملفات مرة أخرى إلى مضيف الاختبار ونفّذ runSh مرة أخرى. ستجد الملفات الإضافية في دليل /root. يمكنك أيضًا إضافة ملفات إلى صورة flash بعد إنشائها، بصلاحية root على مضيف OpenBSD:

root@kitploit:~
    vnconfig vnd0 ./flashimg.bin
    mount /dev/vnd0a /mnt
    cp file /mnt
    umount /mnt
    vnconfig -u vnd0

ستظهر الملفات المضافة هنا في /flash عند إقلاع الصورة

التصحيح

التصحيحات التي طُبقت سابقًا على توزيعة flashrd ستمكّن التصحيح وتعطّل تحسين الأداء عند بناء النواة. وهذا يجعل التصحيح أسهل بكثير.

لتصحيح النواة من مضيف fuzzHost، انسخ /usr/src/sys من مضيف OpenBSD، وانسخ bsd-sh.gdb إلى sys/x/x/x/x. في نافذة واحدة شغّل ./runSh وبعد إقلاع النظام شغّل:

root@kitploit:~
    cd sys
    mkdir -p x/x/x/x
    cd x/x/x/x
    cp $FUZZER/bsd-sh.gdb .
    gdb -ex "target remote :1234" ./bsd-sh.gdb
تنزيل الأداة