
جدار حماية RPC لنظام ويندوز يقوم بتدقيق واكتشاف وحظر استدعاءات الإجراءات البعيدة الخبيثة لمنع الحركة الجانبية والاستطلاع واستغلال الهجمات المستندة إلى RPC مثل DCSync وZeroLogon.
اطّلع على مقالنا حول جدار حماية RPC أو محادثتنا في BlackHat لفهم أفضل لـ RPC وهجمات RPC والحل: جدار حماية RPC.
انضم إلى مساحة عمل مجتمع Slack |Zero| Labs لأي أسئلة أو مشكلات أو ببساطة للتحية.
نود أيضًا أن نسمع منك عبر البريد الإلكتروني (إذا كنت من هذا النوع). اتصل بنا على [email protected]
يعرض البرنامج التعليمي التالي التثبيت والإعداد الأساسي لجدار حماية RPC، بالإضافة إلى عرض توضيحي لكيفية حمايته من هجمات RPC المختلفة.
RPC هي الآلية الأساسية المستخدمة في العديد من تقنيات الحركة الجانبية، الاستكشاف، هجمات الترحيل، أو ببساطة لاستغلال خدمات RPC الضعيفة.
هجوم DCSync؟ عبر RPC. DCOM عن بُعد؟ عبر RPC. WMIC؟ عبر RPC. SharpHound؟ عبر RPC. PetitPotam؟ عبر RPC. PsExec؟ عبر RPC. ZeroLogon؟ عبر RPC... حسنًا، لقد فهمت الفكرة :)
في جميع أنحاء هذا المستند، سنستخدم المصطلحات التالية:
يمكن استخدامه لتدقيق جميع استدعاءات RPC عن بُعد. بمجرد تشغيل أي أدوات هجوم عن بُعد، سترى أي UUIDs و Opnums لـ RPC تم استدعاؤها عن بُعد.
شاهد مثالًا للتكوين هنا.
عندما يتم تكوين تكوين RPCFW للتدقيق، تُكتب الأحداث في سجل أحداث Windows. تُكتب أحداث مرشحات RPC في سجل الأمان، بمعرف الحدث 5712. تُسجل سجلات جدار حماية RPC في Application/RPCFW.
يمكن للمستخدمين إعادة توجيه هذه السجلات إلى نظام SIEM الخاص بهم، واستخدامها لإنشاء خطوط أساس لحركة مرور RPC عن بُعد للخوادم المختلفة. عند تدقيق استدعاء RPC غير طبيعي، استخدمه لإطلاق تنبيه لفريق SOC الخاص بك.
قمنا بدمج العديد من قواعد Sigma التي يمكن استخدامها لكشف أنشطة وهجمات RPC غير المعتادة.
يمكن تكوين تكوين RPCFW لحظر وتدقيق استدعاءات RPC الخبيثة فقط. لا يتم تدقيق جميع استدعاءات RPC الأخرى لتقليل الضوضاء وتحسين الأداء.
بمجرد اكتشاف استدعاء RPC خبيث محتمل، يتم حظره وتدويره. يمكن استخدام هذا لتنبيه فريق SOC الخاص بك، مع الحفاظ على حماية خوادمك.
لتعزيز الحماية، يمكنك استخدام إمكانيات تصفية RPC، التي يتم دعمها أيضًا عبر RpcFwManager.exe.
مثال على هذا التكوين موجود هنا.
يتكون من 3 مكونات:
بينما توجد مزايا وعيوب لاستخدام كل طريقة، هناك ميزتان رئيسيتان لاستخدام جدار حماية RPC تتطلبان اهتمامًا خاصًا. وهما:
من ناحية أخرى، تعتبر مرشحات RPC ممتازة للسماح أو ربط UUIDs بالجملة، لأنها تفعل ذلك دون أي مشاكل.
قبل تشغيل أي أمر، يُوصى بالتحقق من حالة النشر. يتم ذلك عن طريق إصدار الأمر '/status':
RpcFwManager.exe /status
سيظهر هذا حالة كل من جدار حماية RPC ومرشحات RPC. سيعرض هذا معلومات تفصيلية عن حالة التثبيت، وكذلك حالة تشغيل النشر.
يمكن إضافة لاحقة fw أو flt في نهاية كل أمر تقريبًا. هذا يخبر مدير RPCFW ما إذا كان الأمر يُطبق على جدار حماية RPC ('fw') أم مرشحات RPC ('flt') أم كليهما عند عدم استخدام أي لاحقة.
قم بتثبيت الميزة ذات الصلة (مرشحات RPC / جدار حماية RPC / كليهما).
تأكد من إغلاق عارض الأحداث أثناء التثبيت / إلغاء التثبيت. أيضًا، من الجيد الإيقاف وإلغاء التثبيت قبل التثبيت، للتأكد من عدم وجود إصدارات سابقة مثبتة.
RpcFwManager.exe /stop
RpcFwManager.exe /uninstall
RpcFwManager.exe /install
إلغاء التثبيت يفعل العكس. أيضًا هنا من الجيد التأكد من إيقاف الخدمة قبل إلغاء التثبيت.
RpcFwManager.exe /stop
RpcFwManager.exe /uninstall
مرشحات RPC، بطبيعتها، تُطبق على مستوى النظام، على أي خادم RPC. تطبيق هذه المرشحات مستمر عبر إعادة التشغيل أيضًا. أي عملية جديدة أو قديمة ستكون محمية بواسطة مرشحات RPC، وفقًا لـ تكوين RPCFW.
جدار حماية RPC يُحقن ويحمي أي عملية خادم RPC تستمع لاستدعاءات RPC عن بُعد. يتم ذلك عن طريق حقن جدار حماية RPC في العمليات التي تحمل RPCRT4.DLL (وقت تشغيل RPC). بمجرد التحميل، سيكتشف جدار حماية RPC ما إذا كان خادم RPC يستمع لاستدعاءات RPC عن بُعد. إذا لم يكن كذلك، فإنه يفرغ نفسه. إذا كانت العملية خادم RPC صالحًا، يبدأ جدار حماية RPC في تدقيق ومراقبة استدعاءات RPC الواردة، وفقًا لـ تكوين RPCFW.
الطريقة الموصى بها لحماية خدمات RPC هي باستخدام الأمر '/start'. هذا يبدأ خدمة جدار حماية RPC (للاحقة 'fw' أو بدون لاحقة)، وينشئ مرشحات RPC (للاحقة 'flt' أو بدون لاحقة).
RpcFwManager.exe /start
من الممكن أيضًا استخدام جدار حماية RPC بشكل مؤقت، لحماية عمليات محددة. هذا لن يبدأ خدمة جدار حماية RPC، ولن يستمر عبر إعادة التشغيل.
لحماية عملية واحدة بواسطة معرف العملية (PID):
RpcFwManager.exe /start pid <pid>
لحماية عملية واحدة بالاسم:
RpcFwManager.exe /start process <process name>
لإيقاف الحماية، ما عليك سوى إصدار الأمر '/stop' مع اللاحقة المناسبة (لا يمكن إيقاف الحماية لعملية معينة).
RpcFwManager.exe /stop
وفقًا للاحقة المستخدمة ('fw' أو 'flt' أو بدون)، سيؤدي هذا إلى إيقاف خدمة جدار حماية RPC وإلغاء تحميل ملف dll الخاص بـ جدار حماية RPC من جميع العمليات. بالنسبة لـ مرشحات RPC، ستحذف جميع المرشحات التي أنشأها مدير RPCFW.
بمجرد البدء، سيبقى جدار حماية RPC ثابتًا عبر إعادة التشغيل. مرشحات RPC أيضًا ثابتة.
يبحث مدير RPCFW عن ملف RpcFw.conf، في نفس دليل الملف القابل للتنفيذ. يستخدم هذا الملف خيارات التكوين التالية:
هام: يجب أن يسبق كل سطر تكوين إما 'fw:' أو 'flt:' للإشارة إلى ما إذا كان السطر مطبقًا على جدار حماية RPC أم مرشح RPC.