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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
ImpulsiveDLLHijack — أداة مبنية على لغة C# تقوم بأتمتة عملية اكتشاف واستغلال ثغرات DLL Hijack في الملفات الثنائية المستهدفة. يمكن لاحقًا تسليح المسارات المُخترَقة المكتشفة أثناء عمليات الفريق الأحمر لتجاوز أنظمة كشف التهديدات (EDR). | Kitploit
أدوات/GitHubGitHub/knight0x07/impulsivedllhijack
تصعيد الامتيازاتآليات الاستمراريةالاستغلالالفريق الأحمراستغلال الملفات الثنائية
GitHubknight0x07/impulsivedllhijack

ImpulsiveDLLHijack

أداة مبنية على لغة C# تقوم بأتمتة عملية اكتشاف واستغلال ثغرات DLL Hijack في الملفات الثنائية المستهدفة. يمكن لاحقًا تسليح المسارات المُخترَقة المكتشفة أثناء عمليات الفريق الأحمر لتجاوز أنظمة كشف التهديدات (EDR).

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

الأكثر شعبية

عرض الكل →

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

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

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

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

ImpulsiveDLLHijack

أداة مبنية بلغة C# تعمل على أتمتة عملية اكتشاف واستغلال اختطاف DLL في الملفات الثنائية المستهدفة. يمكن لاحقًا استخدام المسارات المختطفة المكتشفة أثناء عمليات الفريق الأحمر لتجاوز أنظمة كشف التهديدات (EDR).

1. المنهجية:

تقوم الأداة بشكل أساسي بأتمتة المراحل التالية التي يتم إجراؤها لاختطاف DLL:

  • الاكتشاف - العثور على مسارات اختطاف DLL المحتملة الضعف.
  • الاستغلال - التأكد من تحميل DLL التأكيدي من المسار المختطف، مما يؤدي إلى تأكيد اختطاف DLL قابل للاستغلال بنسبة 100%.

منهجية الاكتشاف:

  • تقديم مسار الملف الثنائي المستهدف إلى ImpulsiveDLLHijack.exe.
  • أتمتة ProcMon مع تشغيل الملف الثنائي المستهدف للعثور على مسارات اختطاف DLL المحتملة الضعف.

منهجية الاستغلال:

  • تحليل مسارات اختطاف DLL المحتملة الضعف من ملف CSV الذي تم إنشاؤه تلقائيًا عبر ProcMon.

  • نسخ DLL التأكيدي (وفقًا لبنية PE) إلى مسارات الاختطاف واحدًا تلو الآخر وتشغيل الملف الثنائي المستهدف لفترة زمنية محددة مسبقًا في نفس الوقت.

  • أثناء عملية اختطاف DLL، يمكن الحصول على المخرجات التالية من سيناريو الاختطاف:

    • إذا تم تحميل DLL التأكيدي الموجود في مسار الاختطاف المحتمل الضعف بواسطة الملف الثنائي المستهدف، نحصل على المخرجات التالية في وحدة التحكم التي تفيد بأن اختطاف DLL كان ناجحًا - DLL Hijack Successful -> DLLName: | <Target_binary_name>
    • إذا لم يتم تحميل DLL التأكيدي الموجود في مسار الاختطاف المحتمل الضعف بواسطة الملف الثنائي المستهدف، نحصل على المخرجات التالية في وحدة التحكم التي تفيد بأن اختطاف DLL لم يكن ناجحًا - DLL Hijack Unsuccessful -> <DLL_Path>

    سيناريوهات عدم العثور على نقطة الدخول:

    • إذا لم يتم تحميل DLL التأكيدي الموجود في مسار الاختطاف المحتمل الضعف بواسطة الملف الثنائي المستهدف لأن نقطة دخول DLL مختلفة عن نقطة الدخول الافتراضية "DllMain" مما يؤدي إلى ظهور خطأ "Entry Point Not Found"، نحصل على المخرجات التالية في وحدة التحكم التي تفيد بأن اختطاف DLL كان ممكنًا لو كانت نقطة الدخول صحيحة -> DLL Hijack Successful -> [Entry Point Not Found - Manual Analysis Required!]: <Hijack_path>
    • إذا تم تنفيذ DLL التأكيدي الموجود في مسار الاختطاف المحتمل الضعف بواسطة الملف الثنائي المستهدف حتى بعد أن كانت نقطة دخول DLL مختلفة عن نقطة الدخول الافتراضية "DllMain" مما يؤدي إلى ظهور خطأ "Entry Point Not Found"، نحصل على المخرجات التالية في وحدة التحكم التي تفيد بأن اختطاف DLL كان ناجحًا حتى بعد عدم صحة نقطة الدخول -> DLL Hijack Successful -> [Entry Point Not Found]: <Hijack_path>

ملاحظة: يتم التعامل مع خطأ "Entry Point Not Found" برمجيًا في الكود، ولا حاجة لإغلاق MsgBox يدويًا :) وإلا سيتعطل الكود لاحقًا****

  • بمجرد اكتمال عملية اختطاف DLL لكل مسار اختطاف محتمل الضعف، نحصل على المخرجات النهائية في وحدة التحكم وكذلك في ملف نصي (C:\DLLLogs\output_logs.txt) بالتنسيق التالي:

    • <DLLHijack_path> --> DLL Hijack Successful (إذا كان الاختطاف ناجحًا)
    • <DLLHijack_path> --> DLL Hijack Unsuccessful (إذا كان الاختطاف غير ناجح)
    • <DLLHijack_path> --> DLL Hijack Successful [Entry Point Not Found - Manual Analysis Required] (إذا لم يتم العثور على نقطة الدخول ولكن يمكن أن يكون ناجحًا بعد التحليل اليدوي)
    • <DLLHijack_path> --> DLL Hijack Successful [Entry Point Not Found] (إذا كان الاختطاف ناجحًا حتى بعد عدم العثور على نقطة الدخول)
    • <DLLHijack_path> --> Copy: Access to Path is Denied (تم رفض الوصول)

**يمكن لاحقًا تسليح مسارات اختطاف DLL المؤكدة هذه أثناء مهمة الفريق الأحمر لتحميل برنامج ضار DLL عبر ملف تنفيذي شرعي (مثل OneDrive، Firefox، MSEdge، "أحضر LOLBINs الخاص بك" إلخ) وتجاوز أنظمة EDR المتطورة، حيث تفشل معظمها في اكتشاف اختطاف DLL كما تم تقييمه من قبل George Karantzas و Constantinos Patsakis في بحثهما: https://arxiv.org/abs/2108.10422

2. المتطلبات الأساسية:

  • Procmon.exe -> https://docs.microsoft.com/en-us/sysinternals/downloads/procmon
  • DLL تأكيدية مخصصة:
    • هذه هي ملفات DLL التي تساعد الأداة في الحصول على تأكيد ما إذا تم تحميل DLL بنجاح من مسار الاختطاف المحدد.
    • يتم تجميعها من مشروع MalDLL المقدم أعلاه (أو استخدم الملفات الثنائية المجمعة مسبقًا إذا كنت تثق بي!).
    • يجب أن يكون اسم DLL 32Bit: maldll32.dll
    • يجب أن يكون اسم DLL 64Bit: maldll64.dll
    • تثبيت حزمة NuGet: PeNet -> https://www.nuget.org/packages/PeNet/ (شرط أساسي أثناء تجميع مشروع ImpulsiveDLLHijack)

ملاحظة: يجب وضع المتطلبات i و ii في نفس دليل ImpulsiveDLLHijacks.exe نفسه.

  • معلومات البناء والإعداد:

    • ImpulsiveDLLHijack

      • استنساخ المستودع في Visual Studio
      • بمجرد تحميل المشروع في Visual Studio، انتقل إلى "Project" --> "Manage NuGet packages" --> تصفح الحزم وقم بتثبيت "PeNet" -> https://www.nuget.org/packages/PeNet/
      • قم ببناء المشروع!
      • سيكون ImpulsiveDLLHijack.exe داخل دليل bin.
    • وبالنسبة لـ DLL التأكيدية:

      • استنساخ المستودع في Visual Studio
      • قم ببناء المشروع باستخدام x86 و x64
      • أعد تسمية إصدار x86 إلى maldll32.dll وإصدار x64 إلى maldll64.dll
    • الإعداد: انسخ DLL التأكيدية (maldll32 & maldll64) في دليل ImpulsiveDLLHijack.exe ثم قم بتشغيل ImpulsiveDLLHijack.exe :))

3. الاستخدام:

usage

4. أمثلة:

  • الملف التنفيذي المستهدف: OneDrive.exe

  • المرحلة: الاكتشاف

first

  • المرحلة: الاستغلال

    • اختطاف DLL ناجح:

    success_one

    • اختطاف DLL غير ناجح:

    unsuccessful

    • لم يتم تحميل DLL لأن نقطة الدخول غير متطابقة! قد يؤدي التحليل اليدوي إلى جعله اختطاف DLL ناجحًا :)

    entrypoint_not_found

    • اختطاف DLL ناجح حتى بعد عدم تطابق نقطة الدخول!

    entry_pointnot found - but dll is executed

  • المرحلة: النتائج والسجلات النهائية

    • C:\DLLLogs\output_logs.txt:

    output_logs

شكرًا لكم، سأكون ممتنًا لأي ملاحظات! - knight!

تنزيل الأداة