Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
OneDrive-UDC2 — OneDrive كوسيلة نقل C2 خفية لـ Cobalt Strike | Kitploit
أدوات/GitHubGitHub/nmht3t/onedrive-udc2
أدوات دفاعيةأطر اختبار الاختراقما بعد الاستغلالأمن السحابةالقيادة والسيطرةالفريق الأحمرتطوير الحمولات
GitHubnmht3t/onedrive-udc2

OneDrive-UDC2

OneDrive كوسيلة نقل C2 خفية لـ Cobalt Strike

عرض المستودع
34843منذ 5 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

OneDrive UDC2

قناة C2 معرّفة من قبل المستخدم في Cobalt Strike تستخدم OneDrive كطبقة نقل.

Architecture

ما تحتاجه

  • مستأجر Microsoft Entra ID مع مستخدم يمتلك OneDrive for Business.
  • تسجيل تطبيق مع إذن التطبيق Files.ReadWrite.All.

الإعداد

1. تسجيل تطبيق

في Azure Portal، انتقل إلى App registrations وأنشئ تطبيقًا جديدًا:

  • Account type: Single tenant.
  • Redirect URI: اتركه فارغًا.

دوّن tenant ID وclient ID من صفحة النظرة العامة.

2. إضافة إذن Graph

ضمن API permissions:

  1. أضف Microsoft Graph، ثم Application permissions، ثم Files.ReadWrite.All.
  2. انقر على Grant admin consent.

3. إنشاء سر العميل

ضمن Certificates & secrets، أنشئ سرًا جديدًا وانسخ قيمته.

4. إنشاء مجلدات OneDrive

في OneDrive الخاص بالمستخدم، أنشئ مجلدين، واحد لصندوق الوارد وواحد لصندوق الصادر (مثل c2inbox وc2outbox).

5. الحصول على معرّفات drive والمجلدات

افتح Graph Explorer، سجّل الدخول بذلك المستخدم، ونفّذ:

root@kitploit:~
GET https://graph.microsoft.com/v1.0/me/drive/root/children

احصل على id لكل مجلد وdriveId من أي إدخال في استجابة JSON.

البناء

root@kitploit:~
cp server/config.json.example server/config.json

املأ server/config.json:

ثم ابنِ العميل:

root@kitploit:~
make

التشغيل

ابدأ الـ relay (استخدم screen أو tmux ليبقى يعمل إذا انقطع اتصال الطرفية):

root@kitploit:~
python3 server/relay.py --config server/config.json --ts-addr <teamserver-ip> --ts-port <udc2-port>

في Cobalt Strike، أنشئ مستمع UDC2 على نفس المنفذ وحمّل client/bof.o.

خيارات Relay

ملف الحالة و spool والقفل

ينشئ الـ relay بعض الملفات بجانب الإعدادات الخاصة بك لتتبع الأمور بين عمليات إعادة التشغيل:

  • ملف الحالة (config.json.state.json) - يتتبع ملفات صندوق الوارد التي تمت معالجتها، والتحميلات المعلّقة، ومعلومات جلسة الـ beacon. عيّن مسارًا مخصصًا باستخدام --state.
  • مجلد spool (config.json.state.json.spool/) - يحتوي على بيانات الاستجابة التي لم يتم تحميلها إلى OneDrive بعد. إذا تعطّل الـ relay أثناء التحميل، يحتفظ الـ spool بالبيانات ليتمكن من إعادة المحاولة عند التشغيل التالي.
  • ملف القفل (config.json.state.json.lock) - يمنع تشغيل نسختين من الـ relay على نفس الحالة. إذا رأيت Another relay holds the lock ولا يوجد relay آخر يعمل، فالقفل قديم من تعطّل سابق.

إعادة تعيين حالة الـ relay

إذا تلفت الحالة المحلية للـ relay أو كان قفل قديم يمنع بدء التشغيل، استخدم --clean لمسح ملف الحالة ومجلد spool ليبدأ الـ relay من جديد:

root@kitploit:~
python3 server/relay.py --config server/config.json --clean

يُحتفظ بملف القفل. لن يقوم الـ relay بالتنظيف أثناء تشغيل نسخة أخرى. عند التشغيل العادي التالي يعيد التهيئة ويتخطى أي ملفات في صندوق الوارد أقدم من 30 دقيقة.

يمكنك أيضًا إعادة التعيين يدويًا بحذف ملف الحالة ومجلد spool بنفسك. إذا كان ملف القفل قديمًا (لا يوجد relay يعمل)، احذفه أيضًا.

عرض توضيحي

POC

المراجع

  • Cobalt Strike UDC2 docs
  • Cobalt Strike ICMP UDC2
  • WKL Slack UDC2
تنزيل الأداة
FieldValue
tenant_idMicrosoft Entra ID tenant ID
client_idApplication client ID
client_secretClient secret value
drive_idOneDrive drive ID
inbox_folder_idInbox folder ID
outbox_folder_idOutbox folder ID
FlagDescription
--configالمسار إلى config.json (مطلوب)
--ts-addrعنوان IP الخاص بـ Teamserver
--ts-portمنفذ مستمع UDC2
--pollفترة الاستقصاء بالثواني (الافتراضي 2.0)
--stateالمسار إلى ملف الحالة (الافتراضي: <config>.state.json)
--debugتفعيل تسجيل التصحيح
--cleanحذف ملف الحالة ومجلد spool، ثم الخروج