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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
convoC2 — بنية تحتية لـ C2 عبر Microsoft Teams. | Kitploit
أدوات/GitHubGitHub/cxnturi0n/convoc2
آليات الاستمراريةالتهرب من IDS/IPSتسريب البياناتما بعد الاستغلالاختبار الاختراقالقيادة والسيطرةالفريق الأحمرأداة الوصول عن بعدتطوير الحمولات
GitHubcxnturi0n/convoc2

convoC2

بنية تحتية لـ C2 عبر Microsoft Teams.

759119منذ سنة واحدةتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

convoC2

جدول المحتويات

  • مقدمة
  • عرض توضيحي
  • الاستخدام
  • المتطلبات
  • الإلهام
  • المساهمة

مقدمة

بنية تحتية للقيادة والتحكم (Command and Control) تتيح لفِرَق الاختبار الأمني (Red Teamers) تنفيذ أوامر النظام على الأجهزة المخترقة عبر Microsoft Teams.
تقوم بحقن البيانات داخل وسوم span مخفية في رسائل Microsoft Teams، وتستخرج مخرجات الأوامر عبر عناوين URL للصور في Adaptive Cards، مما يُطلق طلبات خارج النطاق (out-of-bound) إلى خادم C2.
إن غياب الاتصال المباشر بين الضحية والمهاجم، إلى جانب حقيقة أن الضحية لا ترسل سوى طلبات http إلى خوادم Microsoft وأن برامج مكافحة الفيروسات لا تفحص ملفات سجل MS Teams، يجعل الكشف أكثر صعوبة.

convoC2-Architecture

عرض توضيحي

يوضح الفيديو التالي استخدام الخادم للتحكم في جهازين مخترقين: أحدهما يعمل بنسخة Teams الجديدة على Windows 11 والآخر يعمل بنسخة Teams القديمة على Windows 10. في الحالة الأولى، لا يكون المهاجم في نفس المؤسسة التي تنتمي إليها الضحية.

https://github.com/user-attachments/assets/d9fcccc1-de73-49cd-aaa7-df53303dbc6a

ملاحظة: في الحالة الأولى، سبق أن قبلت الضحية الدردشة مع المهاجم الخارجي، لكن في سيناريو حقيقي يبدأ فيه المهاجم الدردشة مع الضحية لأول مرة، ستحتاج الضحية إلى تأكيد الدردشة مع المهاجم (رغم أنه يمكن تجاوز رسالة التنبيه هذه بسهولة، انظر هنا). هذه ليست مشكلة: لأن الرسائل تُخزَّن مؤقتًا في ملف السجل على أي حال، فإن الأوامر تُستقبَل وتُنفَّذ حتى لو لم تكن الضحية قد شاهدت الدردشة أو قبلتها بعد.

الاستخدام

الخادم

wget https://github.com/cxnturi0n/convoC2/releases/download/v0.1.0-alpha/convoC2_server_amd64.tar.gz
tar -xzvf convoC2_server_amd64.tar.gz --one-top-level
root@convoC2-server-VPS:~# ./convoC2_server_amd64 -h
Usage of convoC2 server:
  -t, --msgTimeout  How much to wait for command output (default 30 s)
  -b, --bindIp      Bind IP address (default 0.0.0.0)

الوكيل

wget https://github.com/cxnturi0n/convoC2/releases/download/v0.1.0-alpha/convoC2_agent.tar.gz
tar -xzvf convoC2_agent.tar.gz --one-top-level
C:\Windows>convoC2_agent.exe -h
Usage of convoC2 agent:
  -v, --verbose   Verbose logging (default false)
  -s, --server    C2 server URL (i.e. http://10.11.12.13/)
  -t, --timeout   Teams log file polling timeout [s] (default 1)
  -w, --webhook   Teams Webhook POST URL
  -r, --regex     Regex to match command (default "<span[^>]*aria-label=\"([^\"]*)\"[^>]*></span>")

المتطلبات

للحصول على عملها، ستحتاج إلى إعداد بعض الأشياء:

  • إنشاء قناة Teams باستخدام Workflow Incoming Webhook: هذا هو المكان الذي ستُستقبل فيه البطاقات التكيفية التي تحتوي على المخرجات. من المهم إبقاء نافذة متصفح مع هذه القناة مفتوحة أثناء استخدام الخادم، وإلا فلن يتلقى الخادم الرسائل من الوكلاء.

WebhookChannel

  • جلب المعرّفات ورمز المصادقة: يقوم Teams بتهيئة محادثة عبر طلب POST إلى https://teams.microsoft.com/api/chatsvc/emea/v1/threads مع المعرّفات الفريدة للضحية والمهاجم في جسم الطلب. في الاستجابة، سيُعاد threadId في مسار عنوان ترويسة Location. يُستخدم رمز Bearer لنفس الطلب للمصادقة على https://teams.microsoft.com/api/chatsvc/emea/v1/users/ME/conversations/<threadId>/messages، وهو نقطة النهاية لإرسال الرسائل. لذا نحتاج فقط إلى التقاط هذه الأشياء الثلاثة وسيتولى الخادم الباقي.
  • تأكد من امتلاكك مضيفًا عامًا (public facing) يسمح بحركة مرور HTTP الواردة على المنفذ 80.
  • يجب أن يكون Teams قيد التشغيل على مضيف الضحية، وفي الخلفية لا بأس أيضًا.

بعد تشغيل الخادم يمكنك استقبال وكلاء جدد والتحكم بهم، باستخدام البيانات التي حصلت عليها سابقًا للمصادقة. راجع العرض التوضيحي للحصول على مثال على الاستخدام.

إنشاء قناة Teams باستخدام Workflow Incoming Webhook

أولًا وقبل كل شيء، ستحتاج إلى إنشاء قناة Teams.

CreateTeams

انقر بزر الفأرة الأيمن على النقاط الثلاث، ثم انقر على "Workflows".

CreateTeams_1

في شريط البحث اكتب "Webhook" وانقر على "Post to a channel when a webhook request is received".

CreateTeams_5

تابع بالإعدادات الافتراضية وأخيرًا انسخ الرابط.

Create_Teams_6

جلب المعرّفات ورمز المصادقة

ابدأ بالبحث عن الضحية.

GetOrgIds

بعد اختيار حساب الضحية، مع اعتراض الوكيل (proxy) للطلبات، يمكنك إرسال رسالة وهمية.

GetOrgIds_1

احفظ المعرّفين الموجودين في طلب api/chatsvc/emea/v1/threads ثم DROP الطلب. سيكون رمز المصادقة هو رمز Bearer لنفس الطلب.

GetOrgIds_2

الإلهام

استُلهمت هذه البنية التحتية من بحث Teams GIFShell الذي أجراه Bobbyrsec.
في البداية كان هدفي تكرار المشكلة، لكن يبدو أن الحل قد تم إصلاحه جزئيًا. تضمّن البحث حقن أوامر داخل صور GIF المُرمّزة بـ Base64، لكن هذه لم تعد تُعرض بشكل صحيح: كانت تظهر أيقونة صورة تالفة في المحادثة بدلًا من ذلك، مما قد يجعل الضحية يبدأ في الشك.
بعد اختبار طرق متعددة، لاحظت أنه كان من الممكن تضمين الأوامر مباشرة في الرسائل بدلًا من صور GIF أو الصور: إرسال صور متعددة أكثر عرضة لإثارة الشك مقارنة بإرسال رسائل بسيطة، أليس كذلك؟ في البداية فكّرت في تضمين الأوامر في وسوم مثل <script> أو <meta> أو وسوم مخصصة، لكن جميعها تمت تصفيتها. في النهاية، نجح تضمين الأوامر في خاصية aria-label لوسوم <span> مع display:none: لن يرى الضحية سوى الرسالة، لكن الأمر المخفي سيلوّث في الواقع ملف سجل Teams.

TeamsLogPoisoning

تم تطوير واجهة المستخدم النصية (TUI) للخادم باستخدام إطار عمل Go الرائع BubbleTea.

المساهمة

إذا وجدت أخطاء أو أردت تحسين المشروع، فلا تتردد في فتح طلب سحب (pull request) وسيسعدني مراجعة تغييراتك ودمجها في النهاية. المهام قصيرة المدى هي:

  • تشفير الرسائل باستخدام AES
  • Keepalive للكشف عن توقف الوكيل (agent)
  • نسخة PowerShell من الوكيل (Agent)
تنزيل الأداة