يدعم وكيل Nimbo-C2 أنظمة x64 Windows & Linux. كُتب بلغة Nim، مع بعض استخدام .NET على Windows (عن طريق تحميل CLR ديناميكيًا إلى العملية). Nim قوية، لكن التفاعل مع Windows أسهل وأكثر قوة باستخدام Powershell، لذلك تم عمل هذا المزيج. وكيل Linux أنحف وقادر فقط على الأوامر الأساسية، بما في ذلك تحميل ELF باستخدام تقنية memfd.
جميع مكونات الخادم مكتوبة بلغة Python:
مستمع HTTP الذي يدير الوكلاء.
باني يولد حمولات الوكيل.
Nimbo-C2 هو مكون C2 التفاعلي الذي يحكمهم جميعًا!
لم يكن عملي ممكنًا بدون العمل العظيم السابق الذي قام به الآخرون، المذكورون تحت الشكر والتقدير.
حزم الحمولات باستخدام UPX وإخفاء أسماء أقسام PE (UPX0, UPX1) لجعل الاكتشاف وفك الحزم أصعب.
اتصال HTTP مشفر (AES في وضع CBC، المفتاح مضمن في الوكيل وقابل للتعديل بواسطة config.jsonc).
إكمال تلقائي في وحدة تحكم C2 لتفاعل مريح.
أوامر الملفات والتسجيل.
تنفيذ أوامر Powershell في الذاكرة.
أوامر تحميل وتنزيل الملفات.
أوامر اكتشاف مدمجة.
التقاط الشاشة، سرقة الحافظة، تسجيل الصوت، وراصف المفاتيح.
تصحيح ETW & AMSI باستخدام استدعاءات النظام غير المباشرة.
تفريغ تجزئة LSASS و SAM.
حقن شيل كود باستخدام استدعاءات النظام غير المباشرة.
تنفيذ تجميعات .NET المضمنة.
قدرات الاستمرارية.
طرق تجاوز UAC.
انتحال الرمز والحصول على النظام.
جعل عملية الوكيل حرجة (شاشة الموت الزرقاء عند الإنهاء).
(Linux) تحميل ELF باستخدام memfd في وضعين.
والمزيد!
التثبيت
تحذير: Nimbo-C2 مخصص للتشغيل فقط داخل حاوية Docker المقدمة
الطريقة السهلة
لاحظ أن التثبيت بهذه الطريقة قد يسبب مشاكل أو عدم توافق في المستقبل لأن صورة Docker الآن لا تفرض إصدارات اللغات والمكتبات، لذا فكر في الانتقال إلى الطريقة التالية.
استنساخ المستودع والدخول إليه
root@kitploit:~
git clone https://github.com/itaymigdal/Nimbo-C2
cd Nimbo-C2
بناء صورة Docker
root@kitploit:~
docker build -t nimbo-dependencies .
الدخول مرة أخرى إلى ملفات المصدر وتشغيل صورة Docker بشكل تفاعلي، كشف المنفذ 80 وتثبيت دليل Nimbo-C2 في الحاوية (حتى تتمكن من الوصول بسهولة إلى جميع ملفات المشروع، وتعديل config.jsonc، وتنزيل ورفع الملفات من الوكلاء، إلخ). بالنسبة لأنظمة Linux استبدل ${pwd} بـ $(pwd).
root@kitploit:~
cd Nimbo-C2
docker run -it --rm -p 80:80 -v ${pwd}:/Nimbo-C2 -w /Nimbo-C2 nimbo-dependencies
الطريقة الأسهل
هنا نستخدم صورة Docker المُبنية والمختبرة والمخزنة بالفعل - موصى به.
root@kitploit:~
git clone https://github.com/itaymigdal/Nimbo-C2
cd Nimbo-C2/Nimbo-C2
docker run -it --rm -p 80:80 -v ${pwd}:/Nimbo-C2 -w /Nimbo-C2 itaymigdal/nimbo-dependencies
بالنسبة لأنظمة Linux استبدل ${pwd} بـ $(pwd).
الاستخدام
أولاً، قم بتعديل config.jsonc حسب احتياجاتك.
ثم قم بالتشغيل باستخدام: python3 Nimbo-C2.py
استخدم الأمر help لكل شاشة، وإكمال التبويب.
القيود والتحذيرات والملاحظات
على الرغم من أن اتصال HTTP مشفر، إلا أن رأس 'user-agent' يكون بنص واضح ويحمل معرف الوكيل الحقيقي، مما قد يجعله مشبوهًا لدى بعض المنتجات.
قم بتغليف المسارات أو الوسائط التي تحتوي على مسافات بعلامتي اقتباس مزدوجتين.
CLR يعمل مع رمز الوصول الأساسي لذلك impersonate/getsys لا يؤثران على iex/assembly.
audio، أوامر lsass (باستثناء طريقة Evil Lsass Twin) تحفظ مؤقتًا القطع الأثرية على القرص قبل تسريبها وحذفها.
إذا قمت بنفق خادم Nimbo (مثلاً عن طريق تعريضه عبر Pinggy)، استخدم TCP، وليس HTTP.
المساهمة
قد يكون هذا البرنامج مشوشًا أو غير مستقر في بعض حالات الاستخدام لأنه لم يتم اختباره بشكل كامل ومستمر.
لا تتردد في فتح المشكلات (issues)، وطلبات السحب (PR's)، والاتصال بي لأي سبب على (Gmail | Linkedin)