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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
mora-hwbp — محرك ربط (Hooking) في وضع المستخدم بدون تصحيح (Patch-less) يعتمد على نقاط توقف الأجهزة (DR0-DR7)، وأدوات قياس عن بُعد (Telemetry Instrumentation) — (إثبات مفهوم لـ AMSI وWLDP وETW). | Kitploit
أدوات/GitHubGitHub/dovughs/mora-hwbp
أدوات دفاعيةالتهرب من IDS/IPSمصممي الأخطاءالتعلم والتعليمالفريق الأحمرالهجوم العدائي
GitHubdovughs/mora-hwbp

mora-hwbp

محرك ربط (Hooking) في وضع المستخدم بدون تصحيح (Patch-less) يعتمد على نقاط توقف الأجهزة (DR0-DR7)، وأدوات قياس عن بُعد (Telemetry Instrumentation) — (إثبات مفهوم لـ AMSI وWLDP وETW).

عرض المستودع
191100منذ يوم واحدلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

Mora-HWBP — اعتراض القياسات التشخيصية لـ AMSI / WLDP / ETW عبر نقاط التوقف العتادية

إثبات مفهوم (POC) لأبحاث الأمن يُظهر اعتراض الدوال باستخدام نقاط التوقف العتادية (سجلات تصحيح المعالج) كبديل عن الترقيع التقليدي للشيفرة في الذاكرة.

الغرض والنطاق

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


جدول المحتويات

  1. نظرة عامة
  2. الخلفية — لماذا نقاط التوقف العتادية؟
  3. مكوّنات الأمان المستهدفة
  4. البنية
  5. تعمّق تقني
    • 5.1 نقاط التوقف العتادية على x64
    • 5.2 تخطيط سجلات التصحيح (DR0–DR7)
    • 5.3 معالج الاستثناءات الموجّه (VEH)
    • 5.4 منطق الاعتراض لكل مكوّن
    • 5.5 إدارة الخيوط واستمرارية الاعتراض
  6. واجهة API المصدَّرة
  7. تعليمات البناء
  8. مثال الحقن والاستخدام
  9. الكشف والتخفيف (الفريق الأزرق)
  10. القيود المعروفة
  11. المراجع

نظرة عامة

يُنفّذ mora_hwbp.c مكتبة DLL تعترض، بمجرد تحميلها/حقنها في عملية مستهدفة (مثل مضيف PowerShell)، أربع دوال في وضع المستخدم حصريًا عبر نقاط التوقف العتادية للمعالج المخزّنة في سجلات التصحيح المعمارية (DR0–DR7) لكل خيط في العملية:

السجلالدالة المعترَضةالوحدةالغرض
DR0AmsiScanBufferamsi.dllتعطيل فحص محتوى AMSI
DR1WldpQueryDynamicCodeTrustwldp.dllفرض ثقة WLDP بالشيفرة الديناميكية (Device Guard / WDAC)
DR2WldpIsClassInApprovedListwldp.dllفرض موافقة WLDP على الفئة (Device Guard / WDAC)
DR3NtTraceEventntdll.dllقطع تدفق ETW بأكمله في وضع المستخدم

يستقبل معالج الاستثناءات الموجّه (VEH) لكل عملية أخطاء EXCEPTION_SINGLE_STEP (0x80000004) التي ترفعها سجلات التصحيح، ويحاكي مسار العودة الناجح للدالة الأصلية عبر إعادة كتابة سياق الاستثناء، ثم يستأنف التنفيذ — كل ذلك دون تعديل بايت واحد من الذاكرة القابلة للتنفيذ.

وهذا يجعل التقنية مثيرة للاهتمام بشكل خاص من المنظورين الهجومي والدفاعي:

  • هجوميًا، تتجاوز فحوصات سلامة EDR/HIPS التي تبحث عن أقسام .text معدّلة (الاعتراض المضمّن الكلاسيكي، أو ترقيع EAT/IAT، أو تجميد Etwp*).
  • دفاعيًا، تترك نقاط التوقف العتادية آثارًا جنائية مميزة للغاية (محتويات سجلات التصحيح، كثافة استثناءات الخطوة الواحدة، تسجيل VEH، أنماط استدعاءات النظام GetThreadContext/SetThreadContext) يمكن استخدامها للكشف.

الخلفية — لماذا نقاط التوقف العتادية؟

تشترك أساليب الاعتراض التقليدية في وضع المستخدم — التحويلات المضمّنة (كتابة فوق 5–14 بايت)، واعتراض جدول عناوين الاستيراد (IAT)، واعتراض جدول عناوين التصدير (EAT) — في ضعف مشترك: فهي تعدّل ذاكرة يمكن لماسحات السلامة وETW ملاحظتها.

تُنفّذ منتجات AV/EDR الحديثة:

  • فحص الذاكرة / فحوصات AMSI لمخازن PowerShell و.NET CLR المؤقتة؛
  • القياس عن بُعد المعتمد على ETW (Microsoft-Windows-PowerShell، و.NET ETW، ومزوّدو استخبارات التهديدات)؛
  • استدعاءات الرجوع في وضع النواة وفحوصات السلامة في وضع المستخدم التي تكتشف حيل pageguard/guard-page، وانتقالات VirtualProtect إلى PAGE_EXECUTE_READWRITE، وعدم تطابق تجزئات المقاطع.

تتجاوز نقاط التوقف العتادية كل ذلك:

  1. فهي سجلات المعالج، وليست ذاكرة — لا يوجد شيء لفحصه في .text.
  2. تُضبط على أساس لكل خيط عبر واجهة Windows API ‏SetThreadContext، والتي لا تُطلق إشارات "تم تعديل الذاكرة" الكلاسيكية التي تستخدمها أدوات فحص السلامة.
  3. تُعالَج نقطة الاعتراض بالكامل بواسطة إرسال الاستثناءات في المعالج، والذي يمر عبر سلسلة VEH الخاصة بالعملية قبل تنفيذ أي دالة هدف في وضع المستخدم.

يستكشف هذا الإثبات العملي (POC) فعالية هذه التقنية وقابلية اكتشافها ضد AMSI (واجهة فحص البرامج الضارة)، وWLDP (سياسة تأمين Windows)، وETW (تتبع الأحداث لـ Windows) — وهي البدائيات الأمنية الثلاثة الأكثر اعتمادًا في وضع المستخدم ضمن حزمة الأمان الحديثة في Windows.


المكوّنات الأمنية المستهدفة

AMSI — واجهة فحص البرامج الضارة

AMSI هي نقطة التكامل في منصة Windows التي تتيح للتطبيقات (PowerShell، وOffice، وVBScript، ومضيفات .NET، وغيرها) طلب فحص المحتوى من مزوّدي مكافحة البرامج الضارة المسجّلين. نقطة الدخول الأساسية محل الاهتمام هي:

  • AmsiScanBuffer(HANDLE hamsiContext, PVOID buffer, ULONG length, LPCWSTR contentName, HANDLE hamsiSession, AMSI_RESULT *pResult)

بإجبار AMSI_RESULT المُعاد على القيمة AMSI_RESULT_CLEAN (0)، يعتقد محرك النصوص البرمجية أن المحتوى قد فُحص ووُجد غير ضار، فيستمر التنفيذ دون انقطاع.

WLDP — سياسة تأمين Windows

تطبّق WLDP تقييم السياسات الخاصة بـ Windows Defender Application Control ‏(WDAC / Device Guard). يعترض هذا الإثبات العملي نقطتي دخول في WLDP:

  • تُجيب WldpIsClassInApprovedList عمّا إذا كان صنف COM معيّن (محدَّد بمعرّف GUID) مسموحًا بموجب السياسة الحالية. تستشير AMSI داخليًا WLDP لتقرير ما إذا كانت أصناف نصوص برمجية/محتوى معيّنة "موثوقة" (ضمن القائمة المعتمدة). فإذا أبلغت الدالة أن الصنف معتمد، فقد تتخطى AMSI تدقيقًا إضافيًا لذلك النوع من المحتوى.
  • تُجيب WldpQueryDynamicCodeTrust عمّا إذا كانت قطعة معيّنة من الشيفرة المولّدة ديناميكيًا (مثل مخرجات .NET JIT أو ذاكرة قابلة للتنفيذ مولّدة بأي طريقة أخرى) موثوقة بموجب سياسة التأمين الحالية.

تضبط مكتبة DLL معامل الإخراج isApproved (‏RDX) في WldpIsClassInApprovedList على القيمة TRUE وتُعيد S_OK، وتُجبر WldpQueryDynamicCodeTrust على إعادة S_OK (0) — مما يجعل صنف المحتوى المُقيَّم والشيفرة الديناميكية المستعلَمة يبدوان موثوقين.

ETW — تتبع الأحداث لـ Windows

تُعدّ NtTraceEvent في ntdll.dll أدنى نقطة دخول في وضع المستخدم إلى النظام الفرعي ETW — فجميع إصدارات أحداث ETW تقريبًا تمر عبرها (بما في ذلك EtwEventWrite وواجهات Etw* الأعلى مستوى). وبالتالي فإن اعتراضها يقطع مجرى ETW بأكمله من وضع المستخدم، مع آثار جانبية واسعة ذات صلة بمراقبة الأمان:

  • أحداث تسجيل خط أنابيب PowerShell وكتل النصوص البرمجية
  • أحداث تحميل تجميعات .NET ‏(Microsoft-Windows-DotNETRuntime)
  • القياس عن بُعد لنتائج فحص AMSI
  • أحداث مزوّد استخبارات التهديدات التي تستهلكها وكلاء EDR

تُعيد مكتبة DLL ببساطة STATUS_SUCCESS (0) دون تنفيذ الدالة الحقيقية.


البنية

تنزيل الأداة