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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
dlinject — حقن مكتبة مشتركة (أي كود عشوائي) في عملية لينكس حية، دون ptrace | Kitploit
أدوات/GitHubGitHub/davidbuchanan314/dlinject
الاستغلالشيل كودالفريق الأحمر
GitHubdavidbuchanan314/dlinject

dlinject

حقن مكتبة مشتركة (أي كود عشوائي) في عملية لينكس حية، دون ptrace

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

الأكثر شعبية

عرض الكل →

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

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

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

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

dlinject.py

حقن مكتبة مشتركة (أي كود عشوائي) في عملية لينكس حية، دون استخدام ptrace. مستوحى من Cexigua و linux-inject، من بين أشياء أخرى.

asciicast

الاستخدام

root@kitploit:~
    .___.__  .__            __               __
  __| _/|  | |__| ____     |__| ____   _____/  |_  ______ ___.__.
 / __ | |  | |  |/    \    |  |/ __ \_/ ___\   __\ \____ <   |  |
/ /_/ | |  |_|  |   |  \   |  |  ___/\  \___|  |   |  |_> >___  |
\____ | |____/__|___|  /\__|  |\___  >\___  >__| /\|   __// ____|
     \/              \/\______|    \/     \/     \/|__|   \/

source: https://github.com/DavidBuchanan314/dlinject

usage: dlinject.py [-h] [--stopmethod {sigstop,cgroup_freeze,none}]
                   pid /path/to/lib.so

Inject a shared library into a live process.

positional arguments:
  pid                   The pid of the target process
  /path/to/lib.so       Path of the shared library to load (note: must be
                        relative to the target process's cwd, or absolute)

optional arguments:
  -h, --help            show this help message and exit
  --stopmethod {sigstop,cgroup_freeze,none}
                        How to stop the target process prior to shellcode
                        injection. SIGSTOP (default) can have side-effects.
                        cgroup freeze requires root. 'none' is likely to cause
                        race conditions.

لماذا؟

  • لأنني أستطيع.

  • توجد تقنيات متنوعة لمكافحة ptrace، والتي تتجنبها هذه الأداة ببساطة بعدم استخدام ptrace.

  • لا أحب ptrace.

  • استخدام LD_PRELOAD قد يكون أحياناً صعباً أو مستحيلاً، إذا كانت العملية التي تريد حقنها منسوخة من عملية أخرى ببيئة نظيفة.

كيف يعمل

  • إرسال إشارة الإيقاف إلى العملية المستهدفة. (اختياري)

  • تحديد موقع الرمز _dl_open().

  • الحصول على RIP و RSP عبر /proc/[pid]/syscall.

  • عمل نسخة احتياطية لجزء من المكدس، والكود الذي سنقوم باستبداله بـ shellcode، عن طريق القراءة من /proc/[pid]/mem.

  • توليد مخازن shellcode الأولية والثانوية.

  • إدراج shellcode الأولي عند RIP، عن طريق الكتابة إلى /proc/[pid]/mem.

  • shellcode الأولي:

    • يدفع المسجلات الشائعة إلى المكدس.
    • يحمّل shellcode الثانوي عبر mmap().
    • يقفز إلى shellcode الثانوي.
  • shellcode الثانوي:

    • يستعيد المكدس وكود البرنامج إلى حالتهما الأصلية.
    • يحوّر المكدس (حتى لا نلمس المكدس الأصلي أبداً).
    • يستدعي _dl_open() لتحميل المكتبة التي يحددها المستخدم. سيتم تنفيذ أي منشئات عند التحميل، كالمعتاد.
    • يستعيد حالة المسجلات، ويعكس تحوير المكدس، ويقفز عائداً إلى حيث كان في وقت إشارة SIGSTOP الأصلية.

القيود:

  • إرسال SIGSTOP قد يسبب آثاراً جانبية غير مرغوب فيها، مثلاً لو كان هناك خيط آخر ينتظر waitpid(). خيار --stopmethod=cgroup_freeze يتجنب ذلك، لكنه يتطلب صلاحيات الجذر (على معظم التوزيعات على الأقل).

  • لست متأكداً تماماً كيف سيتفاعل هذا مع التطبيقات المعقدة متعددة الخيوط. هناك بالتأكيد احتمالية للتعطل.

  • يعمل فقط على لينكس x86-64 (في الوقت الحالي - يمكن إضافة دعم 32 بت مستقبلاً).

  • يتطلب صلاحيات الجذر، أو إعدادات YAMA المخففة (echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope مفيد أثناء الاختبار).

  • إذا كانت العملية المستهدفة محصورة (مثل مرشحات seccomp)، فقد لا يكون لديها إذن لاستخدام mmap() لـ shellcode الثانوي، أو لاستخدام dlopen() للمكتبة.

تنزيل الأداة