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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
KslDump — KslDump — لماذا تحضر سكينك الخاص بينما ديفندر قد ترك واحدة في المطبخ؟ | Kitploit
أدوات/GitHubGitHub/andreisss/ksldump
تصعيد الامتيازاتتحليل الثغرات الأمنيةالاستغلالاختبار الاختراقالفريق الأحمراستغلال الملفات الثنائية
GitHubandreisss/ksldump

KslDump

KslDump — لماذا تحضر سكينك الخاص بينما ديفندر قد ترك واحدة في المطبخ؟

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

الأكثر شعبية

عرض الكل →

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

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

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

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

KslDump - BMVD (إحضار برنامج تشغيل مايكروسوفت الضعيف)

GitHub stars GitHub forks GitHub downloads Sponsor License: GPL v3

سياق مهم

أبلغت عن المشكلة لشركة مايكروسوفت في 7 مارس 2026. ومع ذلك، قبل حوالي 20 يوماً، كان مجتمع اختراق الألعاب قد قام بالفعل بعكس هندسة الكود ومناقشته علناً. من جانبي، لا أتابع مشاريعهم ولم أكن على علم بأي من هذا. ومن الواضح أيضاً أن هذين مشروعين منفصلين تماماً وغير مرتبطين.

المراجع

  • مقالة مدونة Avantguard

لماذا تحضر سكينك الخاصة بينما قد ترك Defender بالفعل واحدة في المطبخ؟

يقوم KslDump باستخراج بيانات الاعتماد من LSASS المحمي بـ PPL باستخدام مكونات موقعة من مايكروسوفت فقط. لا يتم نشر أي استغلال. لا يتم تحميل أي برنامج تشغيل. سلسلة الهجوم بأكملها تأتي مثبتة مسبقاً مع Windows Defender. قامت مايكروسوفت بتصحيح الإصدار الجاري (wd\KslD.sys) عن طريق إفراغ MmCopyMemory، لكنها تركت الإصدار القديم الضعيف (drivers\KslD.sys) موجوداً على القرص. المهاجم لا يحضر أي شيء -他只是 يشير الخدمة مرة أخرى إلى ما نسيته مايكروسوفت تنظيفه.

صورة

https://github.com/user-attachments/assets/78dfce25-56b3-4eb8-9de2-7c183601e597


الثغرة

KslD.sys هو برنامج تشغيل kernel يتم شحنه مع Microsoft Defender. إنه موقّع من مايكروسوفت، ويتم تحميله كوحدة kernel موثوقة، ويعرض كائن جهاز \\.\KslD يمكن الوصول إليه من وضع المستخدم.

يقبل برنامج التشغيل IOCTL 0x222044 مع أوامر فرعية متعددة توفر وصولاً غير مقيد إلى ذاكرة kernel والذاكرة الفعلية لأي عملية يمكنها فتح مقبض الجهاز.

الأوامر الفرعية الضعيفة

SubCmdالإمكانيةالتأثير
2إرجاع CR3 و IDTR وسجلات تحكم CPU أخرى إلى وضع المستخدمتجاوز فوري لـ KASLR
12استدعاء MmCopyMemory() بعنوان وحجم يتحكم فيهما المهاجمقراءة عشوائية لذاكرة kernel/الذاكرة الفعلية

"التحكم في الوصول"

البوابة الوحيدة لمقبض الجهاز هي سلسلة اسم العملية المخزنة في مفتاح سجل (AllowedProcessName) ضمن مفتاح خدمة برنامج التشغيل. هذه القيمة:

  • قابلة للتعديل من قبل أي مسؤول محلي
  • غير محمية بواسطة حماية العبث في Defender
  • غير موثقة مقابل توقيع الكود أو السلامة أو أي خاصية ثنائية
  • مقارنة سلسلة بسيطة — أعد تسمية ملفك الثنائي وستدخل

الفرق هو سطر واحد في CCommand::Initialize:

root@kitploit:~
// الإصدار 82 كيلوبايت (مصحح) — يمسح المؤشر عمداً:
v3 = MmGetSystemRoutineAddress(L"MmCopyMemory");
if (v3 >= 0) {
    *(a1 + 24) = 0;        // ← يجعله NULL — الأمر الفرعي 12 ميت
}

// الإصدار 333 كيلوبايت (ضعيف) — يخزن المؤشر:
ptr = MmGetSystemRoutineAddress(L"MmCopyMemory");
if (ptr) {
    *(this + 0x18) = ptr;   // ← يحتفظ به — الأمر الفرعي 12 يعمل
}

تظهر تحديثات منصة Defender أنها تقوم بإسقاط الإصدار المصحح بحجم 82 كيلوبايت في drivers\wd\ وتشير ImagePath إليه، بينما يبقى الإصدار الأقدم بحجم 333 كيلوبايت في drivers\. على الأنظمة المختبرة، لم يتم حذف الثنائي القديم أبداً. يقوم الاستغلال ببساطة بتبديل ImagePath مرة أخرى إلى الإصدار الضعيف وإعادة تشغيل الخدمة. كلا الثنائيين موقعان من مايكروسوفت وموثوقان من قبل نظام التشغيل.


لماذا لا يزال برنامج التشغيل القديم موجوداً على القرص - نظرية شخصية

يظهر التوثيق العام لمايكروسوفت أن KB4052623 يوفر تحديثات منصة Defender، بما في ذلك نقل تاريخي لبرامج تشغيل Defender إلى System32\drivers\wd، بينما تحتفظ خدمة Windows بصيغ مخزنة لمكونات WinSxS عبر الروابط الصلبة NTFS، ولا يتم إزالة إصدارات المكونات السابقة إلا أثناء التنظيف. على النظام المختبر، يفسر هذا سبب وصول KslD.sys الأحدث بحجم 82 كيلوبايت عبر مسار تحديث منصة Defender بينما بقي KslD.sys الأقدم بحجم 333 كيلوبايت في System32\drivers\ كنتسخة مخزنة حالية مدعومة من CBS إلى أن تم استبدالها بإصدار CBS أحدث.


مفارقة قائمة الحظر

تحتفظ مايكروسوفت بـ قائمة حظر برامج التشغيل الضعيفة (DriverSiPolicy.p7b) خصيصاً لمنع هجمات BYOVD. يتم تطبيق قائمة الحظر هذه عبر HVCI وتمنع تحميل برامج التشغيل الضعيفة الموقعة المعروفة.

من توثيق مايكروسوفت الخاص:

"تم تصميم قائمة حظر برامج التشغيل الضعيفة للمساعدة في تعزيز الأنظمة ضد برامج التشغيل غير المطورة من مايكروسوفت عبر نظام Windows البيئي"

برامج تشغيل مايكروسوفت الخاصة مستبعدة من قائمة الحظر حسب التصميم.


لماذا يعمل هذا

السبب الجذري بسيط: MmCopyMemory لا يحترم PPL.

تم تصميم PPL (عملية محمية خفيفة) لمنع سرقة بيانات الاعتماد عن طريق حظر استدعاءات OpenProcess و ReadProcessMemory ضد LSASS. لكن PPL يحمي فقط مسار واجهة برمجة تطبيقات وضع المستخدم. ليس لديه سلطة على قراءات ذاكرة kernel الفعلية.

يمنح KslD.sys كود وضع المستخدم مساراً مباشراً إلى MmCopyMemory() — واجهة برمجة تطبيقات kernel الخاصة بمايكروسوفت لنسخ الذاكرة حسب العنوان الفعلي أو الافتراضي. يقوم برنامج التشغيل بما يلي:

  • لا يوجد التحقق من نطاق العنوان — يتم قبول أي عنوان فعلي
  • لا يوجد تطبيق لحد الحجم — اقرأ بقدر ما تريد
  • لا يوجد التحقق من المتصل بخلاف فحص سلسلة سجل يمكن للمسؤول تعديله

النتيجة: برنامج تشغيل موقع من مايكروسوفت يوفر تجاوزاً كاملاً لـ PPL مباشرة.


الأولية للقراءة

جوهر الثغرة هو الأمر الفرعي 12 — غلاف غير مقيد لـ MmCopyMemory():

root@kitploit:~
IOCTL:    0x222044
Input:    struct {
            DWORD  SubCmd;       // 12
            DWORD  Reserved;     // 0
            QWORD  Address;      // الهدف VA أو PA
            QWORD  Size;         // البايتات المراد قراءتها
            DWORD  Flags;        // 1 = فعلي، 2 = افتراضي
            DWORD  Padding;
          }
Output:   محتويات الذاكرة الخام (حتى Size بايت)

القراءة الفعلية (Flags = 1) هي الأولية الحاسمة. الوصول إلى الذاكرة الفعلية لا يخضع لمستويات حماية العملية، أو علامات EPROCESS، أو أي قيود لواجهة برمجة تطبيقات وضع المستخدم، وهذا هو ما يتجاوز PPL.

القراءة الافتراضية (Flags = 2) تقرأ عناوين kernel الافتراضية مباشرة، مفيدة لتجوال هياكل kernel (EPROCESS، صادرات ntoskrnl) دون ترجمة يدوية لجدول الصفحات.



سلسلة الهجوم

root@kitploit:~
┌──────────────────────────────────────────────────────────────────┐
│                        KslDump Attack Flow                       │
├──────────────────────────────────────────────────────────────────┤
│                                                                  │
│  1. Registry Edit         ImagePath ← vulnerable 333KB KslD.sys *│
│          │                AllowedProcessName ← our process       │
│          │                sc stop/start KslD                     │
│          ▼                                                       │
│  2. KASLR Bypass          SubCmd 2 → CR3 + IDTR                  │
│          │                IDT → lowest ISR → ntoskrnl base       │
│          ▼                                                       │
│  3. Kernel Walk           PsInitialSystemProcess → SYSTEM EPROC  │
│          │                ActiveProcessLinks → find lsass.exe    │
│          │                Read lsass DTB from EPROCESS+0x28      │
│          ▼                      (all via SubCmd 12, flags=2)     │
│                                                                  │
│  4. Physical Read         Page table walk using lsass DTB        │
│          │                MmCopyMemory() reads lsass pages       │
│          │                      *** BYPASSES PPL ***             │
│          ▼                      (SubCmd 12, flags=1)             │
│                                                                  │
│  5. Key Extraction        Find lsasrv.dll via PEB → LDR         │
│          │                Scan .text for LSA key signatures      │
│          │                Follow BCRYPT chain → AES + 3DES + IV  │
│          ▼                                                       │
│  6. Credential Dump       Walk LogonSessionList                  │
│                           Decrypt MSV1_0 credentials             │
│                           → NT hashes                            │
│                                                                  │
└──────────────────────────────────────────────────────────────────┘

المتطلبات

  • صلاحيات مسؤول محلي
  • Python 3.x مع حزمة cryptography (pip install cryptography)
  • يجب أن يكون الملف الضعيف KslD.sys بحجم 333 كيلوبايت موجوداً على القرص (الافتراضي: C:\Windows\System32\drivers\KslD.sys)

المفارقة — ملخص

الهجوم لا يتطلب برامج تشغيل من طرف ثالث، ولا كود غير موقع، ولا استغلالات. كل شيء موقع من مايكروسوفت، شُحن من مايكروسوفت، وموجود بالفعل على النظام. برنامج التشغيل الضعيف موجود على القرص بجانب التصحيح الخاص به، مستبعد من قائمة الحظر المصممة لمنع هذا النوع من الهجمات تحديداً.


الإفصاح المسؤول

تم الإبلاغ عن هذه الثغرة إلى مركز استجابة أمن مايكروسوفت (MSRC). أغلقتها على أنها "ليست ثغرة" مع المبرر التالي:

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

لم يتم تعيين CVE. لم يتم إصدار إصلاح.


إخلاء مسؤولية

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

تنزيل الأداة