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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
azureOutlookC2 — Azure Outlook Command & Control (C2) - التحكم عن بُعد في جهاز ويندوز مخترق من صندوق بريد Outlook الخاص بك. أداة محاكاة تهديد لمجموعة كوريا الشمالية APT InkySquid / ScarCruft / APT37. TTP: استخدام Microsoft Graph API لعمليات القيادة والتحكم (C2). | Kitploit
أدوات/GitHubGitHub/boku7/azureoutlookc2
أمن السحابةالقيادة والسيطرةالفريق الأحمرتطوير الحمولاتأمن واجهات برمجة التطبيقات
GitHubboku7/azureoutlookc2

azureOutlookC2

Azure Outlook Command & Control (C2) - التحكم عن بُعد في جهاز ويندوز مخترق من صندوق بريد Outlook الخاص بك. أداة محاكاة تهديد لمجموعة كوريا الشمالية APT InkySquid / ScarCruft / APT37. TTP: استخدام Microsoft Graph API لعمليات القيادة والتحكم (C2).

عرض المستودع
504100منذ 3 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

Azure Outlook C2

Azure Outlook Command & Control الذي يستخدم Microsoft Graph API للاتصالات C2 وتسريب البيانات.

التحكم عن بُعد في جهاز ويندوز مخترق من صندوق بريد Outlook الخاص بك.

المنشئون: Bobby Cooke (@0xBoku) & Paul Ungur (@C5pider)

تحديث معلومات التهديدات (13/02/22)

اكتشفت Elastic Security Labs اختراقات نشطة في البرية تستخدم SIESTAGRAPH. يتفاعل SIESTAGRAPH مع Microsoft GraphAPI للتحكم والأوامر باستخدام Outlook وOneDrive. اطّلع على مدونات تحليل البرمجيات الخبيثة الرائعة الخاصة بهم حول اتصالات Azure Outlook C2 أدناه.

  • https://www.elastic.co/security-labs/siestagraph-new-implant-uncovered-in-asean-member-foreign-ministry
  • https://www.elastic.co/security-labs/update-to-the-REF2924-intrusion-set-and-related-campaigns

تحديث (27/09/21)

  • Azure Outlook C2 الآن يحتوي على واجهة مستخدم رسومية (GUI) متعددة المنصات!
  • شكر كبير لـ Paul Ungur (@C5pider) لتعليمي كيفية إنشاء واجهة C2 رسومية باستخدام QT!

التحكم في جهاز كمبيوتر عبر صندوق بريد Outlook باستخدام واجهة C2 الرسومية

التحكم في جهاز كمبيوتر عبر صندوق بريد Outlook

  • التحديث يدعم التحكم الأصلي عبر صندوق بريد Outlook.

إذا كانت لديك أي معلومات حول مشاريع مماثلة، أو معلومات استخباراتية عن التهديدات (CTI) حول استخدام هذا الأسلوب (TTP) في البرية من قبل مجموعات APT / ransomware، أو نصائح دفاعية، أو توصيات لمختبرين أحمر مهتمين بمحاكاة التهديدات على Azure C2، أو أي معلومات أخرى ستكون إضافة جيدة لهذه المدونة/README، يُرجى الاتصال بي أو تقديم طلب سحب (Pull Request). شكراً لك!

حول Azure Outlook C2

يتكون هذا المشروع من إمبلانت (implant) يرسل إشارات (beacons) إلى صندوق بريد Azure Outlook يتحكم به المهاجم، والذي يعمل كقائد وأوامر (C2)؛ للتحكم عن بُعد في الجهاز المخترق. يتم تضمين رمز تحديث Azure (Refresh Token) لصندوق البريد C2 الخاص بالمهاجم بشكل ثابت (hard-coded) في الإمبلانت أثناء التجميع. عند التنفيذ على جهاز ويندوز، يصل الإمبلانت إلى صندوق المسودات (Drafts mailbox) الخاص بالمهاجم عبر Microsoft Graph API. يقرأ الإمبلانت تعليمات الأوامر من صندوق المسودات الخاص بالمهاجم، وينفذ الأوامر محلياً على جهاز ويندوز المخترق، ويعيد مخرجات الأمر إلى المهاجم عن طريق إنشاء رسائل مسودة جديدة. يكرر الإمبلانت هذا السلوك للتحكم عن بُعد من صندوق بريد المهاجم حتى يتم إنهاء عملية المضيف (host process) التي تعمل عليها الإمبلانت.

لماذا بنيت هذا

بدأت مؤخراً في العمل كفريق أحمر (Red Teaming) منذ حوالي نصف عام ضمن فريق SpiderLabs Red Team في Trustwave. خلال أحد المهام، تشرفت بالعمل مع الأسطورة Stephan Borosh (rvrsh3ll|@424f424f). علمني ستيف و Matt Kingstone كل شيء عن Azure Domain Fronting، واندهشت من أن حركة مرور القيادة والتحكم يمكن تسريبها عبر HTTPS باستخدام نطاقات شرعية مثل ajax.microsoft.com. بل ويستخدم شهادات TLS الخاصة بمايكروسوفت! لسوء حظي، بدأت العمل كفريق أحمر في نفس الوقت الذي مات فيه Domain Fronting على Azure. على الرغم من موت Domain Fronting على Azure، لا يزال هناك العديد من تقنيات الفريق الأحمر الرائعة التي يمكن القيام بها باستخدام Azure.

عرّفني ستيف على التصيد برمز الجهاز (Azure Device Code Phishing). خلال هذا الوقت، تعمقت في Azure و Microsoft Graph API لأعمال الفريق الأحمر. أنشأنا أداة TokenTactics، المستمدة من العمل الرائع للدكتور Nestori Syynimaa (@DrAzureAD)، وقمنا بنشر مدونة The Art of the Device Code Phish إذا كنت مهتماً بمنهجيتنا.

أثناء إنشاء TokenTactics وتجربة MS Graph API، اكتشفت أنه من الممكن استخدام Microsoft Graph API كقناة C2. هناك العديد من الطرق المختلفة لاستخدام MS Graph API كقناة C2، ولست الشخص الوحيد (أو الأول) الذي اكتشف هذا. VX-Underground، الذي أنشأه @smelly__vx - مبتكر وناشر تقنية HellsGate، نشر معلومات الشهر الماضي تفيد بأن مجموعة التهديدات المتقدمة الكورية الشمالية (APT) "InkySquid" (المعروفة أيضاً بـ ScarCruft و APT37) تستخدم Microsoft Graph API في عمليات C2. بعد إطلاق معاينة لهذا المشروع على Twitter و LinkedIn، علق العديد من محترفي DFIR بأن هذه التقنية لاستخدام Microsoft Graph API في عمليات C2 تُستخدم بنشاط من قبل مجموعات ransomware في البرية، ويعود تاريخها إلى شهور مضت.

خلال مهمة الفريق الأحمر، حاولت جعل Cobalt Strike يعمل مع MS Graph API كقناة C2. لسوء الحظ، فشلت، ولكن هذا لا يزال هدفاً مستقبلياً. المشكلة التي واجهتها لجعل هذا يعمل مع Cobalt Strike هي أن MS Graph API يستخدم رمزين للاتصالات. الرمز الأول هو رمز التحديث (Refresh Token) والذي يمكن أن يستمر لمدة تصل إلى 90 يوماً. الرمز الثاني، رمز الوصول (Access Token)، هو رمز مؤقت يستمر لمدة ساعة تقريباً. تتم الاتصالات المباشرة مع MS Graph API عبر المصادقة باستخدام رمز الوصول. بمجرد انتهاء صلاحية رمز الوصول، يمكن استخدام رمز التحديث للحصول على رموز وصول جديدة. نظراً لأني لا زلت جديداً في الفريق الأحمر وتطوير Cobalt Strike، لم أستطع معرفة كيفية استخدام ملف تعريف C2 القابل للتشكيل (Malleable C2 profile) الخاص بـ Cobalt Strike لدعم الحصول المستمر على رموز وصول جديدة وإرسال رموز الوصول المتغيرة هذه في رأس Authorization لطلبات beacon الخاصة بـ HTTPS. منذ إصدار المعاينة على Twitter، أعطاني Joe Vest، و Alfie Champion، وغيرهم من نجوم المجتمع بعض التوجيهات الملحمية حول كيفية جعل هذا يعمل مع Cobalt Strike! آمل أن يكون هناك متابعة لـ Cobalt Strike لهذا المشروع في المستقبل ;)

سير تنفيذ الإمبلانت

  1. الحصول على رمز وصول (Access Token) لـ MS Graph API باستخدام رمز التحديث (Refresh Token) الثابت للمهاجم.
  • يتم ذلك عبر اتصالات HTTPS TCP بالمضيف graph.microsoft.com.
  • هذه الحركة مشفرة باستخدام شهادة TLS المعادة من خادم Microsoft الشرعي.
  • يستخدم الإمبلانت مكتبة WinInet Dynamic-link لاتصالات HTTPS.
  • يجب أن يكون رمز التحديث الثابت للمهاجم صالحاً لمدة 90 يوماً.
    • إذا تم اختراق الإمبلانت، يمكن للمهاجم إلغاء رمز التحديث الثابت لتقييد الوصول من مهندسي الهندسة العكسية للبرمجيات الخبيثة.
  1. بعد أن يتلقى الإمبلانت رمز وصول لـ MS Graph API الخاص بالمهاجم، يدخل الإمبلانت في حلقة لا نهائية.
  • إذا لم يكن هناك اتصال بالإنترنت أو تم قطع الاتصال أثناء الحلقة، سينام الإمبلانت لمدة 3 دقائق ويحاول مرة أخرى.
  • يتتبع الإمبلانت الوقت، وإذا مرت 15 دقيقة، سيحصل على رمز وصول جديد لمواصلة الاتصالات.
  1. المهمة الأولى في الحلقة هي استخدام رمز الوصول لـ MS Graph API للوصول إلى صندوق المسودات الخاص بالمهاجم وقراءة أحدث رسالة للأوامر التي سيتم تنفيذها على جهاز ويندوز المخترق.
  • تم اختيار صندوق المسودات لأنه بهذه الطريقة لن يتم إرسال أي رسائل بريد إلكتروني عبر SMTP.
  1. بمجرد استلام الأمر، يتم تحليله لتحديد الأمر الوصفي (meta command) الذي سيتم تنفيذه. يوجد حالياً 3 أوامر وصفية: cmd، sleep، exit
  • cmd: يأخذ السلسلة التالية بعد الأمر الوصفي وينفذها عن طريق إنشاء عملية فرعية (child process).
  • sleep: يأخذ الكلمة التالية بعد الأمر الوصفي ويغير فترة نوم الإمبلانت إلى القيمة المقدمة (بالمللي ثانية).
  • exit: يخرج/يقتل عملية المضيف.
  1. إذا كان الأمر الوصفي هو cmd، سيقوم الإمبلانت بإنشاء عملية فرعية لتنفيذ الأمر، وستكتب العملية الفرعية إخراجها القياسي إلى أنبوب (pipe)، وتخرج العملية الفرعية بعد تنفيذ الأمر، وستقرأ عملية المضيف للإمبلانت مخرجات العملية الفرعية عبر الأنبوب.
  2. بعد حصول الإمبلانت على مخرجات الأمر المنفذ، سيستخدم الإمبلانت MS Graph API لإنشاء بريد إلكتروني مسودة جديد يحتوي على مخرجات الأمر.
  3. سيقوم الإمبلانت بعد ذلك بإنشاء بريد إلكتروني مسودة ثانٍ بجسم فارغ.
  • هذا يسمح بتسجيل مخرجات الأمر داخل صندوق المسودات الخاص بالمهاجم.
  • هذا يصطف للمهاجم رسالة مسودة جديدة لإدخال الأمر التالي الذي سينفذه الإمبلانت.
  1. بعد تنفيذ الأمر وإعادة المخرجات إلى المهاجم، سينام الإمبلانت لمدة يتحكم فيها المهاجم، ثم يكرر هذه الحلقة.

التعليمات

  1. قم بإعداد البنية التحتية للفريق الأحمر على Azure التي ستستخدم كقائد وأوامر باتباع مقالتي The Art of the Device Code Phish لإعداد:
  • اشتراك حساب Azure
    • عند إنشاء حساب Azure، ساعد فريق DFIR في Microsoft من خلال إسناد حسابك إلى مؤسسة فريقك الأحمر. هذا يساعد في توفير الوقت لفريقهم عند التحقيق فيما إذا كنت تهديداً حقيقياً، أو تقدم خدمات محاكاة التهديد، أو تجري أبحاثاً أمنية هجومية.
    • انظر Nick Carr- Lead, Cyber Crime Intelligence / Investigations @Microsoft لمزيد من الرؤى.
  • مستأجر Azure Active Directory
  • Office 365 لـ Azure Active Directory
  • إنشاء مستخدم لصندوق بريد Outlook للقيادة والتحكم
  • تثبيت وحدة PowerShell الخاصة بـ TokenTactics
  1. استخدم TokenTactics للحصول على معرف المستأجر (Tenant ID) لـ Azure AD الذي أنشأته للتو:
root@kitploit:~
PS C:\Users\boku\Desktop\TokenTactics-main> Import-Module .\TokenTactics.psd1
PS C:\Users\boku\Desktop\TokenTactics-main> Get-TenantID -domain theharvester.world
1d5551a0-f4f2-4101-9c3b-394247ec7e08
  1. أضف معرف المستأجر الخاص بك إلى المتغير char tenantId[] داخل ملف azureOutlookC2.c.
  2. احصل على رمز تحديث Azure (Refresh Token) باستخدام TokenTactics لتصيد جهازك برمز الجهاز (device code phish) باستخدام مستخدم صندوق البريد C2:
root@kitploit:~
# استيراد وحدة TokenTactics في جلسة PowerShell
PS C:\Users\boku> cd .\TokenTactics
PS C:\Users\boku\TokenTactics> Import-Module .\TokenTactics.psd1
# بدء طلب تصيد برمز جهاز للحصول على 'user_code'
PS C:\Users\boku> Get-AzureToken -Client Graph
user_code        : ERDVDCNHH
  1. اذهب إلى microsoft.com/devicelogin، أدخل user_code من TokenTactics، وسجل الدخول باستخدام مستخدم صندوق البريد C2.
  2. في جلسة PowerShell التي تعمل عليها TokenTactics، انسخ رمز التحديث (refresh token) من عملية التصيد برمز الجهاز الناجحة على نفسك.
  • إذا كنت بحاجة إلى مزيد من المعلومات حول كيفية عمل TokenTactics، يرجى الاطلاع على The Art of the Device Code Phish
  1. أضف رمز التحديث الخاص بك إلى المتغير char refreshToken[] داخل ملف azureOutlookC2.c.
root@kitploit:~
void main() {
    // Variables
    char refreshToken[] = "0.AXwAoFFVHfL0AUGcOzlCR-x-CNYOWdOzUgJBrv-q0ikqsBx8ACA.AgABAAAAAA...
//                           ^ضع رمز التحديث الخاص بك هنا ثم قم بتجميعه
  1. قم بتجميع azureOutlookC2.c.
root@kitploit:~
# التجميع باستخدام x64 MinGW:
bobby.cooke$ cat compile.sh
x86_64-w64-mingw32-gcc -m64 -mwindows -Os azureOutlookC2.c -o azureOutlookC2.exe -lwininet
bobby.cooke$ bash compile.sh
  1. قم بتنفيذ ملف PE azureOutlookC2.exe على جهاز ويندوز.
  2. كمهاجم من جهاز الكمبيوتر المهاجم، افتح متصفحاً، سجل الدخول إلى outlook.office.com، وتحكم في جهاز ويندوز الذي يعمل عليه الإمبلانت من صندوق بريدك.

أهداف المشروع الأولية

  • إنشاء دليل مفهوم (proof of concept) يعمل ويستخدم Microsoft Graph API كقناة C2 والتحكم في جهاز كمبيوتر من بريدي الإلكتروني.

ما هو هذا المشروع

  • هذا المشروع هو دليل مفهوم، يوضح كيف يمكن للمهاجم استخدام Microsoft Graph API في عمليات C2.
  • هذا المشروع مخصص لباحثي الأمن الهجومي الآخرين للتعلم منه.
  • لم أتوصل شخصياً إلى أي طرق رائعة للدفاع أو اكتشاف قناة C2 هذه. أملي هو أنه من خلال توفير هذا لعقول مدافعة أكبر مني، سينتج عنه بعض التقنيات الدفاعية الرائعة.

ما ليس هذا المشروع

  • هذا المشروع بحد ذاته ليس C2 كامل الوظائف، جاهز لمهام آمنة من حيث OPSEC.

أفكار للكشف والوقاية من المدافعين (لإضافة المزيد، يرجى تقديم طلب سحب)

نصيحة من Mehmet Ergene (@Cyb3rMonk) حول الكشف

  1. "قد تكون فكرة إنشاء خط أساس (baseline) للتطبيقات التي تتصل بـ Graph API والتحقق من الحالات الشاذة. يمكن تجاوزها بسهولة بالطبع."
  2. "كما هو الحال دائمًا، كشف حركة beaconing. (سأقوم بتحسين لتغطية Graph API وما شابه ذلك)"

F-Secure - مشاركة من Alfie Champion

  • "مايكروسوفت هي مثال على إحدى هذه المنظمات التي اتخذت خطوات استباقية للدفاع عن المنظمات من إساءة استخدام خدماتها. لقد طورت مؤخرًا القدرة على اكتشاف ومنع الاستخدام الضار لتطبيقات Azure. على وجه التحديد، لاحظت F-Secure أن أي تطبيق يُستخدم في إطار عمل C3 (مثل OneDrive365 و Outlook365 (O365)) يُكتشف الآن على أنه ضار، ويتم تعطيله لاحقًا بواسطة مايكروسوفت (خلال حوالي ثلاث ساعات)."

الإسنادات / المراجع

  • دورات Sektor7 لتطوير البرمجيات الخبيثة
  • @passthehashbrwn - توليد الحمولات الديناميكية باستخدام mingw
  • Raphael Mudge - عمليات الفريق الأحمر مع Cobalt Strike (2 من 9): البنية التحتية
  • Raphael Mudge - عمليات الفريق الأحمر مع Cobalt Strike (3 من 9): C2
  • Microsoft Graph REST API v1.0
  • Microsoft WinInet
  • StackOverFlow - إنشاء عملية والتقاط stdout
  • Microsoft - إنشاء عملية فرعية مع إدخال وإخراج معاد توجيهه

مشاريع/بحوث/مدونات رائعة مشابهة

F-Secure C3 - القيادة والتحكم المخصصة

  • "تم بناء C3 استجابة لهذا المطلب. إنها أداة تسمح للفرق الحمراء بتطوير واستخدام قنوات قيادة وتحكم غير تقليدية (C2) بسرعة."
  • وداعاً للقيادة والتحكم عبر Office365 – لم نعرفك جيداً
  • مستودع GitHub لـ F-Secure C3 - القيادة والتحكم المخصصة

Callidus بواسطة Chirag Savla

  • "تم تطويره باستخدام إطار عمل .net core بلغة C#. يسمح للمشغلين بالاستفادة من خدمات O365 لإنشاء قناة اتصال للقيادة والتحكم. يستخدم Microsoft Graph APIs للتواصل مع خدمات O365."
  • مستودع GitHub لـ 3xpl01tc0d3r/Callidus
  • مقدمة إلى Callidus - مقالة مدونة

Azure Application Proxy C2 - Adam Chester (@_xpn_)

  • Azure Application Proxy C2 - مدونة بحثية
تنزيل الأداة