Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
ExecuteAssembly — تحميل/حقن تجميعات .NET عن طريق؛ إعادة استخدام مدير مجال التطبيق CLR المحمّل بعملية المضيف (spawnto)، تجاوز رؤوس DOS (PE) لبرنامج التحميل/تجميعة .NET، إلغاء ربط الوحدات المرتبطة بـ .NET، تجاوز ETW+AMSI، تجنب خطافات EDR عبر استدعاءات NT الثابتة (x64) وإخفاء الواردات عن طريق حل APIs ديناميكيًا (باستخدام التجزئة). | Kitploit
أدوات/GitHubGitHub/med0x2e/executeassembly
تصعيد الامتيازاتآليات الاستمراريةالاستغلالالتهرب من IDS/IPSالحركة الجانبيةشيل كودما بعد الاستغلالالقيادة والسيطرةالفريق الأحمرتوليد شيفرة القشرةتطوير الحمولات
59711327منذ 5 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

حول

تحميل/حقن تجميعات .NET عن طريق؛ إعادة استخدام مدير مجال التطبيق CLR المحمّل بعملية المضيف (spawnto)، تجاوز رؤوس DOS (PE) لبرنامج التحميل/تجميعة .NET، إلغاء ربط الوحدات المرتبطة بـ .NET، تجاوز ETW+AMSI، تجنب خطافات EDR عبر استدعاءات NT الثابتة (x64) وإخفاء الواردات عن طريق حل APIs ديناميكيًا (باستخدام التجزئة).

GitHub
med0x2e/executeassembly

ExecuteAssembly

عرض المستودع
مشاركة

الوصف:

ExecuteAssembly هو بديل لـ CS execute-assembly، مبني بلغة C/C++ ويمكن استخدامه لتحميل/حقن تجميعات .NET عن طريق: إعادة استخدام وحدات CLR المحملة / AppDomainManager في العملية المضيفة (spawnto)، دهس رؤوس محمل/تجميع .NET DOS، فصل وحدات .NET ذات الصلة، تجاوز ETW+AMSI، تجنب ربطات EDR عبر استدعاءات النظام الثابتة (x64) وإخفاء الواردات عبر تحليل واجهات برمجة التطبيقات ديناميكيًا باستخدام خوارزمية التجزئة superfasthash.

TLDR (الميزات):

  • فصل وحدات CLR ذات الصلة من هياكل بيانات PEB. (استخدم أداة "ListDLLs" من MS بدلاً من PH للتأكيد)
  • دهس رؤوس تجميع .NET و DLL الانعكاسي (بايتات MZ، e_lfanew، رأس DOS، Rich Text، رأس PE).
  • استخدام استدعاءات نظام ثابتة مشفرة لتجاوز ربطات EDR. (دعم x64 فقط حاليًا، من WinXP إلى Win10 19042)
  • تعداد وإعادة استخدام CLR "AppDomain/AppDomainManager" (ICLRMetaHost->EnumerateLoadedRuntimes)، فقط قم بتعيين العملية المضيفة/spawnto إلى عملية .NET معروفة في Windows.
  • تحليل ديناميكي لواجهات برمجة التطبيقات WIN32 (PEB) باستخدام التجزئة المقابلة لواجهات API (SuperFastHash).
  • تصحيح AMSI و ETW قبل تحميل تجميعات .NET.
  • تحليل وحجم بايتات تجميع .NET وفحص إصدار CLR للتحميل/الاستخدام.
  • لا استخدام لوظائف GetProcAddress/LoadLibrary/GetModuleHandle لتجاوز ETW.
  • استضافة CLR باستخدام COM API v4 وحقن DLL الانعكاسي

الاستخدام:

  • x64 (استدعاءات النظام): هذا الإصدار يعتمد بشكل أساسي على استخدام استدعاءات النظام الثابتة لتجاوز ربطات EDR، يمكنك استخدام هذا الإصدار لبناء إصدار x64 من DLL فقط (دعم x64 فقط حاليًا).

  • x86|x64 (PEB): يسترجع عناوين API المطلوبة ديناميكيًا في وقت التشغيل عن طريق السير في جداول EAP لوحدات PEB وتحليل واجهات API عبر تجزئة superfasthash. ومع ذلك، لا يأخذ في الاعتبار ربطات EDR الموضوعة إما على kernel32.dll أو ntdll.dll، يمكنك استخدام هذا الإصدار لبناء كل من DLLs x86 و x64 أو فقط DLL x86 واستخدام إصدار x64 (استدعاءات النظام) لبناء DLL x64 لحساب ربطات EDR الشائعة.

  • قم ببناء DLLs المطلوبة باستخدام VS2017 و/أو Windows SDK 10.0.17134.0 (أو إصدارات SDK المتوافقة).

  • تأكد من تثبيت gzip وأن القطع الأثرية التالية موجودة في نفس المجلد ثم قم فقط بتحميل سكريبت aggressor "ExecuteAssembly.cna":

    • ExecuteAssembly.cna

    • ExecuteAssembly-x64.dll

    • ExecuteAssembly-x86.dll

    • خيارات CLI:

      --dotnetassembly: تجميع .NET للتحميل/الحقن.

      --assemblyargs: وسائط تجميع .NET.

      --unlink-modules: فصل وحدات .NET ذات الصلة مثل CLR/MsCoree DLLs من هياكل بيانات PEB.

      --stomp-headers: دهس رؤوس تجميع .NET و DLL الانعكاسي PE.

      --etw: تجاوز تتبع الأحداث في Windows (ETW).

      --amsi: تجاوز AMSI.

      --spawnto: اختر عملية spawnto، قائمة بثنائيات .NET التي تحمل CLR افتراضيًا عند التنفيذ:
            - PresentationHost.exe
            - stordiag.exe
            - ScriptRunner.exe
            - caitstatic.exe
            - Microsoft.Uev.SyncController.exe
            - TsWpfWrp.exe
            - UevAgentPolicyGenerator.exe
            - UevAppMonitor.exe
            - FileHistory.exe
            - UevTemplateBaselineGenerator.exe
            - UevTemplateConfigItemGenerator.exe

  • تحقق من spawnto-list.txt للحصول على ثنائيات MS إضافية تحمل CLR افتراضيًا وهي مرشحة جيدة لتعيينها كـ spawnto. (ستتجنب LOLBins المعروفة إلا إذا كان جهاز مطور ربما)

أمثلة:

  • ExecuteAssembly --dotnetassembly /tmp/Seatbelt.exe --assemblyargs LogonSessions --unlink-modules --stomp-headers --amsi --etw --spawnto PresentationHost.exe

  • ExecuteAssembly --amsi --etw --unlink-modules --stomp-headers --dotnetassembly /tmp/ghostpack/SharPersist.exe --assemblyargs -t reg -c "C:\Windows\SysWow64\mshta.exe C:\Users\admin\Downloads\Test2.hta" -k logonscript -m add --spawnto FileHistory.exe

  • ExecuteAssembly --unlink-modules --stomp-headers --dotnetassembly /tmp/ghostpack/SharPersist.exe --assemblyargs -t reg -k "logonscript" -v "C:\Windows\SysWow64\mshta.exe C:\Users\admin\Downloads\Test.hta" -m remove --spawnto FileHistory.exe

  • ExecuteAssembly --unlink-modules --amsi --dotnetassembly /tmp/ghostpack/SharpWMI.exe --assemblyargs action=query computername=localhost query="select * from win32_service" --spawnto FileHistory.exe

  • ExecuteAssembly --amsi --etw --dotnetassembly /tmp/ghostpack/SharpWMI.exe --assemblyargs action=query query="select * from win32_process" --spawnto PresentationHost.exe

دعم C2:

تم إنشاؤها واختبارها بشكل أساسي على Cobalt Strike، ومع ذلك يمكن استخدامها مع أطر C2 أخرى أيضًا (MSF .. إلخ)، فقط ضع في اعتبارك أن DLLMAIN الخاص بـ DLL الانعكاسي يتوقع الحمولة المكونة من سطر واحد كمعامل (lpReserved) بالتنسيق التالي (بدون "؛"):

  • AMSI_FLAG|ETW_FLAG|STOMPHEADERS_FLAG|UNLINKMODULES_FLAG|LL_FLAG.LENGTH_FLAG.B64_ENCODED_COMPRESSED_PAYLOAD [وسائط مفصولة بمسافة]
    • AMSI_FLAG: 0|1 (إما 0 أو 1)
    • ETW_FLAG: 0|1
    • STOMPHEADERS_FLAG: 0|1
    • UNLINKMODULES_FLAG: 0|1
    • LENGTH_FLAG: حجم تجميع .NET بالبايت
    • LL_FLAG: طول (LENGTH_FLAG) (فقط تحمل معي هنا أو تظاهر أنك لم تقرأ هذا)
    • B64_ENCODED_COMPRESSED_PAYLOAD: تجميع .NET مضغوط بـ Gzip ومشفر بـ Base64.
    • [وسائط مفصولة بمسافة]: وسائط تجميع .NET

ملاحظات الاختبار:

  • تم اختباره مع Cobalt Strike 4.x باستخدام لا يوجد ملفات تعريف malleable.
  • تم اختباره مع Cobalt Strike 4.x باستخدام ملف malleable التالي (خيارات متعددة لتجنب الذاكرة مضبوطة (userwx، startrwx .. إلخ));
    • https://github.com/threatexpress/malleable-c2/blob/master/jquery-c2.4.0.profile

المهام المستقبلية:

  • بديل لـ RFLL، BOF + الأنابيب المسماة قد يكون (لست متأكدًا من المهام طويلة المدة)
  • دعم x86 لاستدعاءات النظام الثابتة.
  • إصلاح الأخطاء وتنظيف أي مؤشرات معلقة أو تسربات ذاكرة فاتتني :p

المشكلات المعروفة:

  • دعم SharpHound v2 و v3 (v2 كان يعمل بشكل جيد، أحتاج إلى معرفة ما تغير).
  • قيود حجم تجميع .NET (أقل من 1 ميجابايت)

الاعتمادات/المراجع:

  • https://github.com/stephenfewer/ReflectiveDLLInjection
  • https://github.com/jthuraisamy/SysWhispers
  • https://github.com/etormadiv/HostingCLR
  • https://github.com/outflanknl/TamperETW/
  • https://github.com/LloydLabs/Windows-API-Hashing
  • http://www.rohitab.com/discuss/topic/42077-module-pebldr-hiding-all-4-methods-x64/
  • https://gist.github.com/christophetd/37141ba273b447ff885c323c0a7aff93
تنزيل الأداة