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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
MSRMapper — مخطط يدوي لبرنامج تشغيل النواة لنظام Windows x64 يستغل CVE-2025-8061 في LnvMSRIO.sys الخاص بشركة Lenovo لتنفيذ هجوم BYOVD، مع تعيين برامج تشغيل PE64 في الحلقة 0. | Kitploit
أدوات/GitHubGitHub/ull0a/msrmapper
تصعيد الامتيازاتتحليل الذاكرة الجنائيالاستغلالالهندسة العكسيةشيل كودما بعد الاستغلالالفريق الأحمرتطوير الحمولاتاستغلال الملفات الثنائية
GitHubull0a/msrmapper

MSRMapper

مخطط يدوي لبرنامج تشغيل النواة لنظام Windows x64 يستغل CVE-2025-8061 في LnvMSRIO.sys الخاص بشركة Lenovo لتنفيذ هجوم BYOVD، مع تعيين برامج تشغيل PE64 في الحلقة 0.

1منذ 8س 20دلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

MSRMapper

BYOVD Manual Mapper for Windows x64 · CVE-2025-8061


MSRMapper running

نظرة عامة

MSRMapper هو أداة تعيين يدوي لبرامج تشغيل النواة (kernel driver mapper) لنظام Windows x64 تستغل CVE-2025-8061 في برنامج التشغيل Lenovo الضعيف LnvMSRIO.sys لتنفيذ هجوم BYOVD (Bring Your Own Vulnerable Driver).

يقوم المشروع بتعيين برنامج تشغيل PE64 مباشرة في ذاكرة النواة دون استخدام sc create أو خدمة، وينفذ DriverEntry الخاص به في الحلقة 0 (ring 0). تعتمد العملية بأكملها على:

  • قراءة/كتابة MSR والذاكرة الفيزيائية من خلال LnvMSRIO.sys.
  • استخراج رموز النواة (kernel symbol resolution) عبر ملفات PDB باستخدام DbgHelp.
  • ترجمة VA → PA من خلال فئة SuperfetchPfnQuery في NtQuerySystemInformation.
  • اختطاف مؤقت لـ LSTAR لتنفيذ شيفرة شل (shellcode) في الحلقة 0.
  • اعتراض مؤقت لـ NtAddAtom لاستدعاء دوال النواة مثل ExAllocatePoolWithTag و RtlCopyMemory و DriverEntry.

الحالة: تم الاختبار على Windows 10 22H2 (OS Build 19045.6466). يتم تعيين برنامج التشغيل بنجاح ويُرجع DriverEntry القيمة STATUS_SUCCESS (0x0).


الميزات

  • تعيين يدوي لـ PE64 في النواة باستخدام ExAllocatePoolWithTag.
  • استخراج رموز النواة (KiSystemCall64، NtAddAtom، إلخ) عن طريق تنزيل ملفات PDB من Microsoft Symbol Server.
  • ترجمة VA → PA باستخدام Superfetch (فئة NtQuerySystemInformation 0x4F)، دون الحاجة إلى متتبع جداول صفحات مخصص.
  • قراءة/كتابة MSR (LSTAR، FMASK) والذاكرة الفيزيائية من خلال LnvMSRIO.sys.
  • شيفرة شل (shellcode) مُولَّدة ديناميكيًا تقوم بـ:
    • استعادة LSTAR الأصلي.
    • استدعاء MmGetPhysicalAddress للحصول على PA الخاص بـ NtAddAtom.
    • إعادة التحكم إلى وضع المستخدم عبر swapgs; sysret.
  • اعتراض مؤقت لـ NtAddAtom (12 بايت ) لاستدعاء دوال نواة عشوائية.

كيف يعمل

1. التهيئة

  • يفتح \\.\WinMsrDev (الخدمة التي يوفرها LnvMSRIO.sys).
  • يحصل على قاعدة ntoskrnl عبر EnumDeviceDrivers ويتحقق منها باستخدام LSTAR.
  • يهيئ PdbResolver لاستخراج RVAs لرموز النواة.

2. الحصول على PA الخاص بـ NtAddAtom

  • يبني شيفرة شل (shellcode) ستعمل في الحلقة 0 عند اختطاف LSTAR.
  • يكتب gadget swapgs; iretq في LSTAR.
  • يجهز المكدس (stack) باستخدام PrepareStack ويمكّن AC=1 في وضع المستخدم عبر EnableACUserMode.
  • عند syscall، يقفز المعالج إلى gadget، ويشغل شيفرة الشل، ويستدعي MmGetPhysicalAddress(NtAddAtom)، ويخزن PA في مخزن مؤقت للمستخدم.
  • تستعيد شيفرة الشل LSTAR وتعود إلى وضع المستخدم باستخدام swapgs; sysret.

3. تعيين برنامج التشغيل

  • يخصص pool غير قابل للترحيل (non-paged pool) باستخدام ExAllocatePoolWithTag (يُستدعى عبر اعتراض NtAddAtom المؤقت).
  • ينسخ صورة PE إلى الـ pool باستخدام RtlCopyMemory.
  • يطبق عمليات إعادة التموضع (relocations)، ويستخرج الواردات (imports)، ويصلح ملف تعريف الارتباط الأمني (security cookie).
  • يستدعي DriverEntry مع DriverObject = NULL و RegistryPath = NULL.

4. التنظيف

  • يستعيد البايتات الأصلية لـ NtAddAtom.
  • يستعيد MSRs الأصلية.
  • يغلق مقبض برنامج التشغيل الضعيف.

المتطلبات

  • Windows 10/11 x64 (تم الاختبار على 22H2).
  • Visual Studio 2022 مع:
    • Desktop development with C++.
    • MASM (Microsoft Macro Assembler) لبناء ملفات .asm.
  • Windows SDK و WDK (إذا كنت بحاجة لبناء برنامج التشغيل الحمولة).
  • LnvMSRIO.sys الضعيف (CVE-2025-8061) مثبتًا وخدمة WinMsrDev قيد التشغيل.
  • صلاحيات Administrator.
  • اتصال بالإنترنت في المرة الأولى لتنزيل ملفات PDB من Microsoft، أو ذاكرة تخزين مؤقت محلية في C:\Symbols.
  • CMake 3.20 أو أحدث.

البناء

يستخدم هذا المشروع CMake. للبناء من سطر الأوامر:

  1. أنشئ حل Visual Studio 2022:

    root@kitploit:~
    cmake -B build -G "Visual Studio 17 2022" -A x64
    
  2. ابنِ في وضع Release:

    root@kitploit:~
    cmake --build build --config Release
    

ستكون الملفات التنفيذية الناتجة في build/bin/Release/ (أو مسار مشابه حسب إعدادات CMake).

بدلاً من ذلك، يمكنك فتح build/KernelLoader.sln الناتج في Visual Studio 2022 والبناء من هناك.

تأكد من تجميع ShellcodeAsm.asm و EnableAC.asm باستخدام MASM. يتولى CMakeLists.txt المرفق ذلك تلقائيًا.

إذا كنت بحاجة لتعديل إعدادات البناء، فحرر CMakeLists.txt.

الاستخدام

  1. ثبّت وابدأ خدمة LnvMSRIO.sys:

    root@kitploit:~
    sc create WinMsrDev type= kernel binPath= C:\path\to\LnvMSRIO.sys
    sc start WinMsrDev
    
  2. شغّل KernelLoader.exe كمسؤول (Administrator):

    root@kitploit:~
    KernelLoader.exe
    
  3. لرؤية مخرجات DbgPrint لبرنامج التشغيل المعيَّن، استخدم DebugView (من Sysinternals) كمسؤول مع:

    • Capture → Capture Kernel
    • Options → Enable Verbose Kernel Output
    • إذا لزم الأمر، اضبط الفلتر في:
      root@kitploit:~
      HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Debug Print Filter
      
      بإنشاء DWORD باسم Default بقيمة .

ملاحظات

  • رسالة DBGHELP: ... - unmatched التي تظهر في بعض سجلات PdbResolver هي شكلية. يتم تحميل PDB على قاعدة افتراضية مصطنعة ولا يزال SymFromName يعمل بشكل صحيح. لا تؤثر على استخراج الرموز.
  • على Windows 11 24H2، قد يُرجع EnumDeviceDrivers قاعدة غير صحيحة. يحسب هذا المشروع القاعدة الحقيقية باستخدام LSTAR - KiSystemCall64.
  • اعتراض NtAddAtom مؤقت ويُستعاد بعد كل استدعاء. ومع ذلك، استخدم هذا فقط في بيئات محكومة.
  • تفترض شيفرة الشل أن SMEP/SMAP ممكّنة. يتم تعطيلها مؤقتًا عبر CR4 واستعادتها قبل العودة إلى وضع المستخدم.
تنزيل الأداة
jmp rax
  • استعادة تلقائية للاعتراض و MSRs الأصلية.
  • دعم Windows 11 24H2، حيث قد يُرجع EnumDeviceDrivers قاعدة غير صحيحة؛ يتم حساب قاعدة النواة الحقيقية باستخدام LSTAR - KiSystemCall64.
  • 0xFFFFFFFF