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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
RefleXXion — RefleXXion هي أداة مصممة للمساعدة في تجاوز خطافات وضع المستخدم التي تستخدمها برامج مكافحة الفيروسات (AV) وأنظمة حماية نقطة النهاية (EPP) وأدوات كشف الاستجابة (EDR) وغيرها. من أجل تجاوز خطافات وضع المستخدم، تقوم أولاً بجمع أرقام استدعاءات النظام الخاصة بـ NtOpenFile وNtCreateSection وNtOpenSection وNtMapViewOfSection الموجودة في مصفوفة LdrpThunkSignature. | Kitploit
أدوات/GitHubGitHub/hlldz/reflexxion
أدوات دفاعيةتصعيد الامتيازاتآليات الاستمراريةالتهرب من IDS/IPSما بعد الاستغلالالفريق الأحمرArchived
GitHubhlldz/reflexxion

RefleXXion

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

الأكثر شعبية

عرض الكل →

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

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

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

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

حول

RefleXXion هي أداة مصممة للمساعدة في تجاوز خطافات وضع المستخدم التي تستخدمها برامج مكافحة الفيروسات (AV) وأنظمة حماية نقطة النهاية (EPP) وأدوات كشف الاستجابة (EDR) وغيرها. من أجل تجاوز خطافات وضع المستخدم، تقوم أولاً بجمع أرقام استدعاءات النظام الخاصة بـ NtOpenFile وNtCreateSection وNtOpenSection وNtMapViewOfSection الموجودة في مصفوفة LdrpThunkSignature.

مشاركة

RefleXXion

مقدمة

RefleXXion هي أداة مصممة للمساعدة في تجاوز الخطافات (hooks) على مستوى المستخدم التي تستخدمها برامج مكافحة الفيروسات / منصات الحماية من نقاط النهاية / كشف والاستجابة على نقاط النهاية (AV/EPP/EDR) وغيرها. لتجاوز هذه الخطافات، تقوم الأداة أولاً بجمع أرقام استدعاءات النظام (syscall numbers) للدوال NtOpenFile و NtCreateSection و NtOpenSection و NtMapViewOfSection الموجودة في مصفوفة LdrpThunkSignature. بعد ذلك، هناك تقنيتان يمكن للمستخدم اختيار واحدة منهما لتجاوز الخطافات.

التقنية الأولى تقرأ NTDLL كملف من C:\Windows\System32\ntdll.dll. بعد التحليل، يتم استبدال مقطع .TEXT الخاص بـ NTDLL المحمل بالفعل في الذاكرة (حيث يتم تنفيذ الخطافات) بمقطع .TEXT الخاص بـ NTDLL النظيف.

في التقنية الثانية، تُقرأ NTDLL كـ Section من KnownDlls، \KnownDlls\ntdll.dll. (لأن ملفات DLL مخزنة مؤقتاً في KnownDlls كـ Section.) بعد التحليل، يتم استبدال مقطع .TEXT الخاص بـ NTDLL المحمل بالفعل في الذاكرة (حيث يتم تنفيذ الخطافات) بمقطع .TEXT الخاص بـ NTDLL النظيف.

التفصيل الدقيق للمنهجية وجميع التقنيات موضح أدناه.

سير عمل RefleXXion

كيف تستخدم

يمكنك فتح المشروع وتجميعه باستخدام Visual Studio. يدعم المشروع بأكمله بنية x64 لكل من وضعي Debug و Release.

يقوم حل RefleXXion-EXE بإنشاء ملف EXE لأغراض إثبات المفهوم (PoC). إذا كنت تريد فهم كيفية عمل المشروع خطوة بخطوة، فإنه سيسهل مهمتك. تحتوي الدالة الرئيسية (Main) على تعريفات لدالتي Technique1 و Technique2. علّق على إحداهما وقم بالتجميع. لا تستخدم كلتا الدالتين في نفس الوقت.

يقوم حل RefleXXion-DLL بإنشاء DLL تقوم بحقنه في العملية التي تريد تجاوز الخطافات على مستوى المستخدم فيها لـ NTDLL. في بداية ملف main.cpp، توجد تعريفات لأي تقنية سيتم استخدامها. يمكنك اختيار إحداها وتجميعها. لا تقم بتعيين جميع القيم في نفس الوقت، قم فقط بتعيين التقنية التي تريدها. مثال على التكوين موضح أدناه.

root@kitploit:~
// قسم تكوين التقنيات
#define FROM_DISK 1 // إذا قمت بتعيينها إلى 1، سيتم استخدام التقنية-1. لمزيد من المعلومات؛ https://github.com/hlldz/RefleXXion
#define FROM_KNOWNDLLS 0 // إذا قمت بتعيينها إلى 1، سيتم استخدام التقنية-2. لمزيد من المعلومات؛ https://github.com/hlldz/RefleXXion

ملاحظات الاستخدام التشغيلي واعتبارات OPSEC

  • يدعم RefleXXion حالياً بنية x64 فقط.

  • يقوم RefleXXion بإزالة الخطافات فقط من دوال NTDLL، قد تحتاج أيضاً إلى إزالة الخطافات من DLLs أخرى (مثل kernel32.dll و advapi32.dll). للقيام بذلك، يمكنك بسهولة تعديل الأماكن اللازمة في المشروع.

  • يستخدم RefleXXion فقط منطقة الذاكرة RWX عند بدء عملية الكتابة فوق مقطع .TEXT. لا يتم إنشاء منطقة ذاكرة جديدة لهذه العملية، بل يتم تحويل منطقة الذاكرة الموجودة (مقطع .TEXT الخاص بـ NTDLL المحمل بالفعل) إلى RWX ثم تحويلها إلى RX.

    root@kitploit:~
    ULONG oldProtection;
    ntStatus = NtProtectVirtualMemory(NtCurrentProcess(), &lpBaseAddress, &uSize, PAGE_EXECUTE_READWRITE, &oldProtection);
    memcpy()...
    ntStatus = NtProtectVirtualMemory(NtCurrentProcess(), &lpBaseAddress, &uSize, oldProtection, &oldProtection);
    

    ملاحظة: يستدعي RefleXXion API NtProtectVirtualMemory عبر NTDLL النظيف المثبت. يستخدم دالة CustomGetProcAddress لهذا الغرض لأن NTDLL النظيف غير موجود في InLoadOrderModuleList على الرغم من تحميله في الذاكرة. لذا فإن حلًا مثل هذا (https://stackoverflow.com/questions/6734095/how-to-get-module-handle-from-func-ptr-in-win32) لن يعمل. لهذا السبب توجد دالة GetProcAddress المخصصة ويتم استخدامها.

  • يمكنك تحميل RefleXXion DLL من القرص إلى العملية المستهدفة. قد لا تفضل مثل هذا التشغيل للأعمال الحساسة مثل عمليات الفريق الأحمر. لذلك، يمكنك تحويل RefleXXion DLL إلى شيل كود باستخدام مشروع sRDI أو دمج كود RefleXXion في المحمل الخاص بك أو مشروعك.

  • حتى إذا تم إعادة تحميل NTDLL (كملف أو كـ Section) إلى العملية المحقونة، فإنها لا تبقى محملة. يقوم RefleXXion بإغلاق جميع المقابض المفتوحة (مقابض الملفات والأقسام) لعملياته الخاصة.

شكر خاص وتقدير

  • البحث وإثبات المفهوم لجمع استدعاءات النظام النظيفة باستخدام LdrpThunkSignature بواسطة Peter Winter-Smith، @peterwintrsmith. EDR Parallel-asis through Analysis، https://www.mdsec.co.uk/2022/01/edr-parallel-asis-through-analysis/
  • تحليل التحميل المتوازي في Windows 10 بواسطة Jeffrey Tang. https://blogs.blackberry.com/en/2017/10/windows-10-parallel-loading-breakdown
  • https://stackoverflow.com/questions/42789199/why-there-are-three-unexpected-worker-threads-when-a-win32-console-application-s
  • Shellycoat بواسطة Upayan، @slaeryan. https://github.com/slaeryan/AQUARMOURY/tree/master/Shellycoat
تنزيل الأداة