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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
donut — يُولّد شيلكود مستقل عن الموقع (position-independent shellcode) من نوع x86 أو x64 أو AMD64+x86 يُحمّل تجميعات .NET وملفات PE وغيرها من تحميلات Windows من الذاكرة ويُشغّلها مع وسائط. | Kitploit
أدوات/GitHubGitHub/thewover/donut
تحليل الذاكرة الجنائيتوليد الحمولةالاستغلالالتهرب من IDS/IPSشيل كودما بعد الاستغلالاختبار الاختراقالفريق الأحمرتوليد شيفرة القشرةتطوير الحمولاتالأفضل في التهرب من IDS/IPS #7
4.7k75373منذ سنة واحدةتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
الأفضل في تطوير الحمولات #1
الأفضل في توليد الحمولة #2
الأفضل في شيل كود #1
الأفضل في توليد شيفرة القشرة #2
GitHubthewover/donut

donut

يُولّد شيلكود مستقل عن الموقع (position-independent shellcode) من نوع x86 أو x64 أو AMD64+x86 يُحمّل تجميعات .NET وملفات PE وغيرها من تحميلات Windows من الذاكرة ويُشغّلها مع وسائط.

عرض المستودع

Issues Contributors Stars Forks License Chat Github All Releases Twitter URL

نص بديل

الإصدار الحالي: v1.1

جدول المحتويات

  1. مقدمة
  2. كيف يعمل
  3. البناء
  4. الاستخدام
  5. المشاريع الفرعية
  6. التطوير باستخدام دونات
  7. الأسئلة والمناقشات
  8. إخلاء المسؤولية

1. مقدمة

دونات (Donut) هو كود مستقل عن الموقع يمكنه تنفيذ ملفات VBScript وJScript وEXE وDLL وتجميعات dotNET في الذاكرة. يمكن تحميل الوحدة التي أنشأها دونات إما من خادم HTTP أو تضمينها مباشرة داخل المُحمِّل نفسه. يتم تشفير الوحدة اختياريًا باستخدام تشفير الكتلة Chaskey ومفتاح 128 بت يتم إنشاؤه عشوائيًا. بعد تحميل الملف وتنفيذه في الذاكرة، يتم مسح المرجع الأصلي لردع ماسحات الذاكرة. يدعم المُولِّد والمُحمِّل الميزات التالية:

  • ضغط ملفات الإدخال باستخدام aPLib وLZNT1 وXpress وXpress Huffman عبر RtlCompressBuffer.
  • استخدام الإنتروبيا لهاشات API وتوليد السلاسل النصية.
  • تشفير متماثل 128 بت للملفات.
  • الكتابة فوق رؤوس PE الأصلية.
  • تخزين ملفات PE الأصلية في ذاكرة MEM_IMAGE.
  • تصحيح واجهة فحص البرامج الضارة (AMSI) وسياسة القفل في Windows (WLDP).
  • تصحيح تتبع الأحداث في Windows (ETW).
  • تصحيح سطر الأوامر لملفات EXE.
  • تصحيح واجهة برمجة التطبيقات المتعلقة بالخروج لتجنب إنهاء العملية المضيفة.
  • صيغ إخراج متعددة: C وRuby وPython وPowerShell وBase64 وC# وHexadecيمال وسلسلة UUID.

توجد مكتبات ديناميكية وثابتة لكل من Linux وWindows يمكن دمجها في مشاريعك الخاصة. يوجد أيضًا وحدة Python يمكنك قراءة المزيد عنها في بناء واستخدام إضافة Python.

2. كيف يعمل

يحتوي دونات على مُحمِّلين منفصلين لكل نوع ملف مدعوم. بالنسبة لتجميعات dotNET EXE/DLL، يستخدم دونات واجهة استضافة CLR غير المُدارة (Unmanaged CLR Hosting API) لتحميل بيئة التشغيل العامة (CLR). بمجرد تحميل CLR في العملية المضيفة، يتم إنشاء نطاق تطبيق جديد (Application Domain) للسماح بتشغيل التجميعات في نطاقات تطبيقات قابلة للتخلص. عندما يصبح نطاق التطبيق جاهزًا، يتم تحميل تجميع dotNET عبر طريقة AppDomain.Load_3. أخيرًا، يتم استدعاء نقطة الدخول لملفات EXE أو الطريقة العامة لملفات DLL التي يحددها المستخدم مع أي معلمات إضافية. راجع MSDN للتوثيق حول واجهات استضافة CLR غير المُدارة. للحصول على مثال مستقل لمضيف CLR، راجع الكود هنا.

يتم تنفيذ ملفات VBScript وJScript باستخدام واجهة IActiveScript. يوجد أيضًا دعم محدود لبعض الطرق التي يوفرها مضيف Windows Script Host (wscript/cscript). للحصول على مثال مستقل، راجع الكود هنا. للحصول على وصف أكثر تفصيلاً، اقرأ: تنفيذ JavaScript وVBScript وJScript وXSL في الذاكرة

يتم تنفيذ ملفات EXE/DLL غير المُدارة (الأصلية) باستخدام مُحمِّل PE مخصص يدعم الاستيرادات المتأخرة وTLS وتصحيح سطر الأوامر. يتم دعم فقط الملفات التي تحتوي على معلومات إعادة التوطين. اقرأ تنفيذ DLL في الذاكرة للمزيد من المعلومات.

يمكن للمُحمِّل تعطيل AMSI وWLDP للمساعدة في التهرب من اكتشاف الملفات الضارة التي يتم تنفيذها في الذاكرة. للمزيد من المعلومات، اقرأ كيف تتجاوز الفرق الحمراء AMSI وWLDP للكود الديناميكي لـ .NET. كما أنه يدعم فك ضغط الملفات في الذاكرة باستخدام aPLib أو واجهة برمجة التطبيقات RtlDecompressBuffer. اقرأ ضغط البيانات للمزيد من المعلومات.

اعتبارًا من الإصدار v1.0، تم تجاوز ETW أيضًا. مثل AMSI/WLDP، هذا نظام معياري يسمح لك باستبدال التجاوز الافتراضي بتجاوز خاص بك. التجاوز الافتراضي مستمد من بحث قام به XPN. اقرأ إخفاء .NET الخاص بك - ETW للمزيد من المعلومات.

افتراضيًا، سيقوم المُحمِّل بالكتابة فوق رؤوس PE لملفات PE غير المُدارة (من العنوان الأساسي إلى `IMAGE_OPTIONAL_HEADER.SizeOfHeaders`). إذا لم يتم استخدام وحدة خادعة (تحميل الوحدة الزائد)، فسيتم تصفير رؤوس PE. إذا تم استخدام وحدة خادعة، فسيتم استخدام رؤوس PE للوحدة الخادعة للكتابة فوق تلك الخاصة بوحدة الحمولة. وذلك لردع الكشف عن طريق مقارنة رؤوس PE للوحدات في الذاكرة مع الملف الداعم لها على القرص. يمكن للمستخدم أن يطلب الاحتفاظ بجميع رؤوس PE في حالتها الأصلية. هذا مفيد في السيناريوهات التي تحتاج فيها وحدة الحمولة إلى الوصول إلى رؤوس PE الخاصة بها، مثل عند البحث عن موارد PE المضمنة.

للحصول على جولة تفصيلية باستخدام المُولِّد وكيفية تأثير دونات على فنيات العمل، اقرأ دونات - حقن تجميعات .NET كشيل كود. للمزيد من المعلومات حول المُحمِّل، اقرأ تحميل تجميعات .NET من الذاكرة.

من يرغب في معرفة المزيد عن الدواخل الداخلية يجب أن يرجع إلى ملاحظات المطور.

3. البناء

هناك نوعان من البناء. إذا كنت ترغب في تصحيح أخطاء دونات، يرجى الرجوع إلى التوثيق هنا. إذا لم يكن الأمر كذلك، تابع القراءة للحصول على بناء الإصدار.

استنساخ

من موجه أوامر Windows أو محطة Linux، قم باستنساخ المستودع.

 
  git clone http://github.com/thewover/donut.git

الخطوة التالية تعتمد على نظام التشغيل الخاص بك والمترجم الذي تقرر استخدامه. حاليًا، يمكن تجميع قالب المُولِّد والمُحمِّل الخاص بدونات بنجاح باستخدام كل من Microsoft Visual Studio 2019 وMingGW-64. لاستخدام المكتبات في مشروع C/C++ الخاص بك، يرجى الرجوع إلى الأمثلة المقدمة هنا.

Windows

لإنشاء قالب المُحمِّل، المكتبة الديناميكية donut.dll، المكتبة الثابتة donut.lib والمُولِّد donut.exe. ابدأ موجه أوامر مطور x64 لـ Microsoft Visual Studio، انتقل إلى الدليل حيث استنسخت مستودع دونات وأدخل ما يلي:

  nmake -f Makefile.msvc

لفعل الشيء نفسه، ولكن باستخدام MinGW-64 على Windows أو Linux، انتقل إلى الدليل حيث استنسخت مستودع دونات وأدخل ما يلي:

  make -f Makefile.mingw
تنزيل الأداة