
تكتيكات وتقنيات وإجراءات آلية
تكتيكات وتقنيات وإجراءات آلية. إعادة تشغيل التسلسلات المعقدة يدويًا لاختبارات الانحدار، تقييمات المنتجات، توليد بيانات للباحثين وما إلى ذلك يمكن أن يكون مملاً. فكرت في فكرة جعل من الأسهل كتابة سكريبتات لـ Empire (أو أي أطر/منتجات/أدوات توفر واجهات برمجة تطبيقات مثل Metasploit (RPC)، Cobalt-Strike وما إلى ذلك) باستخدام بيئة تطوير متكاملة مثل Visual Studio Code (أو ما يعادلها). لذلك بدأت في تصميم AutoTTP. هذا لا يزال قيد العمل كثيرًا. اختبر مع Empire 2.2.

يوتيوب - نظرة عامة وغوص عميق في تقنيات مختارة

في حالتي، يتم تنظيم التكتيكات وفقًا لنموذج دورة الهجوم الخاصة بي. هناك نماذج أخرى مثل سلسلة القتل (Kill-Chain) لشركة Lockheed Martin، دورة الهجوم لشركة Mandiant و ATT&CK من Mitre. أيًا كان النموذج، فإن "التكتيك" يجمع التقنيات معًا في الأساس، على سبيل المثال: تنفيذ الكود/تشغيل الحمولة يمكن تحقيقه بعدة طرق:

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

مخطط فن في منتصف الدورة الحمراء مأخوذ من ورقة كلية دارتموث "ثلاثة مبادئ لتصميم وتقييم النظام المادي الإلكتروني الآمن". تحدد هذه الورقة الشروط الضرورية والكافية، أو ببساطة متطلبات أي هجوم مادي/منطقي ناجح. أضفت الحلقة الحمراء (المراحل) حول مخطط فن لتوضيح التدفقات الهجومية النموذجية التي تؤدي في النهاية إلى التأثير على سرية المعلومات، سلامتها، وتوافر النظام أو السلامة إذا كان مرتبطًا بالنظام المادي الإلكتروني (فكر في البنية التحتية الحرجة للمعلومات).
يمكن للمهاجم أن يبدأ من المرحلة 1 ويصل مباشرة إلى المرحلة 4، على سبيل المثال: بيانات اعتماد المسؤول الافتراضية على صفحة إدارة مكشوفة للعامة. لا يلزم أن تكون خطية (المرحلة 1->2->3->4). بعد التسلل الأولي، قد يكون قد قام ببعض جمع المعلومات الداخلية (الاستطلاع) أولاً قبل رفع الصلاحيات على الجهاز الأول ثم إطلاق أمر عن بعد إلى جهاز هدف آخر داخل نفس الشبكة. بالنسبة لجهاز الضحية التالي، إنها المرحلة 2؛ توصيل الحمولة وتنفيذها بنجاح مما يسمح للمهاجم بالسيطرة على جهاز آخر.

الملف على اليسار هو سكريبت إجراءات، واليمين هو سكريبت تقنية. لاحظ أن كتابة سكريبتات الإجراءات ليست مليئة بتفاصيل Empire المحددة، حيث أن معظم التفاصيل مغلفة في سكريبت التقنية. يجب أن تركز كتابة سكريبتات الإجراءات على تسلسل التقنيات باستخدام معلومات الأصول، مثل اسم المضيف/عنوان IP، وأي بريد إلكتروني لإرسال الحمولة إليه، وأي تقنية حمولة، وما إلى ذلك.
مثال "هل المستخدم مسؤول؟" يتكون فعليًا من عدة خطوات نظرًا لوجود 3 احتمالات على الأقل كما هو موضح في تعليقات السكريبت. يمكننا بالطبع إنشاء "وحدات ماكرو" مخصصة في Empire وMetasploit وما إلى ذلك، لكن ذلك يصبح مدمجًا بإحكام داخل إطار/منتج معين. نريد الاستفادة من الأدوات المتاحة وتنظيم التقنيات القابلة لإعادة الاستخدام في وحدات نمطية بحيث يمكن مزجها ومطابقتها على مستوى الإجراءات (أي الأتمتة).

استفدت من الوحدات النمطية جيدة التنظيم في Empire لإنشاء فئة الإكمال التلقائي بلغة بايثون. بدلاً من كتابة اسم الوحدة النمطية بالكامل (مثل powershell/situational_awareness...) ما عليك سوى استخدام قدرات الإكمال التلقائي في IDE.

لكل وحدة نمطية، هناك خيارات (لمعظم إن لم يكن كل الأطر). الشيء مع Empire هو أنه بمجرد تشغيلها في وضع rest/headless (سأتطرق إلى هذا لاحقًا)، لا توجد وحدة تحكم لعرض خيارات الوحدة النمطية. في فئة المساعد للإكمال التلقائي، تحتوي كل وحدة نمطية على فئة فرعية options. الخيارات المطلوبة مسبوقة كما هو موضح أعلاه، لذا يمكننا ملء تلك الخيارات بالقيم أولاً قبل استدعاء وحدة نمطية.

وصف كل وحدة نمطية مضمن أيضًا كجزء من توثيق فئة بايثون وسيتم عرضه عند التمرير فوق الفئة. نظرًا لوجود 276 وحدة نمطية (حتى Empire 2.1)، ستحتاج هذه الفئة المساعدة إلى بعض السكريبتات لإنشائها! المصدر: https://gist.github.com/jymcheong/22c2eede978c8eb694945e3347c20c6b
مع بيئات التطوير المتكاملة مثل Visual Studio Code (أو ما يعادلها)، يمكنك الاستفادة من مراقبة المتغيرات أثناء التصحيح، تنفيذ السكريبت خطوة بخطوة أو حتى تعديل السكريبت أثناء التصحيح/التنفيذ بعد معرفة هيكل القيم المعادة. وثائق REST API موجودة لـ Empire، لكن في بعض الأحيان لا نعرف بالضبط القيم المعادة حتى نقوم بتشغيل الوحدة النمطية. لهذا السبب، يقودنا إلى الموضوع التالي.
بقدر ما نريد القيام بكل شيء في IDE، ستحتاج إلى وحدة تحكم. مؤلف DeathStar، كان يعرف ذلك بالفعل أثناء تطوير ذلك السكريبت الذي يقوم بأتمتة السيطرة على مسؤول المجال باستخدام Empire. استعرت فكرته لكني عدلت منهجية الخيوط الخاصة به لـ Empire 2.1 نظرًا لأن منهجيته لن تعمل مع دالة بدء واجهة RESTful المعاد هيكلتها. المصدر: https://gist.github.com/jymcheong/6a7668ecf73c29dd1d234d1c76ef438c
ليست هناك حاجة لاختراق سكريبت Empire لأن Empire 2.2 يحتوي على معالج حلقة الأوامر أثناء تشغيل وضع REST. ومع ذلك، لا تتفاعل مع الوكيل أثناء استخدام API للحصول على نتائج الوكيل.
تحية لـ @radioboyQ لـ EmpireAPIWrapper، و @allfro و @Mikaayenson لـ pymetasploit، و @byt3bl33d3r، MTFBWU.