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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
EXCELntDonut — مولد ماكرو (XLM) Excel 4.0 لحقن ملفات DLL و EXE في الذاكرة. | Kitploit
أدوات/GitHubGitHub/redsiege/excelntdonut
أدوات التصيدتوليد الحمولةالاستغلالشيل كودالتصيد الاحتياليالفريق الأحمرتوليد شيفرة القشرة
GitHubredsiege/excelntdonut

EXCELntDonut

مولد ماكرو (XLM) Excel 4.0 لحقن ملفات DLL و EXE في الذاكرة.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

| \ / / | | | _ __ | || _ \ ___ _ __ _ | | | | \ / | | | | | | ' | | | | |/ _ | ' | | | | | | | / \ || || |__| | | | || || | () | | | | || | | |_____//__|||| ||_|____/ _/|| ||_,|__| by @JoeLeonJr (@FortyNorthSec)

EXCELntDonut هو مولد ماكرو XLM (Excel 4.0). ابدأ بكود مصدر C# (EXE) وانتهِ بماكرو XLM (Excel 4.0) سينفذ كودك في الذاكرة. يمكن حفظ ماكرو XLM (Excel 4.0) في ملفات .XLS.

التثبيت

chmod +x install.sh
./install.sh

ماذا يتم تثبيته؟

  • pip3
  • mono-complete (كل من mcs وجميع المكتبات الممكنة التي قد تشير إليها في ملفات المصدر)
  • EXCELntDonut كأداة CLI

إذا كنت ترغب في تشغيل EXCELntDonut كسكريبت بايثون فقط، فستحتاج إلى إعداد بيئة افتراضية تحتوي على حزمتين "pandas" و "donut-shellcode". بالإضافة إلى ذلك، ستحتاج إلى تثبيت mono-complete من خلال apt-get واستدعاء سكريبت drive.py باستخدام python3. نوصي باستخدام سكريبت ./install.sh bash فقط، لكن الأمر لك.

الاستخدام

Usage:
	$ EXCELntDonut -f exe_source.cs -r System.Windows.Forms.dll --sandbox --obfuscate

Flags:
	(required)
	-f path to file containing your C# soure code (exe only)

	-r References needed to compile your C# code (same ones for when using mcs to compile on Linux)
	(ex: -r 'System.Management')

	(optional)
	-o output filename
	--sandbox 
		Perform basic sandbox checks. This will be updated as new approaches are discovered.
	--obfuscate 
		Perform basic macro obfuscation. 

كيف يعمل

تقوم بتقديم ملف C# يحتوي على حمولتك (مثل EXE مع طريقة رئيسية تنفذ حمولة منارة Cobalt Strike). يتم تجميع ملف C# هذا باستخدام MCS إلى تجميعين .NET: x86 و x64. بعد التجميع، تقوم الأدوات الرائعة Donut (لـ x86) و CLRvoyance (لـ x64) بتحويل كل تجميع إلى شيفرة مستقلة عن الموقع (shellcode). بعد ذلك، يتم إزالة جميع النول بايتات، لأن ماكرو XLM (Excel 4.0) لا يتعامل بشكل جيد مع النول بايتات ويتم تجزئة الحمولة إلى أسطر لا تحتوي على أكثر من 255 حرفًا (لـ x86) أو 10 أحرف (لـ x64).

بمجرد تحضير الشيفرة، يتم دمجها مع وظائف حقن العملية الأساسية (VirtualAlloc و WriteProcessMemory و CreateThread) بالإضافة إلى وظيفة فحص البنية لتحديد أي حمولة (x86 أو x64) سيتم تشغيلها على النظام الهدف. إذا اخترت تنفيذ فحوصات الصندوق الرملي أو التعتيم الأساسي، فستقوم تلك الوظائف بتحديث الماكرو الخاص بك. أخيرًا، يتم وضع المخرجات في ملف CSV (محفوظ كـ .txt).

كيفية إنشاء ماكرو XLM (Excel 4.0)

بمجرد الحصول على ملف المخرجات من EXCELntDonut، افتح ملف المخرجات في محرر نصوص وانسخه بالكامل (Ctrl-A, Ctrl-C). افتح Excel على جهاز Windows VM، وانقر بزر الماوس الأيمن على "Sheet 1" واختر "Insert". اختر "MS Excel 4.0 Macro". انتقل إلى الخلية A1 والصق مخرجات EXCELntDonut. من المحتمل أن يتم لصق جميع البيانات في عمود واحد. البيانات مفصولة بفاصلة منقوطة ";". انتقل إلى علامة التبويب "Data" ثم انقر على "Text-to-columns". اختر "Delimited" وفي الشاشة التالية اختر "Semicolon" ثم انقر على "Finish". سينتشر الماكرو عبر الأعمدة والصفوف المناسبة.

(ملاحظة - إذا اخترت العلم "--obfuscate"، فستحتاج إلى التمرير أفقيًا كثيرًا للعثور على الكود الفعلي، لأن جزءًا من منطق التعتيم ينقل الماكرو إلى قسم عشوائي من ورقة العمل).

نوصي بأمرين في هذه المرحلة:

  1. ابحث عن الخلية البادئة (ستكون الخلية العلوية اليسرى من كود الماكرو الخاص بك، على الأرجح A1). انقر بزر الماوس الأيمن واختر "Run". اختبر الماكرو الخاص بك للتأكد من أنه يعمل.
  2. بمجرد التحقق من أن الماكرو يعمل، حدد نفس الخلية العلوية اليسرى مرة أخرى. على الجانب الأيسر من الشاشة، يجب أن يكون هناك قائمة منسدلة تقول الخلية التي أنت فيها (على الأرجح "A1"). انقر في القائمة المنسدلة وقم بتغيير القيمة النصية إلى "Auto_open". سينتج عن ذلك نفس وظيفة التنفيذ التلقائي التي اعتدت عليها في ماكرو VBA.

احفظ الملف (.xls) وحاول فتحه. يجب أن ينفذ حمولتك تلقائيًا.

فحوصات الصندوق الرملي

تعتمد هذه الفحوصات على ما يستخدمه المهاجمون الفعليون في برامجهم الضارة.

  1. هل يوجد فأرة نشطة؟
  2. هل حجم الشاشة أكبر من 770 عرضًا و 381 ارتفاعًا؟
  3. هل يمكن للمضيف تشغيل الأصوات؟
  4. هل هذا جهاز Windows؟

التعتيم

  1. بالنسبة لتعليمات حقن العملية (VirtualAlloc و WriteProcessMemory و CreateThread) وفحوصات الصندوق الرملي، ستتحول جميع وظائف الماكرو إلى الهيكل التالي:
=FORMULA(D3&D23&D54&D23&D44,E45)

تسمح لنا وظيفة FORMULA بوضع صيغة، يمكن تنفيذها لاحقًا، في خلية أخرى. لذا في هذه الحالة، نضع تعليمات حقن العملية ثم نستخدم وظيفة FORMULA لوضع الوظيفة الفعلية في خلية أخرى ليتم تنفيذها. هذا يتجنب قيام المدافعين بإجراء تحليل ثابت ورؤية أشياء مثل "VirtualAlloc".

  1. سينتقل الماكرو بأكمله بقيمة ما إلى اليمين، بحيث عندما تفتح الورقة التي تحتوي على الماكرو لأول مرة، تظهر فارغة.

أشياء يجب معرفتها

  • تستخدم الحمولات الأقل تطورًا فقط الأمر =EXEC() لتنفيذ الأوامر. يستخدم البعض أيضًا URLMON لتنزيل الملفات. تتضمن ملفات أخرى حتى كلمة "SHELL". كل هذا بدا لنا فكرة سيئة. لا تتضمن هذه الأداة أيًا من ذلك. بدلاً من ذلك، تقوم بحقن كود C# الخاص بك في عملية Excel (إما 32 بت أو 64 بت) ثم تنفذه. من هناك، الأمر متروك لحمولتك فيما تفعله بعد ذلك.

نصائح

  • يمكن لكود C# الخاص بك أن يفعل أي شيء تريده. نوصي بأن يقوم كود المصدر الخاص بك بكسر علاقة الأصل > التابع بين Excel وأي شيء تنتجه.
  • هناك الكثير من المقالات الجيدة حول أوراق Excel "المخفية جدًا". فكر في استخدام ذلك.
  • لا تنسَ جعل ملف Excel الخاص بك يبدو حقيقيًا.

استكشاف الأخطاء وإصلاحها

"The type or namspace name ... does not exist ... "
root@excelntdonut-test:/opt# EXCELntDonut -f test.cs
 _______  ______ _____ _           _   ____                    _   
| ____\ \/ / ___| ____| |    _ __ | |_|  _ \  ___  _ __  _   _| |_ 
|  _|  \  / |   |  _| | |   | '_ \| __| | | |/ _ \| '_ \| | | | __|
| |___ /  \ |___| |___| |___| | | | |_| |_| | (_) | | | | |_| | |_ 
|_____/_/\_\____|_____|_____|_| |_|\__|____/ \___/|_| |_|\__,_|\__|
                    by @JoeLeonJr (@FortyNorthSec)                
[i] Generating your x86 .NET assembly.
warning CS8001: SDK path could not be resolved
test.cs(2,14): error CS0234: The type or namespace name `Management' does not exist in the namespace `System'. Are you missing an assembly reference?

هذا الخطأ يعني على الأرجح أنك تفتقد إلى تجميع مرجعي أثناء التجميع باستخدام mono. لإصلاح ذلك، ما عليك سوى تمرير مساحة الاسم المذكورة في العلم -r. في هذه الحالة، سنضيف -r 'System.Management' إلى سطر الأوامر. سيكون الأمر الجديد:

root@excelntdonut-test:/opt# EXCELntDonut -f test.cs -r 'System.Management'

"Metadata file ... could not be found"
root@excelntdonut-test:/opt# EXCELntDonut -f test.cs -r System.Management
 _______  ______ _____ _           _   ____                    _   
| ____\ \/ / ___| ____| |    _ __ | |_|  _ \  ___  _ __  _   _| |_ 
|  _|  \  / |   |  _| | |   | '_ \| __| | | |/ _ \| '_ \| | | | __|
| |___ /  \ |___| |___| |___| | | | |_| |_| | (_) | | | | |_| | |_ 
|_____/_/\_\____|_____|_____|_| |_|\__|____/ \___/|_| |_|\__,_|\__|
                    by @JoeLeonJr (@FortyNorthSec)                
[i] Generating your x86 .NET assembly.
warning CS8001: SDK path could not be resolved
error CS0006: Metadata file `System.Management' could not be found

[x] Error in generating x86 .NET assembly using MCS. See error message above.

لا ينبغي أن يظهر هذا الخطأ إلا إذا قمت بتشغيل EXCELntDonut دون استخدام سكريبت install.sh bash. في هذه الحالة، ستحتاج إلى تثبيت mono-complete يدويًا. سيقوم ذلك بتنزيل التبعيات ذات الصلة. يمكنك تثبيته باستخدام apt كما يلي:

apt-get install mono-complete
"Program ... does not contain a static 'Main' method ..."
تنزيل الأداة