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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
KDStab — BOF مزيج من KillDefender و Backstab | Kitploit
أدوات/GitHubGitHub/octoberfest7/kdstab
أدوات دفاعيةتصعيد الامتيازاتأطر الاستغلالما بعد الاستغلالالفريق الأحمرتطوير الحمولات
GitHuboctoberfest7/kdstab

KDStab

BOF مزيج من KillDefender و Backstab

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

الأكثر شعبية

عرض الكل →

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

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

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

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

KDStab

28/6/2022: أصدرت مايكروسوفت تحديثًا يمنع فتح مقبض (handle) لرمز MsMpEng.exe، وبناءً عليه لم يعد جزء KillDefender من هذه الأداة يعمل. لا يزال Backstab يعمل. لست متأكدًا من معرف التحديث، قد يعمل على الأنظمة القديمة غير المحدثة. تم التحقق على Win10 21H2 و Win11.

هذا تطبيق مدمج لملف Beacon Object File من Backstab الخاص بـ Yaxser و KillDefender الخاص بـ pwn1sher للاستخدام مع Cobalt Strike.

image

مقدمة

KDStab هي أداة استغلال بعد الاختراق (post-exploitation) لهزيمة Windows Defender (نظريًا يمكن أن تعمل مع حلول أخرى أيضًا ولكن لم يتم اختبارها) بحيث يمكن استخدام أدوات أخرى بعد الاختراق دون خوف كبير من الاكتشاف. تستخدم الأداة Backstab و KillDefender لتحقيق ذلك، ويتم استدعاؤهما عند الحاسبة بواسطة أمر kdstab الخاص بـ Cobalt Strike.

تم اختبار KDStab بنجاح على Windows 10 x64 و Windows 11 و Server 2019.

يتطلب KDStab وصولًا على مستوى المسؤول (Administrator) أو النظام (System).

الوظائف الأساسية:

  1. تعداد سلامة (integrity) عملية معينة
  2. تجريد عملية من صلاحياتها وتعيين سلامتها إلى "غير موثوق" (Untrusted)
  3. قتل عملية محمية بـ PPL
  4. سرد المقابض (handles) لعملية محمية بـ PPL
  5. إغلاق مقبض معين لعملية محمية بـ PPL

أمثلة

التحقق من مستوى سلامة عملية

image

تجريد عملية من صلاحياتها وتعيين رمزها (token) إلى غير موثوق

image

نتيجة الأمر /STRIP

image

قتل عملية محمية بـ PPL

image

خلفية

صادفت KillDefender الخاص بـ pwn1sher بعد إصداره بفترة قصيرة واعتقدت أنه رائع؛ بالإضافة إلى جعل MsMpEng.exe (Defender) عديم الفائدة، فإنه يترك العملية قيد التشغيل وهو أمر مرغوب من وجهة نظر OPSEC (بالإضافة إلى أن السلوك الافتراضي لخدمة WinDefend هو إعادة تشغيل MsMpEng.exe عند الفشل – وهو أمر سيكون مفيدًا لاحقًا).

بينما تعمية Defender رائعة أثناء المهمة، إلا أننا كمحترفين مسؤولون عن إعادة أصول العميل إلى الحالة التي وجدناها عليها؛ بالإضافة إلى أننا لا نريد ترك أنظمتهم معرضة لمهاجمين آخرين لأننا قتلنا Defender.

المشكلة هي أنه من الصعب "استعادة" MsMpEng.exe إلى حالتها العاملة. يعمل KillDefender عن طريق تجريد العملية المستهدفة من صلاحياتها (مثل SeDebugPrivilege) وتعيين سلامة رمزها إلى غير موثوق. لا يمكن ببساطة "إعادة تصعيد" الرمز إلى System واستعادة الصلاحيات، بل يجب قتل العملية وبدء مثيل جديد. بالطبع MsMpEng.exe هي أيضًا عملية من نوع PsProtectedSignerAntimalware-Light، لذا حتى كمستخدم System لا يمكننا إنهاء العملية ببساطة. ومن المحبط أنه تم مؤخرًا إزالة مجموعة TrustedInstaller من MsMpEng.exe (يمكنك العثور على بعض الأبحاث الأخرى حول هذا) مما جعل تلك التقنية لقتل عملية MsMpEng.exe (أو خدمة WinDefend) التي كانت مستخدمة لسنوات غير فعالة. في ضوء ذلك، يبدو الخيار الوحيد القابل للتطبيق هو إعادة تشغيل الجهاز مما قد يسبب مشاكل للعميل إذا كنا نتحدث عن خوادم وخوادم تحكم (DC).

مسلحًا بهذه المشكلة، بدأت بالبحث وسرعان ما وجدت Backstab الخاص بـ Yaxser. يمكن لـ Backstab قتل العمليات المحمية بـ PPL من خلال الاستفادة من برنامج تشغيل (driver) ProcExp؛ وهو برنامج تشغيل موقع من Microsoft من Sysinternals يعمل لصالحنا. يقوم Backstab ببعض الإجراءات غير الآمنة من وجهة نظر OPSEC؛ فهو يسقط البرنامج التشغيل على القرص وينشئ مفاتيح التسجيل (reg keys). ومع ذلك، إذا كان Defender أعمى بالفعل... :).

شرعت في نقل كلتا الأداتين إلى تنسيق BOF بحيث يمكن استخدامهما من خلال Cobalt Strike Beacon دون الحاجة إلى إسقاطهما على القرص (كان الملف الثنائي الأصلي لـ Backstab محظورًا أثناء التشغيل بواسطة Defender).

أنا جديد في C/C++ وكذلك في كتابة BOFs وقد تعلمت الكثير خلال العملية. ستجد بعض التناقضات في الكود (مثل كيفية كتابة Backstab_bof وتجميعه على Linux باستخدام gcc و KillDefender_bof مكتوبة ومجمعة في Visual Studio) بسبب تعلمي أثناء الإنشاء، لكنني أجريت قدرًا لا بأس به من الاختبارات لضمان الوظائف، كما بنيت العديد من القضبان في سكربت aggressor لضمان الاستخدام السليم والإدخال المناسب إلى BOFs. آمل أن تجد هذه الأداة مفيدة.

التغييرات والملاحظات البرمجية:

تم إجراء بعض التغييرات الملحوظة على الكود المصدري للأدوات واتخذت بعض الخيارات البرمجية التي سيتم ذكرها هنا:

  1. لم يعد برنامج تشغيل ProcExp يُخزن/يُحمّل كمورد، بل هو مصفوفة بايتات ثابتة في backstab_src/resource.c
  2. كانت هناك عدة تسريبات للذاكرة في كود Backstab الأصلي وجدتها وحلّلتها
  3. يفشل POC KillDefender عندما لا يكون المستخدم System؛ أضفت مقتطفًا لتعداد المستخدم الجاري والحصول على النظام من خلال انتحال رمز Winlogon إذا لزم الأمر.
  4. تم تعديل KillDefender للسماح للمستخدمين بتحديد أي عملية استهداف؛ بالإضافة إلى ذلك تمت إضافة وضع "Check" لتعداد مستوى سلامة عملية (والذي يمكن تأكيد نجاح تجريد العملية من صلاحياتها وسلامتها).
  5. يستخدم Backstab عددًا كافيًا من واجهات API واستدعاءات C المختلفة التي لم يتمكن Cobalt Strike من إدارة حل جميع تحليلات الوظائف الديناميكية – trustedsec للإنقاذ! قمت بتنفيذ تحليل الوظائف الديناميكي الخاص بهم لتكملة تحليل CS بحيث يمكن استدعاء جميع API اللازمة.
  6. يحتوي Backstab الأصلي على عدة عبارات switch/case تسببت في مشاكل أثناء النقل، لذا تم استبدالها بعبارات if/else. بالإضافة إلى ذلك تم التخلص من جميع المتغيرات العالمية تقريبًا لأسباب مماثلة.
  7. أعلم أنه من الغريب أن أداة واحدة كتبت لـ Visual Studio والأخرى لـ GCC؛ هذا نتيجة لصعوبتي في نقل هذه الأدوات بنجاح ومعاناتي الكبيرة في الطريق. من المأمول أن تستفيد الأدوات المستقبلية من العديد من الدروس التي تعلمتها هنا.
  8. كلا من KillDefender_bof و Backstab_bof موجودان كمستودعات مستقلة. لاحظ أن الكود يختلف بين المستودعات المستقلة وهذه الأداة. تم ذلك لجعلها أكثر مرونة وقادرة على التكامل في حزمة واحدة.

للتجميع:

لم أحاول تجميع أي من الأداتين لـ x86؛ إذا كنت بحاجة حقًا إلى إصدار من هذا لذلك، سأترك الأمر لك لتجده.

لتجميع Backstab_bof باستخدام gcc:

root@kitploit:~
x86_64-w64-mingw32-gcc -o backstab.x64.o -Os -c main.c -DBOF -D_UNICODE

تأكد من تحديث mingw الخاص بك إلى أحدث إصدار! واجهت مشاكل حيث كان إصدار الملفات الرأسية قديمًا، لكن أحدث إصدار يحتوي على ملفات رأسية صحيحة.

لتجميع KillDefender_bof باستخدام سطر الأوامر الأصلي x64:

root@kitploit:~
cl.exe /c /GS- /TP killdefender_bof.cpp /FoKillDefender.x64.o

الإسناد (Credits)

  1. Yaxser وأداة Backstab الخاصة به: https://github.com/Yaxser/Backstab
  2. pwn1sher وأداة KillDefender الخاصة به: https://github.com/pwn1sher/KillDefender
  3. Trustedsec لمستودع CS-Situational-Awareness-BOF الخاص به والذي كان مساعدة كبيرة أثناء عملية النقل. استخدمت مقتطفات من كوده في هذا المشروع وأوصي بشدة أي شخص بدأ في كتابة BOFs بالاطلاع على المستودع: https://github.com/trustedsec/CS-Situational-Awareness-BOF
تنزيل الأداة