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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
sandsifter — مختبر التشويش لمعالج x86 | Kitploit
أدوات/GitHubGitHub/xoreaxeaxeax/sandsifter
تحليل الثغرات الأمنيةالهندسة العكسيةالاختبار العشوائيأمن الأجهزةتحليل الملفات الثنائية
GitHubxoreaxeaxeax/sandsifter

sandsifter

مختبر التشويش لمعالج x86

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

الأكثر شعبية

عرض الكل →

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

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

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

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

s a n d s i f t e r

: مزوّد معالجات x86

نظرة عامة

يقوم sandsifter بمراجعة معالجات x86 للكشف عن التعليمات المخفية وأخطاء العتاد، من خلال توليد كود آلة منهجي للبحث في مجموعة تعليمات المعالج، ورصد الشذوذ أثناء التنفيذ. كشف Sandsifter عن تعليمات معالج سرية من كل بائع رئيسي؛ أخطاء برمجية منتشرة في مفككات التجميع، والمجمّعات، والمحاكيات؛ ثغرات في برامج الإدارة الافتراضية للمؤسسات؛ وأخطاء عتادية حميدة وحاسمة أمنيًا في رقاقات x86.

مع تعدد معالجات x86 الموجودة، الهدف من الأداة هو تمكين المستخدمين من فحص أنظمتهم الخاصة بحثًا عن تعليمات وأخطاء مخفية.

لتشغيل تدقيق أساسي ضد المعالج الخاص بك:

root@kitploit:~
sudo ./sifter.py --unk --dis --len --sync --tick -- -P1 -t

demo_sandsifter

يتم مسح الكمبيوتر بشكل منهجي للبحث عن تعليمات شاذة. في النصف العلوي، يمكنك رؤية التعليمات التي يختبرها sandsifter حاليًا على المعالج. في النصف السفلي، يبلغ sandsifter عن الشذوذ الذي يجده.

سيستغرق البحث من بضع ساعات إلى بضعة أيام، اعتمادًا على سرعة وتعقيد المعالج الخاص بك. عند اكتماله، لخص النتائج:

root@kitploit:~
./summarize.py data/log

demo_summarizer

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

  • خطأ برمجي (على سبيل المثال، خطأ في برنامج الإدارة الافتراضية أو مفكك التجميع الخاص بك)،
  • خطأ عتادي (خطأ في وحدة المعالجة المركزية الخاصة بك)، أو
  • تعليمة غير موثقة (تعليمة موجودة في المعالج، لكنها غير معترف بها من قبل الشركة المصنعة)

اضغط 'Q' للخروج والحصول على ملخص نصي لفحص النظام:

يمكن أن تكون نتائج الفحص أحيانًا صعبة التصنيف تلقائيًا بواسطة الأدوات، وقد تتطلب تحليلًا يدويًا. للمساعدة في تحليل نتائجك، لا تتردد في إرسال ملف ./data/log إلى [email protected]. لا يتم تضمين أي معلومات شخصية، بخلاف صنع المعالج وطرازه ومراجعته (من /proc/cpuinfo)، في هذا السجل.

النتائج

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

يمكن العثور على تفاصيل النتائج في الورقة البيضاء للمشروع.

(TODO: detailed results enumeration here)

البناء

يتطلب Sandsifter أولاً تثبيت مفكك التجميع Capstone: http://www.capstone-engine.org/. يمكن تثبيت Capstone عادةً باستخدام:

root@kitploit:~
sudo apt-get install libcapstone3 libcapstone-dev
sudo pip install capstone

يمكن بناء Sandsifter باستخدام:

root@kitploit:~
make

ويتم تشغيله بعد ذلك باستخدام:

root@kitploit:~
sudo ./sifter.py --unk --dis --len --sync --tick -- -P1 -t

العلامات

يتم تمرير العلامات إلى المنخل باستخدام --flag، وإلى الحاقن باستخدام -- -f.

مثال:

root@kitploit:~
sudo ./sifter.py --unk --dis --len --sync --tick -- -P1 -t

علامات المنخل:

root@kitploit:~
--len
	البحث عن اختلافات الطول في جميع التعليمات (تعليمات تم تنفيذها بشكل مختلف عما توقعه مفكك التجميع، أو لم تكن موجودة عندما توقعها مفكك التجميع)

--dis
	البحث عن اختلافات الطول في التعليمات الصالحة (تعليمات تم تنفيذها بشكل مختلف عما توقعه مفكك التجميع)

--unk
	البحث عن تعليمات غير معروفة (تعليمات لا يعرفها مفكك التجميع ولكنها تُنفذ بنجاح)

--ill
	العكس من --unk، البحث عن تفكيكات غير صالحة (تعليمات لا تُنفذ بنجاح ولكن مفكك التجميع يعترف بها)

--tick
	كتابة التعليمات الحالية إلى القرص بشكل دوري

--save
	حفظ تقدم البحث عند الخروج

--resume
	استئناف البحث من آخر حالة محفوظة

--sync
	كتابة نتائج البحث إلى القرص فور العثور عليها

--low-mem
	عدم تخزين النتائج في الذاكرة

علامات الحاقن:

root@kitploit:~
-b
	الوضع: القوة العمياء

-r
	الوضع: التزويد العشوائي

-t
	الوضع: التزويد النفقي

-d
	الوضع: التزويد الموجه خارجيًا

-R
	وضع الإخراج الخام

-T
	وضع الإخراج النصي

-x
	كتابة التقدم الدوري إلى stderr

-0
	السماح بإلغاء الإشارة الفارغة (يتطلب sudo)

-D
	السماح بالبادئات المكررة

-N
	لا دعم لبت NX

-s seed
	في البحث العشوائي، قيمة البذرة

-B brute_depth
	في البحث بالقوة العمياء، أقصى عمق للبحث

-P max_prefix
	الحد الأقصى لعدد البادئات للبحث

-i instruction
	التعليمة التي يبدأ عندها البحث (شاملة)

-e instruction
	التعليمة التي ينتهي عندها البحث (غير شاملة)

-c core
	النواة التي يتم إجراء البحث عليها

-X blacklist
	إدراج التعليمة المحددة في القائمة السوداء

-j jobs
	عدد الوظائف المتزامنة للتشغيل

-l range_bytes
	عدد بايتات التعليمات الأساسية في كل نطاق فرعي

المفاتيح

m: الوضع - تغيير وضع البحث (القوة العمياء، العشوائي، أو النفقي) للمنخل

q: خروج - الخروج من المنخل

p: إيقاف مؤقت - إيقاف البحث أو استئنافه مؤقتًا

الخوارزميات

يدعم المسح أربع خوارزميات بحث مختلفة، يمكن ضبطها من سطر الأوامر، أو التنقل بينها عبر مفاتيح الاختصار.

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

نصائح

  • sudo

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

  • البادئات

    القيود الرئيسية لعمق بحث التعليمات هو عدد بايتات البادئة لاستكشافها، حيث يزيد كل بايت بادئة إضافي من مساحة البحث بعامل حوالي 10. حدد بايتات البادئة باستخدام العلم -P.

  • الألوان

    واجهة المنخل مصممة لطرفية 256 لونًا. بينما تختلف التفاصيل بشكل كبير حسب الطرفية الخاصة بك، يمكن تحقيق ذلك تقريبًا باستخدام:

    root@kitploit:~
    export TERM='xterm-256color'
    
  • واجهة المستخدم الرسومية

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

    في بعض الحالات، قد يكون من المرغوب فيه أو الضروري تشغيل الأداة دون الواجهة الرسومية. يمكن القيام بذلك عن طريق تشغيل الحاقن مباشرة:

    root@kitploit:~
    sudo ./injector -P1 -t -0
    

    لتصفية نتائج استدعاء الحاقن المباشر، يمكن استخدام grep. على سبيل المثال،

    root@kitploit:~
    sudo ./injector -P1 -r -0 | grep '\.r' | grep -v sigill
    

    يبحث عن التعليمات التي اختلف فيها المعالج ومفكك التجميع على طول التعليمات (grep '.r')، ولكن التعليمات نُفذت بنجاح (grep -v sigill).

  • التزويد المستهدف

    في كثير من الحالات، من المفيد توجيه المزوّد إلى هدف محدد. على سبيل المثال، إذا كنت تشك في أن محاكيًا لديه عيوب حول بادئات 'lock' المتكررة (0xf0)، يمكنك توجيه المزوّد للبحث في هذه المنطقة من مساحة التعليمات باستخدام العلامات -i و -e:

    root@kitploit:~
    sudo ./sifter.py --unk --dis --len --sync --tick -- -t -i f0f0 -e f0f1 -D -P15
    
  • الأنظمة القديمة

    لفحص الأنظمة الأقدم بكثير (معالجات فئة i586، أنظمة ذاكرة منخفضة)، قم بتمرير العلم --low-mem إلى المنخل والعلم -N إلى الحاقن:

    root@kitploit:~
    sudo ./sifter.py --unk --dis --len --sync --tick --low-mem -- -P1 -t -N
    

المراجع

  • يمكن العثور على مناقشة للتقنيات والنتائج في عرض Black Hat.
  • التفاصيل التقنية موصوفة في الورقة البيضاء.
  • شرائح من عرض Black Hat موجودة هنا.

المؤلف

sandsifter هو جهد بحثي من Christopher Domas (@xoreaxeaxeax).

تنزيل الأداة

إذا لاحظت أن عمليات المسح الخاصة بك تكتمل بسرعة كبيرة (على سبيل المثال، يكتمل المسح في ثوانٍ)، فعادةً لأن هذه العلامات مطلوبة للمعالج الذي تفحصه.

  • 32 مقابل 64 بت

    افتراضيًا، يتم بناء sandsifter لاستهداف بتية نظام التشغيل المضيف. ومع ذلك، فإن بعض التعليمات لها سلوكيات مختلفة عند تشغيلها في عملية 32 بت مقارنة بعملية 64 بت. لاستكشاف هذه السيناريوهات، من المفيد أحيانًا تشغيل sandsifter 32 بت على نظام 64 بت.

    لبناء sandsifter 32 بت على نظام 64 بت، يجب تثبيت Capstone كـ 32 بت؛ يمكن العثور على تعليمات ذلك على http://www.capstone-engine.org/.

    ثم يجب بناء sandsifter لهندسة 32 بت:

    root@kitploit:~
    make CFLAGS=-m32
    

    وبهذا، يمكن استكشاف مساحة تعليمات 32 بت على نظام 64 بت.