تكتيكات الفريق الأحمر: تقنيات مراقبة العمليات المتقدمة في العمليات الهجومية

مرحبا مجددا. عشية عيد العنصرة. "اختبار اختبار الاختراق" ترجم مادة أخرى مثيرة للاهتمام بالنسبة لك.




في هذه المقالة ، سوف نفهم قدرات أدوات مراقبة العمليات المعروفة جيدًا ونوضح كيفية استخدام التكنولوجيا الكامنة وراء هذه الأدوات لعمليات الهجوم التي يقوم بها الفريق الأحمر.

إن الفهم التقني الجيد للنظام الذي نعتمد عليه هو معيار رئيسي لاتخاذ قرارات حول الخطوة التالية من العملية. يمنحنا جمع البيانات وتحليلها حول العمليات الجارية في الأنظمة المعرضة للخطر ثروة من المعلومات ويساعدنا على فهم كيفية عمل البنية التحتية لتكنولوجيا المعلومات في المنظمة المستهدفة. بالإضافة إلى ذلك ، تساعدنا بيانات العملية المطلوبة بشكل دوري على الاستجابة للتغيرات البيئية وتلقي إشارات الزناد عند بدء التحقيق.

من أجل أن نكون قادرين على جمع البيانات التفصيلية حول العمليات في نقاط النهاية المخترقة ، أنشأنا مجموعة من الأدوات التي جمعت قوة أدوات العمليات المتقدمة وأطر C2 (مثل Cobalt Strike).

يمكن العثور على الأدوات (ورمز مصدرها) هنا .

أدوات نظام Windows الداخلية


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

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

لجمع هذه المعلومات ، هناك أداة أكثر تقدمًا. على سبيل المثال ، أدوات النظام المساعدة لحزمة Sysinternals. بصفتي عضوًا في الفريق الأحمر ولديهم خبرة واسعة في إدارة الشبكات والنظام ، فقد كنت دائمًا من المعجبين بكبار Sysinternals.

عند استكشاف أخطاء نظام خادم يعمل ببطء أو جهاز كمبيوتر عميل مصاب ، غالبًا ما بدأت في استكشاف الأخطاء وإصلاحها باستخدام أدوات مثل Process Explorer أو Procmon.
من وجهة نظر الطب الشرعي الرقمي ، تبدو هذه الأدوات أيضًا مفيدة جدًا لإجراء التحليل الديناميكي الأساسي لعينات البرامج الضارة والبحث عن القطع الأثرية في الأنظمة المصابة. فلماذا تحظى هذه الأدوات بشعبية كبيرة بين مسؤولي النظام وكذلك خبراء الأمن؟ دعونا نكتشف ذلك ، نتعمق في بعض معلومات العملية التي يمكننا الحصول عليها باستخدام أداة Process Explorer.

باستخدام Process Explorer


أول شيء نراه عند بدء تشغيل Process Explorer هو قائمة / شجرة بجميع العمليات الجارية للنظام. هذا يعطينا معلومات حول أسماء العمليات ومعرفاتها وسياق المستخدم ومستوى سلامة العملية ومعلومات الإصدار. يمكن أن تنعكس المعلومات الإضافية أيضًا عن طريق تعديل الأعمدة وفقًا لذلك.



إذا استخدمنا اللوحة السفلية ، فيمكننا عرض جميع الوحدات التي تم تحميلها بعملية معينة ، أو التبديل إلى عرض الواصفات للتعرف على جميع كائنات الواصفات المسماة التي تستخدمها العملية:



يمكن أن يكون استعراض الوحدات مفيدًا عند البحث عن مكتبات ضارة يتم تحميلها في هذه العملية ، أو بالنسبة إلى Red Team ، فهو منتج أمان نشط (على سبيل المثال ، EDR) قام بتنفيذ وحدة للاتصال عبر API في وضع المستخدم.



يسمح لك التبديل إلى عرض الواصفات بالتعرف على نوع واسم جميع الكائنات المسماة المستخدمة في العملية. يمكن أن يكون هذا مفيدًا لمعرفة الملفات ومفاتيح التسجيل المفتوحة ، والأنابيب المسماة التي يتم استخدامها للاتصال بين العمليات.
إذا نقرت نقرًا مزدوجًا على اسم العملية ، فستظهر نافذة تحتوي على معلومات أكثر تفصيلاً. دعنا نلقي نظرة على بعض علامات التبويب للتعرف على الخصائص الإضافية للكائن:



علامة تبويب الصورةيعرض معلومات حول خيارات المسار الثنائي ودليل العمل وخيارات سطر الأوامر. بالإضافة إلى ذلك ، فإنه يعرض معلومات حول سياق المستخدم ، والعملية الأم ، ونوع الصورة (x86 أو x64) وأكثر من ذلك بكثير.



و المواضيع التبويب يحتوي على معلومات حول تشغيل مؤشرات الترابط في العملية. عند تحديد دفق ثم النقر فوقه ، سيعكس زر المكدس مكدس الاستدعاء لهذا الدفق المحدد. لعرض سلاسل العمليات / المكالمات التي تم تشغيلها في وضع kernel ، يستخدم Process Explorer برنامج تشغيل kernel ، والذي يتم تثبيته عند العمل في الوضع المرتفع.

من وجهة نظر DFIR ، تكون معلومات مؤشر الترابط مفيدة للكشف عن الحقن في الذاكرة ، على سبيل المثال ، عندما يكون هناك تهديد للفيروسات الخالية من الملفات. وبالتالي ، يمكن أن تشير التدفقات غير المدعومة بالملفات الموجودة على القرص إلى سلوك مريب. لمزيد من المعلومات حول سلاسل المحادثات والذاكرة ، أوصي بشدة بالاهتمام بأداة Process Hacker .



علامة تبويب أخرى مثيرة للاهتمام في Process Explorer هي علامة التبويب TCP / IP. ستشاهد عليه جميع اتصالات الشبكة المرتبطة بهذه العملية. من وجهة نظر الهجوم ، يمكن أن يكون هذا مفيدًا لفهم متى يتم الاتصال من نظام مخترق. قد تشير جلسة RemoteShell البعيدة أو جلسة RDP إلى بدء تحقيق بالفعل.

باستخدام الطرق التي نوقشت للهجوم


الآن بعد أن تعلمنا القليل من الأشياء المثيرة للاهتمام حول العمليات ، وحول المعلومات التي يمكننا جمعها عنها باستخدام Process Explorer ، قد تتساءل عن كيفية الوصول إلى هذه المعلومات من أطر C2 المفضلة لدينا. بالطبع ، يمكننا استخدام PowerShell ، لأن هذا سيتيح لنا الفرصة لاستخدام لغة برمجة نصية قوية و Windows API. ومع ذلك ، فإن PowerShell اليوم تحت الإشراف المستمر لخدمة الأمن ، لذلك نحاول تجنب هذه الطريقة.

في Cobalt Strike ، يمكننا استخدام الأمر ps في سياق المنارات. يعرض هذا الأمر المعلومات الأساسية حول العملية بناءً على جميع العمليات التي يتم تشغيلها في النظام. بالاقتران مع البرنامج النصي @r3dQu1nn ProcessColor، من المحتمل أن تكون هذه الطريقة هي الأفضل للحصول على بيانات العملية.

يكون الإخراج من الأمر ps مفيدًا لفرز العمليات الجارية بسرعة ، ولكنها لا تحتوي على معلومات تفصيلية من شأنها مساعدتك على فهم النظام بشكل أفضل. لجمع معلومات أكثر تفصيلاً ، أنشأنا أدوات مساعدة خاصة بنا للحصول على معلومات حول العمليات. بمساعدتهم ، يمكننا جمع وإثراء المعلومات التي تم الحصول عليها من الأنظمة المخترقة.

أدوات ps


ليس من السهل تكرار الوظائف والمعلومات التي توفرها أداة مثل Process Explorer. نحتاج أولاً إلى معرفة كيفية عمل هذه الأدوات تحت الغطاء (وفي وضع المستخدم) ، ثم نحتاج إلى فهم كيفية عكس هذه المعلومات بشكل أفضل في وحدة التحكم ، وليس في الواجهة الرسومية.

بعد تحليل شفرة المصدر ، أصبح من الواضح أن العديد من الأدوات منخفضة المستوى لتوفير معلومات النظام تستند إلى حد كبير إلى واجهة برمجة تطبيقات NtQuerySystemInformation API الأصلية . على الرغم من عدم توثيق واجهة برمجة التطبيقات (API) والهياكل المرتبطة بها بشكل كامل ، تتيح لك واجهة برمجة التطبيقات هذه جمع الكثير من المعلومات حول نظام Windows. لذلك باستخدام NtQuerySystemInformationكنقطة انطلاق لجمع المعلومات حول العمليات الجارية في النظام ، سوف نستخدم PEB للعمليات الفردية لجمع معلومات تفصيلية حول كل منها. باستخدام واجهة برمجة تطبيقات NtQueryInformationProcess ، يمكننا قراءة البنية PROCESS_BASIC_INFORMATIONباستخدام واصف العملية والعثور عليه PebBaseAddress. ثم نستخدم NtReadVirtualMemoryAPI لقراءة هيكل RTL_USER_PROCESS_PARAMETERS، والتي سوف تسمح لنا لمعرفة المعلمات ImagePathNameو CommandLineالعملية.

باستخدام واجهات برمجة التطبيقات هذه كأساس لشفرتنا ، قمنا بكتابة الأدوات التالية للحصول على معلومات حول العمليات:

  • Psx : يعرض قائمة مفصلة بجميع العمليات التي تعمل على النظام.
  • Psk : يعرض معلومات kernel ، بما في ذلك برامج التشغيل المحملة.
  • Psc: TCP-.
  • Psm: ( , ).
  • Psh: (, , ).
  • Psw: .

كل هذه الأدوات مكتوبة بلغة C كملفات DLL عاكسة ويمكن تضمينها بشكل عكسي في عملية إنتاج باستخدام C2 Framework مثل Cobalt Strike (أو أي إطار عمل آخر يدعم حقن DLL العاكسة). بالنسبة لـ Cobalt Strike ، قمنا بإضافة برنامج نصي معتدي يمكن استخدامه لتحميل الأدوات باستخدام مدير البرنامج النصي Cobalt Strike.

دعونا نلقي نظرة على كل أداة محددة تم إطلاقها في Cobalt Strike من أجل توضيح الوظائف وإظهار المعلومات التي يمكن جمعها باستخدامها:

Psx


تعرض هذه الأداة قائمة مفصلة بجميع العمليات التي تعمل على النظام. يمكن مقارنة الإخراج بالمعلومات الموجودة على الشاشة الرئيسية لـ Process Explorer. يعرض Psx اسم العملية ومعرفها ومعرف PID الأصلي ووقت الإنشاء والمعلومات المتعلقة بالملفات الثنائية للعملية (الهندسة المعمارية واسم الشركة والإصدار وما إلى ذلك). كما ترى ، فإنه يعرض أيضًا بعض المعلومات المثيرة للاهتمام من النواة النشطة للنظام ، على سبيل المثال ، العنوان الأساسي للنواة ، والذي يكون مفيدًا عند تشغيل النواة (على سبيل المثال ، لحساب تعويضات أدوات ROP). يمكن جمع كل هذه المعلومات من سياق مستخدم عادي (بدون رفع الامتيازات).



إذا كانت لدينا أذونات كافية لفتح واصف العملية ، يمكنك قراءة معلومات إضافية ، مثل سياق المستخدم ومستوى تكامل الرمز المميز الخاص به. يسمح لك تعداد PEB والهياكل ذات الصلة بالحصول على معلومات حول مسار الصورة ومعلمات سطر الأوامر:



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



بسك


تعكس هذه الأداة معلومات حول النواة العاملة ، بما في ذلك جميع وحدات برنامج التشغيل المحملة. مثل أداة Psx ، فإنه يوفر أيضًا ملخصًا لجميع وحدات kernel المحملة من منتجات الأمان المعروفة.



ش


تستخدم هذه الأداة نفس الأساليب لعرض معلومات حول العمليات النشطة مثل Psx ، باستثناء أنها تعرض العمليات التي لها اتصال شبكة نشط فقط (IPv4 و IPv6 TCP و RDP و ICA):



مزمور


يمكنك استخدام هذه الأداة للحصول على معلومات تفصيلية حول عملية معينة. سيعرض قائمة بجميع الوحدات (DLLs) المستخدمة من قبل العملية واتصال الشبكة:



Psh


مثل Psm ، ولكن بدلاً من الوحدات النمطية المحملة ، فإنه يعرض قائمة بواصفات العمليات:



Psw


أداة Psw الأخيرة ولكن ليس الأقل أهمية . ستعرض هذه الأداة قائمة العمليات ذات مقابض النوافذ النشطة ، وتلك المفتوحة على سطح مكتب المستخدم ، بما في ذلك عناوين النوافذ. هذا مفيد لتحديد واجهات التطبيق الرسومية التي يفتحها المستخدم دون الحاجة إلى التقاط لقطات شاشة لسطح المكتب:



استخدم حالات


قد تتساءل: "وكيف يساعدنا كل هذا في العمليات الهجومية؟" بعد الوصول إلى أحد الأصول المخترقة ، نستخدم هذه المعلومات عادةً للأغراض التالية:

  • الكشف عن أدوات الأمان على الأصول المعرضة للخطر. ليس فقط من خلال معلومات العملية ، ولكن أيضًا من خلال الوحدات النمطية المحملة.
  • الكشف عن محركات ربط مخصصة.
  • البحث عن فرص للمناورات (من خلال جلسات الشبكة) وتصعيد الامتيازات.

بعد الحل الوسط الأول ، يمكنك طلب معلومات مماثلة بشكل دوري حول العمليات والبدء في إنشاء المشغلات. على سبيل المثال ، نقوم تلقائيًا بإدخال هذه المعلومات في RedELK . ثم يمكنك إنشاء تنبيهات حول التغييرات المريبة في معلومات العملية ، مثل:

  • قم بتشغيل أداة تدقيق أمني أو قم بتثبيت منتج أمان جديد للنقطة النهائية.
  • اتصالات الشبكة الواردة من قسم الأمن من خلال جلسة RDP أو PowerShell عن بعد.
  • فتح مقبض عن طريق عملية أخرى على أحد القطع الأثرية الضارة لدينا (على سبيل المثال ، ملف يستخدم للحفاظ على التواجد).

استنتاج


في هذه المقالة ، أظهرنا كيف يمكن استخدام أدوات مثل Sysinternals Process Explorer للحصول على معلومات تفصيلية حول العمليات التي تعمل على النظام ، وكيف يمكن لهذه المعلومات مساعدة المسؤولين والمتخصصين في مجال الأمن على استكشاف الأخطاء وإصلاحها والتحقق من النظام بحثًا عن مشكلات الأمان أو أداء.

نفس المعلومات ذات صلة ومفيدة أيضًا لفريق Red ، الذي يمكنه الوصول إلى الأنظمة المخترقة أثناء التشغيل. يساعد على فهم النظام والبنية التحتية لتكنولوجيا المعلومات لهدفك بشكل أفضل ، ويسمح الاستجواب الدوري لهذا النظام للفريق الأحمر بالاستجابة للتغيرات المحتملة في البيئة (على سبيل المثال ، تحري التحقيق).

لقد قمنا بتكرار بعض الوظائف التي توفرها أدوات مثل Process Explorer ، حتى نتمكن من استخدام نفس المعلومات في العمليات الهجومية. للقيام بذلك ، تم إنشاء العديد من أدوات مراقبة العملية التي يمكن استخدامها كجزء من إطار C2 ، على سبيل المثال Cobalt Strike. أظهرنا كيفية استخدام هذه الأدوات والمعلومات التي يمكنك استخدامها لجمعها.

تتوفر هذه الأدوات على صفحة GitHub الخاصة بنا وهي جاهزة للاستخدام كجزء من Cobalt Strike.



تعلم المزيد عن الدورة.



All Articles