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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
MSRKit — مفهوم استخدام سلسلة ROP مقترنة ببدائية WRMSR لاستدعاء دوال النواة وتعيين برامج تشغيل غير موقّعة عبر BYOVD (AmdTools64.sys) | Kitploit
أدوات/GitHubGitHub/rurixis/msrkit
تصعيد الامتيازاتالاستغلالالهندسة العكسيةشيل كودما بعد الاستغلالالفريق الأحمرتطوير الحمولاتاستغلال الملفات الثنائية
GitHubrurixis/msrkit

MSRKit

مفهوم استخدام سلسلة ROP مقترنة ببدائية WRMSR لاستدعاء دوال النواة وتعيين برامج تشغيل غير موقّعة عبر BYOVD (AmdTools64.sys)

عرض المستودع
661186منذ 24 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

MSRKit

أداة لاستدعاء دوال النواة ولتحميل التعريفات عبر سلسلة ROP من خلال بدائية wrmsr في تعريف مصاب بالثغرات (AmdTools64.sys).

كيف تعمل

  1. تحمّل AmdTools64.sys عبر NtLoadDriver (تتراجع إلى PnP devnode + واجهة جهاز قائمة على GUID إذا كان الرابط الرمزي غير متاح)
  2. تقرأ IA32_LSTAR عبر IOCTL قراءة MSR الخاص بالتعريف (0xFFF02804)
  3. تفحص ntoskrnl.exe بحثًا عن أدوات ROP (pop rcx; ret، mov cr4, rcx; ret، wbinvd; ret، إلخ)
  4. تستبدل IA32_LSTAR بأداة الدخول، وتمسح AC في FMASK، وتصدر syscall
  5. تقوم سلسلة ROP بمسح بتات SMEP/SMAP في CR4، وتوزّع الدالة الهدف على مكدس النواة، وتستعيد CR4 وLSTAR، وتعود إلى وضع المستخدم عبر sysretq

يتبع تحميل التعريف المسار نفسه: تخصيص مجمّع النواة عبر ExAllocatePoolWithTag، ونسخ صورة PE المُعدّة (مع تطبيق إعادة المواقع، وحل الاستيرادات، وترقيع ملف تعريف الارتباط الأمني)، واستدعاء نقطة الدخول المُحمّلة.

الاستخدام

CLI

msrkit <driver.sys> call    <ExportName> [args...]
msrkit <driver.sys> call_at <address>    [args...]
msrkit <driver.sys> map     <unsigned.sys> [entry args...]
msrkit <driver.sys> unmap   <address>
  • call -- يحل ويستدعي تصديرًا مسمّى من ntoskrnl. تُحلّل الوسائط كأعداد صحيحة (ست عشرية مع بادئة 0x). يطبع القيمة المُرجعة.
  • call_at -- يستدعي عنوانًا افتراضيًا عشوائيًا في النواة.
  • map -- يحمّل تعريفًا غير موقّع إلى المجمّع غير المُصفّح ويستدعي نقطة دخوله (ExAllocatePoolWithTag). يطبع عنوان القاعدة المُحمّل.
  • unmap -- يحرّر تعريفًا مُحمّلًا سابقًا عند عنوان القاعدة المُعطى.

المكتبة

#include "msrkit.h"

#pragma comment(lib, "msrkit.lib")

int main()
{
	MSRK::INIT(L"AmdTools64.sys");

	void* mptr = MSRK::CALL("ExAllocatePool2", 0x40ULL, 0x1000, 'Ruri');
	std::cout << "Memory allocate: " << mptr << std::endl;

	auto mptr23 = MSRK::MAP("driver.sys", 123, 456);
	std::cout << "Driver mapped: " << std::hex << (uintptr_t)mptr23 << "\n";

	// raw call
	std::vector<uint64_t>args = { 0x40ULL, 1024, 'Tagz' };
	void* mptr24 = MSRK::M_FUNCTION::CALL("ExAllocatePool2", args.data(), args.size());
	std::cout << "raw memory alloc : " << mptr24 << std::endl;

	std::vector<uint64_t>args2 = { 123, 456 };
	auto mptr25 = MSRK::M_DRIVERMAP::MAP( "driver.sys", args2.data(), args2.size() );

	MSRK::UNMAP(mptr23);	
	MSRK::CLEANUP();
}

اختياريًا، مرّر مقبض تعريف موجود لتخطي التحميل:

MSRK::INIT("AmdTools64.sys", existing_handle);

البناء

يتطلب Visual Studio مع MSVC (v143+) وMASM (ml64.exe).

cmake -B build -G "Visual Studio 17 2022" -A x64
cmake --build build --config Release

المخرجات: build/Release/msrkit.exe (CLI) وmsrkit.lib (مكتبة ثابتة).

CFG معطّل (/guard:cf-). ملفات تعريف الارتباط للمكدس (/GS) مفعّلة.

الميزات

  • دعم كامل لجميع إصدارات Windows 10 و11
  • متوافق مع KPTI
  • لا دعم لـ HVCI (يجب تعطيل HVCI)
  • يدعم تعريفات PnP / غير PnP

القيود

  • تنفيذ أحادي النواة فقط -- يُثبّت الخيط على CPU 0 أثناء استدعاءات النواة
  • عمليات اختطاف LSTAR المتزامنة من عمليات منفصلة ستؤدي إلى BSOD (مستدعٍ واحد في كل مرة)
  • لا يمكن استدعاء stubs استدعاءات نظام Zw/Nt من سياق LSTAR (يعيد الدخول إلى KiSystemService)
تنزيل الأداة