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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
RpcInvestigator — أداة اكتشاف وتحليل واجهات RPC في ويندوز مع تعداد مرئي للنقاط النهائية، وتحليل PE، وحل الرموز، واعتراض حزم ETW في الوقت الفعلي، وتوليد رمز العميل أثناء التشغيل لتدقيق الأمان. | Kitploit
أدوات/GitHubGitHub/trailofbits/rpcinvestigator
تحليل الثغرات الأمنيةالهندسة العكسيةاختبار الاختراقتحليل الملفات الثنائية
GitHubtrailofbits/rpcinvestigator

RpcInvestigator

أداة اكتشاف وتحليل واجهات RPC في ويندوز مع تعداد مرئي للنقاط النهائية، وتحليل PE، وحل الرموز، واعتراض حزم ETW في الوقت الفعلي، وتوليد رمز العميل أثناء التشغيل لتدقيق الأمان.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

محقق RPC

يرجى قراءة إعلان منشور المدونة.

محقق RPC (RPCI) هو تطبيق واجهة مستخدم .NET/C# Windows Forms يوفر واجهة اكتشاف وتحليل متقدمة لنقاط نهاية RPC في Windows. يوفر الأداة واجهة بصرية حول قدرات RPC الأساسية الحالية لمنصة NtApiDotNet، بما في ذلك:

  • تعداد جميع خوادم ALPC RPC النشطة
  • تحليل خوادم RPC من أي ملف PE
  • تحليل خوادم RPC من العمليات ووحداتها المحملة، بما في ذلك الخدمات
  • سحب معلومات الرموز من خادم الرموز
  • تصدير تعريفات خادم RPC ككائنات .NET مسلسلة للنصوص البرمجية الخاصة بك

بالإضافة إلى هذه الميزات الأساسية، يوفر RPCI قدرات إضافية:

  • تتيح لك Client Workbench إنشاء وتنفيذ عميل RPC ثنائي بسرعة عن طريق النقر بزر الماوس الأيمن على خادم RPC محل الاهتمام. تحتوي منصة العمل على لوحة محرر كود C# تسمح لك بتحرير العميل في الوقت الفعلي وملاحظة النتائج من إجراءات RPC المنفذة في الكود الخاص بك.
  • يتم تنظيم خوادم RPC المكتشفة في مكتبة قابلة للبحث، مما يسمح لك بتدوير بيانات خادم RPC بطرق مفيدة، مثل البحث في جميع إجراءات RPC لجميع الخوادم عن الإجراءات المثيرة للاهتمام من خلال واجهة بحث قابلة للتخصيص.
  • تضيف أداة RPC Sniffer رؤية لبيانات ETW المتعلقة بـ RPC لتوفير عرض شبه فوري لاستدعاءات RPC النشطة. من خلال الجمع بين بيانات ETW وبيانات خادم RPC من NtApiDotNet، يمكننا بناء صورة أكثر اكتمالاً لنشاط RPC الجاري.

سير العمل الشائعة

هناك العديد من سير العمل التي يدعمها محقق RPC:

  • التدقيق
    • تعداد جميع خوادم ALPC RPC النشطة عبر جميع العمليات التي تتواصل مع نقطة نهاية ALPC
    • تعداد جميع خوادم RPC قيد التشغيل في خدمة Windows
    • تحميل خوادم RPC غير المتصلة المعرفة في ملف PE (مثل EXE أو DLL)
  • التفاعلي
    • Client Workbench: إنشاء كود عميل RPC تلقائياً يمكن تخصيصه واستخدامه للاتصال بأي خدمة RPC.
    • RPC Sniffer: مراقبة في الوقت الفعلي لبيانات تتبع الأحداث المتعلقة بـ RPC (ETW) في Windows.

مثال على سير العمل: تحليل RPC لجدولة المهام

في هذا المثال، سنقوم بتفقد خدمة RPC لجدولة المهام في Windows، والتي تُستخدم لإدارة وتنفيذ المهام المجدولة. سنجد الخدمة، وننشئ كود العميل، ثم نخصص العميل للتفاعل مع أحد الإجراءات المعروضة.

أولاً، قم بتحميل قائمة خدمات Windows بالنقر على File -> Load From Service. يفتح هذا نافذة قائمة خدمات جديدة:

ابحث عن خدمة Schedule، وهي خدمة جدولة المهام في Windows، حدد الخدمة وانقر على Go.

سيُطلب منك قبل تحميل RPCI لجميع ملفات DLL المرتبطة بـ RPC. انقر على Yes للمتابعة. بمجرد التحميل، سترى قائمة بجميع خوادم RPC المكتشفة عبر جميع الوحدات المحملة في عملية الخدمة. يحتوي خادم RPC لجدولة المهام في Windows على معرف واجهة 86D35949-83C9-4044-B424-DB363231FD0C. ابحث عن الصف في القائمة الذي يحتوي على معرف الواجهة هذا، والذي يجب أن يكون له خدمة قيد التشغيل باسم Task Scheduler، انقر بزر الماوس الأيمن على الصف وحدد New Client.

يظهر الجزء الأيسر من نافذة العميل بيانات خادم RPC الوصفية ومخرجات سطر الأوامر من كود العميل. يظهر الجانب الأيمن علامتي تبويب:

  • Client Code - كود عميل C# تم إنشاؤه تلقائياً ويمكن تخصيصه للتفاعل مع إجراء واحد أو أكثر.
  • Procedures - قائمة بإجراءات RPC المعروضة.

في هذا المثال، سنقوم باستدعاء الإجراء SchRpcHighestVersion. يقبل هذا الأسلوب معاملاً واحداً، out int version، والذي، بعد استدعاء الإجراء، سيحتوي على أعلى إصدار بروتوكول لجدولة المهام يدعمه واجهة RPC. الـ 16 بت العليا هي الإصدار الرئيسي والـ 16 بت السفلى هي الإصدار الثانوي.

لاستدعاء هذا الإجراء:

  1. في نافذة Client Code، ابحث عن الأسلوب Run، وهو نقطة الدخول الرئيسية لعميل RPC.

  2. قم بتحرير نص الأسلوب Run لاستدعاء الإجراء:

    public async Task<bool> Run()
    {
        int version;
        int status = SchRpcHighestVersion(out version);
        if (status == 0) {
            long major = (version & 0xffff0000) >> 16;
            long minor = version & 0x0000ffff;
            Console.WriteLine("highest supported RPC version: {0}.{1}", major, minor);
        } else {
            Console.WriteLine("call to SchRpcHighestVersion failed with error: {0:X}", status);
        }
        return true;
    }
    
  3. بعد إضافة هذا الكود، قم بتشغيل العميل بالنقر على زر Run. سيؤدي هذا إلى ترجمة كود C# ثم تنفيذ الأسلوب Run.

    • سترى نافذة منبثقة تحتوي على أي أخطاء ترجمة إذا تعذر ترجمة كود العميل.

إذا نجحت الترجمة، سترى شيئاً مشابهاً لما يلي في مربع Output:

> Run() output:
highest supported RPC version: 1.6

الإعدادات

لدى محقق RPC عدة إعدادات تكوين.

الإعدادالوصفالافتراضي
dbghelp.dllموقع ملف وحدة dbghelp.dllابحث عن أحدث إصدار ضمن Windows Kits المثبتة.
Symbol Pathالمسار إلى رموز Windows، والذي يمكن أن يكون خادم رموز أو دليلاً محلياًخادم Windows العام الافتراضي: srv*c:\symbols*https://msdl.microsoft.com/download/symbols
Trace Levelمستوى تتبع التسجيلinfo

يمكن تعديل إعدادات التكوين داخل التطبيق من خلال قائمة Edit -> Settings.

استكشاف الأخطاء وإصلاحها

بعد إصداره الأولي، تم تحويل محقق RPC من تطبيق .NET Framework إلى تطبيق .NET 7. إذا واجهت مشاكل في البناء، تأكد من أن Visual Studio محدث. يُنصح بمسح جميع مجلدات مخرجات البناء قبل البناء من إصدار .NET Framework.

أيضاً، بسبب الانتقال من فئة BinaryFormatter غير الآمنة إلى protobuf-net، فإن مكتبات RPC المُنشأة مع إصدار .NET Framework غير متوافقة مع إصدار .NET.

إذا كنت تعاني من تعطل عشوائي في محقق RPC، فقد تجد حلاً في طلب من مسؤول النظام تعديل إعدادات EDR الخاص بك. لقد وجدنا أن بعض EDRs لا تتصرف بشكل معقول مع اللغات المترجمة في الوقت الفعلي (JIT).

في بعض الحالات، يتم اكتشاف محقق RPC كبرنامج ضار بواسطة EDRs، بما في ذلك بعض النتائج الإيجابية الخاطئة على Virus Total. هذه مشكلة معروفة. وذلك لأن محقق RPC يحتوي على NtObjectManager - وهي حزمة أنشأها James Forshaw ومن المعروف أنه يتم اكتشافها (إيجابي خاطئ) بواسطة العديد من EDRs، بما في ذلك Windows Defender.

بيئة التطوير

  1. قم بتثبيت Visual Studio Community 2022، وتأكد من تحديد سير عمل .NET Desktop Development.
  2. قم بتنزيل وتثبيت أحدث Windows 10 SDK. قم بإجراء تثبيت كامل بحيث يتم تثبيت .NET 4.8.1 وأدوات التصحيح (Debugging Tools).
  3. افتح الحل (Solution) وتأكد من تحميل المشاريع بشكل صحيح. إذا كان هناك خطأ حول عدم وجود حزمة استهداف .NET 4.8.1، قم بتنزيل وتثبيت .NET Framework 4.8.1 Developer Pack ثم أعد تشغيل Visual Studio.

قراءات إضافية

نظرًا لأن RPC في Windows كان موضوعًا بحثيًا شائعًا لأكثر من عقد، فهناك العديد من الموارد والجهود البحثية ذات الصلة التي لا يمكن ذكرها هنا. لقد أدرجنا القليل أدناه التي صادفناها أثناء بناء هذه الأداة:

  • https://clearbluejar.github.io/posts/surveying-windows-rpc-discovery-tools/
  • https://www.powerofcommunity.net/poc2019/James.pdf
  • https://www.tiraniddo.dev/2022/06/finding-running-rpc-server-information.html
  • https://clearbluejar.github.io/posts/from-ntobjectmanager-to-petitpotam/
  • https://itm4n.github.io/from-rpcview-to-petitpotam/
  • https://learn.microsoft.com/en-us/windows/win32/rpc/rpc-security-essentials
  • https://www.cyberark.com/resources/threat-research-blog/understanding-windows-containers-communication
  • https://github.com/silverf0x/RpcView
  • https://github.com/xpn/RpcEnum
  • https://github.com/cyberark/RPCMon
  • https://github.com/tyranid/WindowsRpcClients
تنزيل الأداة