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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
MaldevAcademyLdr.2 — تنفيذ RunPE مع تقنيات تهرب متعددة (2) | Kitploit
أدوات/GitHubGitHub/maldev-academy/maldevacademyldr.2
التهرب من IDS/IPSما بعد الاستغلالإخفاء المعلوماتالتشفيرالفريق الأحمرتطوير الحمولات
GitHubmaldev-academy/maldevacademyldr.2

MaldevAcademyLdr.2

تنفيذ RunPE مع تقنيات تهرب متعددة (2)

عرض المستودع
28639منذ 10 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

MaldevAcademyLdr.2: تطبيق RunPE مع تقنيات مراوغة متعددة


روابط سريعة

الرئيسية - Maldev Academy

المنهج الدراسي - Maldev Academy

الأسعار - Maldev Academy



[!NOTE] على الرغم من إمكانية استخدام هذا المستودع لتنفيذ ملفات ثنائية أخرى، كان التركيز الكامل على تشغيل ملف mimikatz.exe التنفيذي. هذا لأغراض العرض والاختبار، حيث أن mimikatz.exe أداة معروفة جيدًا للاستغلال بعد الاختراق.


أبرز الميزات

  • إخفاء المعلومات: إخفاء حمولات PE داخل ملفات PNG/JPG/JPEG/BMP/GIF باستخدام تحويل المويجات المتقطع (DWT) مع تعديل مؤشر التكميم (QIM) ورموز تصحيح الأخطاء (ECC). ومن الجدير بالذكر أن خوارزمية تصحيح أخطاء ريد-سولومون المطبقة في محمل PE مبنية على SRI-CSL/jel.

  • استخدام GPU لتفادي ماسحات الذاكرة: باستخدام مكتبة D3d11، ينقل التنفيذ حمولة PE المُحقنة إلى ذاكرة GPU عندما تكون خاملة، مما يخفيها عن ماسحات الذاكرة.

  • انتحال مكدس الخيط: استنادًا إلى Cobalt-Strike/CallStackMasker، يبحث الكود عن مكدس خيط مناسب ويخفي الخيط الذي يشغّل حمولة PE كلما كانت الحمولة في ذاكرة GPU.

  • التلاعب باستدعاءات النظام (Syscalls): يُستخدم Maldev-Academy/TrapFlagForSyscalling لاستدعاء استدعاءات نظام معدّلة بالاعتماد على علم الفخ (Trap Flag).


ميزات/حيل أخرى

  • يتعامل مع DLLs الخاصة بـ API Set باستخدام ajkhoury/ApiSet.

  • يحمّل DLLs الخاصة بالحمولة المطلوبة بترتيب عشوائي للمساعدة ضد إشعارات تحميل الصور القائمة على التسلسل (إن وُجدت).

  • يستخدم AES-NI من Intel.AES-NI لتشفير أقسام حمولة PE قبل تفريغها إلى ذاكرة GPU، وفك تشفيرها بعد جلبها من هناك.

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

  • يلغي ربط DLLs المحملة من دليل \knownDlls\ دون استخدام صلاحيات ذاكرة RWX. لا يتم تنفيذ هذه التقنية افتراضيًا، حيث تمكنت بعض حلول EDR من اكتشاف هذا المنطق.

  • إذا لم يتم استخدام تقنية التلاعب باستدعاءات النظام المذكورة أعلاه، فسيستخدم التنفيذ HellsHall. إضافة إلى ذلك، في روتين إلغاء ربط DLL، يستخدم التنفيذ win32u.dll لتنفيذ تعليمة syscall، نظرًا لأن قسم النصوص في ntdll.dll سيكون RW، مما يمنعنا من القفز إلى تعليمة syscall هناك.

  • استبدال معالج VEH الخاص بـ EDR C والمستخدم للتعامل مع استثناءات STATUS_GUARD_PAGE_VIOLATION، حيث تبيّن أن هذا البائع يستخدم صلاحيات PAGE_GUARD لإطلاق الاستثناءات عند الوصول إلى مكتبات DLL مزيفة:



الاستخدام - RunPeFile

RunPeFile هو الملف الثنائي الرئيسي الذي سينفّذ ملف EXE المقدم من ملفات PNG المخزنة في قسم الموارد الخاص به. بعض الملاحظات عند تجميع RunPeFile:

  • باستخدام ملف الرأس Configuration.h، يمكن إضافة الميزات وإزالتها.
  • قم بتعريف ماكرو _DEBUG لتفعيل وضع التصحيح. أو قم بالتجميع في وضع Debug.
  • في المستودع، سيقوم تنفيذ RunPeFile الحالي بتشغيل mimikatz.exe.
  • ينبغي استخدام سكربت FileConstructor.py لتحديث الحمولة التي يوفرها RunPeFile.

الاستخدام - FileConstructor.py

سكربت FileConstructor.py هو السكربت الرئيسي المستخدم لتوليد ملفات PNG تحتوي على حمولة EXE المشفرة بتقنية DWT. توضع ملفات PNG هذه في دليل EncodedPngs، حيث يدمجها مشروع RunPeFile المحدّث في قسم الموارد للملف الثنائي المترجم. يتم تقسيم كل ملف EXE إلى عدة أجزاء، مع تضمين كل جزء في صورة PNG خاصة به. ونتيجة لذلك، سترى عدة ملفات PNG تعرض جميعها الصورة نفسها. هذا التقسيم ضروري لأن طريقة إخفاء المعلومات (القائمة على DWT مع تصحيح أخطاء ريد-سولومون) عادةً لا يمكنها احتواء حمولة EXE كاملة في صورة واحدة (اعتمادًا على حجم/بكسل PNG، وكذلك حجم الحمولة). يعتمد هذا السكربت على الثابت NUM_SPLIT_PARTS لتحديد عدد الأجزاء التي سيتم تقسيم ملف EXE المدخل إليها.

يتولى FileConstructor.py معالجة ملفات مشروع Visual Studio الخاصة بـ RunPeFile، بالإضافة إلى منطق التقسيم. ويستدعي سكربت DwtStegPeFileToPng.py للقيام بعملية تضمين الحمولة الفعلية.

أمثلة على استدعاء FileConstructor.py:

root@kitploit:~
# Adds the embedded PNG(s) to the 'RunPeFile\RunPeFile.vcxproj' project by dafault:
python.exe .\FileConstructor.py --pe mimikatz.exe --png memes\cat.png                              

# Adds the embedded PNG(s) to the 'XYZ\XYZ.vcxproj' project:
python.exe .\FileConstructor.py --pe mimikatz.exe --png memes\cat.png --project XYZ\XYZ.vcxproj   

الاستخدام - DwtStegPeFileToPng.py

سكربت DwtStegPeFileToPng.py هو السكربت الرئيسي الذي يتولى تنفيذ خوارزمية DWT لتشفير ملف معين داخل ملف PNG محدد. وهو سكربت مستقل ويمكن استخدامه في سيناريوهات أخرى، لكنه في هذا المستودع يُستدعى عبر سكربت FileConstructor.py فقط. فيما يلي طريقة استدعاء DwtStegPeFileToPng.py:

root@kitploit:~
usage: DwtStegPeFileToPng.py [-h] (--encode | --decode) --png PNG --output OUTPUT [--file FILE] [-v]

DWT-based steganography tool for hiding files in PNG images

options:
  -h, --help       show this help message and exit
  --encode         Encode/embed a file
  --decode         Decode/extract a file
  --png PNG        PNG image file
  --output OUTPUT  Output file path
  --file FILE      File to embed (required for --encode)
  -v, --verbose    Verbose output

الاستخدام - ExtractPePayloadFromPng

مشروع ExtractPePayloadFromPng هو أداة مستقلة لاستخراج الحمولات من ملفات PNG. يمكنه التعامل مع الصور المفردة، أو عند إعطائه PNG يحتوي على الجزء الأول من ملف PE مقسّم، فإنه سيعيد بناء الحمولة الكاملة عبر جميع ملفات PNG ذات الصلة. على سبيل المثال، استدعاء ExtractPePayloadFromPng.exe بهذه الطريقة:

root@kitploit:~
.\ExtractPePayloadFromPng.exe --i ..\..\EncodedPngs\mimikatz_part01.png --o mimikatz.exe

سيقوم بسحب ملف mimikatz.exe الثنائي الكامل من ملفات PNG الموجودة تحت دليل EncodedPngs.


القيود

  • تقنية انتحال المكدس المنفذة اختُبرت على Windows 11 فقط.
  • لنقل أقسام حمولة PE ذهابًا وإيابًا من وإلى ذاكرة GPU، يجب أن يتوفر لديك GPU يدعم Direct3D-11 (منفصل أو مدمج)، وبرنامج تشغيل WDDM 1.1+، وتثبيت وقت تشغيل DirectX 11.
  • يتم دعم حمولات PE ذات بنية x64 فقط.

عرض توضيحي

[!NOTE] تطلبت بعض حلول EDR تعديلات إضافية على الكود لتحقيق تجاوز ناجح. تم تمكين أو تعطيل بعض الميزات اعتمادًا على بائع الأمان الذي تمت مواجهته.


MaldevAcademyLdr.2 ضد EDR A

تجاوز MDE

MaldevAcademyLdr.2 ضد EDR B

تجاوز S1

MaldevAcademyLdr.2 ضد EDR C

تجاوز ELASTIC

MaldevAcademyLdr.2 ضد PESIEVE

تجاوز Pesieve الإصدار 0.4.1.1 باستخدام الأمر التالي:

root@kitploit:~
.\pe-sieve64.exe /data 4 /refl /iat 3 /obfusc 3 /shellc 4 /threads /pid XXXX

https://github.com/user-attachments/assets/47f5c3b9-e3c3-4be9-a063-2f3998071a57


تنزيل الأداة
صورة
  • تمت إعادة هيكلة الكود من mannyfreddy في وحدة مقدمة إلى التلاعب بمعالجات الفيكتور.

  • جلب حمولات قسم الموارد يدويًا، مع تجنب واجهات برمجة تطبيقات مثل FindResourceW وLoadResource.