
حقن تجميعات .NET في عملية موجودة
هذه الأداة هي بديل عن التنفيذ التقليدي للفورك والتشغيل لـ Cobalt Strike. يمكن حقن المُحمل في أي عملية، بما في ذلك Beacon الحالي. ستستمر التجميعات طويلة التشغيل في العمل وإرسال المخرجات مرة أخرى إلى Beacon، على غرار سلوك execute-assembly.
هناك مكونان لـ inject-assembly:
مُهيئ BOF: برنامج صغير مسؤول عن حقن مُحمل التجميع في عملية بعيدة مع أي وسائط تم تمريرها. يستخدم BeaconInjectProcess لأداء الحقن، مما يعني أنه يمكن تخصيص هذا السلوك في ملف تعريف C2 malleable أو مع BOFs حقن العمليات (اعتبارًا من الإصدار 4.5).
مُحمل تجميع PIC: الجزء الأكبر من المشروع. سيقوم المُحمل بتهيئة بيئة تشغيل .NET، وتحميل التجميع المقدم، وتنفيذ التجميع. سيقوم المُحمل بإنشاء AppDomain جديد في العملية الهدف بحيث يمكن إلغاء تحميل التجميع المحمل بالكامل عند اكتمال التنفيذ.
يحدث الاتصال بين العملية البعيدة و Beacon عبر أنبوب مسمى (named pipe). يقوم سكريبت Aggressor بإنشاء اسم أنبوب ثم يمرره إلى مُهيئ BOF.
تنزيل وتحميل سكريبت Aggressor inject-assembly.cna إلى Cobalt Strike. يمكنك بعد ذلك تنفيذ التجميعات باستخدام الأمر التالي:
inject-assembly pid assembly [args...]
حدد 0 كـ PID للتنفيذ في عملية Beacon الحالية.
يُوصى باستخدام أداة أخرى، مثل FindObjects-BOF، لتحديد موقع عملية تقوم بالفعل بتحميل بيئة تشغيل .NET، ولكن هذا ليس شرطًا لعمل inject-assembly.
jobkill.لم يكن هذا المشروع ممكنًا لولا المشاريع التالية:
تم أخذ ميزات وإلهام أخرى من المصادر التالية: