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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
asminject — نسخة معدّلة بشكل كبير من مشروع dlinject الخاص بـ David Buchanan. تحقن حمولات تعليمات التجميع الاعتباطية (أو ملفات ثنائية مُجمَّعة مسبقًا) مباشرةً في عمليات Linux ذات معماريات x86-64 و x86 و ARM32 دون استخدام ptrace، وذلك عبر الوصول إلى /proc/<pid>/mem. مفيدة في بعض سيناريوهات ما بعد الاستغلال، واسترجاع المحتوى من ذاكرة العملية، وما إلى ذلك.. | Kitploit
أدوات/GitHubGitHub/bishopfox/asminject
شيل كودما بعد الاستغلالاختبار الاختراقتطوير الحمولاتالهروب من الحاوية
GitHubbishopfox/asminject

asminject

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

الأكثر شعبية

عرض الكل →

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

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

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

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

حول

نسخة معدّلة بشكل كبير من مشروع dlinject الخاص بـ David Buchanan. تحقن حمولات تعليمات التجميع الاعتباطية (أو ملفات ثنائية مُجمَّعة مسبقًا) مباشرةً في عمليات Linux ذات معماريات x86-64 و x86 و ARM32 دون استخدام ptrace، وذلك عبر الوصول إلى /proc/<pid>/mem. مفيدة في بعض سيناريوهات ما بعد الاستغلال، واسترجاع المحتوى من ذاكرة العملية، وما إلى ذلك..

مشاركة

asminject.py

asminject.py هو fork مُعدّل بشكل كبير من مشروع dlinject الخاص بـ David Buchanan. فهو يحقن حمولات من لغة التجميع التعسفية (أو ثنائيات مُجمّعة مسبقًا) مباشرة في عمليات Linux بمعماريات x86-64 وx86 وARM32 عبر الوصول إلى /proc/<pid>/mem بدلاً من الالتصاق عبر ptrace. وهو مفيد للعبث مع العمليات الموثوقة، وبعض سيناريوهات ما بعد الاستغلال، واستعادة المحتوى من ذاكرة العملية، وتجاوز بعض ضوابط الأمان. كما يمكنه الحقن في العمليات المحتواة من خارج الحاوية، طالما لديك صلاحية وصول الجذر على المضيف.

يمكنك أيضًا قراءة المزيد عن asminject.py وأصله على صفحة الأداة في Bishop Fox، بما في ذلك مقال مفصّل عن العمل الذي ألهم الأداة.

في هذا المستند:

  • العروض السريعة أو TLDR
  • النشأة
  • أمثلة
  • لكن ماذا عن قيود ptrace_scope الخاص بـ Yama؟
  • الأهداف المستقبلية

وثائق منفصلة وأكثر تفصيلًا:

  • كيف يعمل asminject.py - نقاش معماري رفيع المستوى مع غوص عميق في بعض التفاصيل التقنية، خاصة للقراء الذين لم يتعاملوا مع أدوات حقن الذاكرة من قبل
  • بدء الاستخدام
  • الاختلافات عن dlinject.py
  • خيارات متخصصة
  • استكشاف الأخطاء وإصلاحها
  • سجل الإصدارات

العروض السريعة أو TLDR

  • "إنّ asminject.py يشبه dlinject، إلا أنه يتيح لك حقن أي حمولة تريدها بدلاً من مجرد تحميل مكتبة، ويعمل على معماريات متعددة."
  • "يشبه asminject.py إلى حدٍ ما Frida، إلا أنه لا يلتصق عبر واجهة ptrace، لذا لا يمكن للعمليات حظره عن طريق تتبع نفسها بـ ptrace."

النشأة

كُتب asminject.py لسيناريوهين رئيسيين في اختبار الاختراق داخل بيئات Linux:

  • مهاجمة ضوابط الأمان على مستوى العملية والحاوية من منظور مهاجم يمتلك صلاحية الجذر على المضيف
  • تجنّب الاكتشاف بعد نجاح استغلال مشكلة أخرى

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

صُمم dlinject.py الأصلي خصيصًا لتحميل المكتبات المشتركة لنظام Linux في عملية قائمة. يقوم asminject.py بكل ما كان يفعله الأصل وأكثر من ذلك بكثير. فهو ينفّذ كود تجميع تعسفيًا، ويتضمن قوالب لمجموعة متنوعة من الهجمات. كما أُعيد تصميمه للمساعدة في تجنّب الاكتشاف بواسطة آليات الأمان التي ترصد الأنشطة التي قد تكون مشبوهة مثل أحداث تحميل المكتبات.

أمثلة

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

الصيغة الأساسية لاستدعاء asminject.py هي:

root@kitploit:~
# python3 ./asminject.py <target_process_id> <payload> \
  --arch [x86-64|x86|arm32] --relative-offsets-from-binaries --stop-method "slow" \
  --var <payload_variable_1_name> <payload_variable_1_value> \
  # ... \
  --var <payload_variable_n_name> <payload_variable_n_value>

في معظم الحالات، ستعمل أي حمولة من الحمولات المستخدمة في الأمثلة على أي من المعماريات المدعومة.

  • أمثلة أساسية - حمولات بسيطة تجعل مثلًا عملية قائمة تنسخ لك ملفات
  • حقن كود بايثون
  • حقن كود PHP
  • حقن كود روبي
  • حقن شيل كود/ستاجر
  • حقن المكتبات المشتركة

لكن ماذا عن قيود ptrace_scope الخاص بـ Yama؟

تتضمن معظم توزيعات Linux وحدة أمان نواة تُدعى Yama تتحكم في الوصول إلى استخدام إمكانية ptrace ضد العمليات الأخرى. وبينما لا يلتصق asminject.py بواجهة المصحح، فإنه ما زال يتطلب إذنًا لاستخدام إمكانية ptrace. إذا كنت تتلقى أخطاءً حول هذه الإمكانية، فافحص محتوى /proc/sys/kernel/yama/ptrace_scope. إذا كانت قيمته 2، فشغّل الأمر التالي بصلاحية root:

root@kitploit:~
echo 1 > /proc/sys/kernel/yama/ptrace_scope

لا يمكن إلغاء القيم 3 أو أعلى دون إعادة تشغيل النظام. ومع ذلك، إذا كنت مسؤولًا مخوّلًا لنظام Linux حيث قام شخص ما بتعيين /proc/sys/kernel/yama/ptrace_scope إلى 3 عن طريق الخطأ، أو كنت تجري اختبار اختراق مخوّلًا لبيئة تم فيها تعيين هذه القيمة، فراجع دليل ptrace_scope_kernel_module للاطلاع على حل محتمل لا يتطلب إعادة تشغيل.

الأهداف المستقبلية

  • إضافة دعم لمعمارية ARM64 (Aarch64).
  • السماح بتمرير شيل كود عبر stdin بالإضافة إلى الطريقة الحالية للقراءة من ملف.
  • التحقيق في استخدام Keystone لتجميع شيل كود بدلاً من استدعاء أمر gcc على مستوى نظام التشغيل.
  • بالنسبة إلى Python ومفسرات البرمجة النصية الأخرى التي توفر واجهات برمجية لتمرير كود بايت مُجمّع للتنفيذ (بدلاً من التنفيذ بنمط eval لكود نصي قابل للقراءة البشرية)، توفير حمولات للاستفادة من هذه القدرة لمزيد من التخفي.
  • إذا كان ذلك ممكنًا، حقن كود Java في عمليات Java عبر JNI.
  • إضافة خيارات لربط طريقة محددة (أو عنوان، إلخ) كبديل لتقنية «ربط استدعاء النظام التالي» الحالية الموروثة من dlinject.py.
  • توفير طريقة لاستخدام الأداة في تصحيح أخطاء شبه كامل، مثل ربط دالة وإخراج الوسائط المُمررة إليها في كل مرة تُستدعى فيها.
    • قد يكون من المنطقي أكثر إيجاد طريقة لحقن Frida باستخدام asminject.py - هناك حاجة إلى مزيد من البحث.
  • تطوير حمولات تفاعلية، مثل أن يطلب asminject.py من المشغّل سطر كود لحقنه بدلاً من حقن سطر معيّن من كود بايثون في عملية بايثون، ثم يحقنه، ويعيد المخرجات الناتجة، ثم يطلب سطرًا آخر من الكود.
    • قد يكون من المنطقي أيضًا معالجة هذا الأمر باستخدام Frida، إذا كان يمكن حقن Frida في عملية باستخدام asminject.py بطريقة تتجنب حاجة Frida إلى استدعاء واجهة المصحح مؤقتًا.
  • توفير طريقة للتفاعل مع عملية هدف تعمل على معمارية معالج لا تطابق المعمارية التي يعمل عليها asminject.py. مثال: التفاعل مع جهاز بعيد باستخدام عتاد مثل PCI leech، أو استغلال حالات حافة قصوى مثل أجهزة يمكن الوصول إلى /proc/mem فيها كجذر عبر مشاركة NFS، إلى آخره.
تنزيل الأداة
  • إضافة أجزاء تشويش أكثر تطورًا.