
Empire هو عميل ما بعد الاستغلال مكتوب بلغة PowerShell وPython.

Invoke-Obfuscation هي أداة تعقيم (obfuscator) لأوامر ونصوص PowerShell متوافقة مع PowerShell v2.0+.
في خريف عام 2015، قررت البدء في البحث عن مرونة لغة PowerShell وبدأت في فهرسة الطرق المختلفة لتنفيذ مجموعة من التقنيات الشائعة التي يستخدمها معظم المهاجمين بشكل منتظم.
في البداية ركزت على صيغ الأوامر المشفرة وصيغ تحميل عن بعد (remote download cradles)، واكتشفت أن العديد من أحرف الهروب التي لم تعيق تنفيذ الأمر استمرت في وسائط سطر الأوامر، سواء في العملية الجارية أو في ما يتم تسجيله في سجلات الأحداث Security EID 4688 و Sysmon EID 1. قادني هذا إلى استكشاف منهجي لطرق تعقيم كل نوع من "الرمز" (token) الموجود في أي أمر أو نص PowerShell.
ثم استكشفت طرقًا أكثر غموضًا لأداء تعقيم على مستوى السلاسل النصية، وتقنيات ترميز/تشفير مختلفة (مثل ASCII/hex/octal/binary وحتى SecureString)، وأخيرًا تقنيات إطلاق PowerShell لتجريد وسائط سطر الأوامر من powershell.exe ودفعها مرة أخرى إلى العملية الأم وحتى العملية الجد.
بدأ المهاجمون والبرامج الضارة العامة في استخدام تقنيات تعقيم أساسية جدًا لإخفاء معظم الأمر من وسائط سطر الأوامر لـ powershell.exe. قمت بتطوير هذه الأداة لمساعدة الفريق الأزرق (Blue Team) في محاكاة الأوامر المعقمة بناءً على ما أعرفه حاليًا أنه ممكن نحويًا في PowerShell 2.0-5.0 حتى يتمكنوا من اختبار قدراتهم على اكتشاف هذه التقنيات.
الغرض الوحيد من الأداة هو كسر أي افتراضات قد تكون لدينا كمدافعين حول كيفية ظهور أوامر PowerShell على سطر الأوامر. أملي أن يشجع ذلك الفريق الأزرق على التحول إلى البحث عن مؤشرات التعقيم (Indicators of Obfuscation) على سطر الأوامر بالإضافة إلى تحديث تسجيل PowerShell ليشمل تسجيل الوحدات (Module) وكتلة البرنامج النصي (ScriptBlock) والنسخ (Transcription) لأن هذه المصادر تبسط معظم جوانب تقنيات التعقيم التي تولدها هذه الأداة.
بينما تم بناء جميع طبقات التعقيم في نصوص منفصلة، سيجد معظم المستخدمين أن وظيفة Invoke-Obfuscation هي أسهل طريقة لاستكشاف وتصور تقنيات التعقيم التي يدعمها هذا الإطار حاليًا.
الكود المصدري لـ Invoke-Obfuscation مستضاف على Github، ويمكنك تنزيله واستنساخه (fork) ومراجعته من هذا المستودع (https://github.com/danielbohannon/Invoke-Obfuscation). يرجى الإبلاغ عن المشكلات أو طلبات الميزات عبر متتبع الأخطاء (bug tracker) الخاص بـ Github المرتبط بهذا المشروع.
للتثبيت:
Import-Module ./Invoke-Obfuscation.psd1
Invoke-Obfuscation
يتم إصدار Invoke-Obfuscation بموجب ترخيص Apache 2.0.
v1.0 - 2016-09-25 DerbyCon 6.0 (لويسفيل، كنتاكي، الولايات المتحدة الأمريكية): الإصدار العام لـ Invoke-Obfuscation.
v1.1 - 2016-10-09 قمة SANS DFIR (براغ، جمهورية التشيك): إضافة وظيفة إعادة ترتيب عامل التنسيق -f إلى جميع وظائف تعقيم TOKEN المطبقة. وكذلك إضافة خيارات صياغة إضافية لتعيين قيم المتغيرات.
v1.2 - 2016-10-20 CODE BLUE (طوكيو، اليابان): إضافة تعقيم Type TOKEN (تحويل النوع المباشر مع خيارات تعقيم النص لاسم النوع).
v1.3 - 2016-10-22 Hacktivity (بودابست، المجر): إضافة اثنين من LAUNCHERs الجدد: CLIP+ و CLIP++. وكذلك إضافة صياغة تحويل أحرف مصفوفة إضافية (وأبسط) لجميع وظائف ENCODING لا تتطلب For-EachObject/%.
v1.4 - 2016-10-28 BruCON (غنت، بلجيكا): إضافة وظيفة BXOR ENCODING جديدة. وكذلك تحسين حالة التوزيع العشوائي لجميع مكونات جميع وظائف ENCODING وكذلك لأعلام تنفيذ PowerShell لجميع LAUNCHERs. أخيرًا، إضافة خيار الاختصار -EP لـ -ExecutionPolicy إلى جميع LAUNCHERs بالإضافة إلى التمثيل الصحيح الاختياري لعلم تنفيذ PowerShell -WindowStyle: عادي (0)، مخفي (1)، مصغر (2)، مكبر (3).
v1.5 - 2016-11-04 Blue Hat (ريدموند، واشنطن، الولايات المتحدة الأمريكية): إضافة WMIC LAUNCHER مع بعض التوزيع العشوائي لوسائط سطر أوامر WMIC.
v1.6 - 2017-01-24 Blue Hat IL (تل أبيب، إسرائيل):
v1.7 - 2017-03-03 nullcon (غوا، الهند):
v1.8 - 2017-07-27 Black Hat (لاس فيغاس، نيفادا، الولايات المتحدة الأمريكية):