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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2017-0037 — تحليل تقني لـ CVE-2017-0037، ثغرة تلف في الذاكرة بمتصفح مايكروسوفت تتيح تنفيذ التعليمات البرمجية عن بُعد عبر خلط الأنواع في معالجة CSS/JS، مع تفاصيل استغلال PoC واستراتيجيات التخفيف. | Kitploit
أدوات/GitHubGitHub/chattopadhyaykittu/cve-2017-0037
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبالأوراق والأبحاثالتعلم والتعليماستغلال الملفات الثنائية
GitHubchattopadhyaykittu/cve-2017-0037

CVE-2017-0037

تحليل تقني لـ CVE-2017-0037، ثغرة تلف في الذاكرة بمتصفح مايكروسوفت تتيح تنفيذ التعليمات البرمجية عن بُعد عبر خلط الأنواع في معالجة CSS/JS، مع تفاصيل استغلال PoC واستراتيجيات التخفيف.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2017-0037 (ثغرة تلف الذاكرة في متصفح مايكروسوفت)

تتحدث هذه الوثيقة عن CVE-2017-0037 - ثغرة تلف الذاكرة في متصفح مايكروسوفت. ستقدم أولاً ما هو تنفيذ التعليمات البرمجية عن بُعد (RCE) ثم ستستعرض بعض التفاصيل التقنية.

ما هو تنفيذ التعليمات البرمجية عن بُعد؟

هجوم إلكتروني يمكن للمهاجم من خلاله تنفيذ أوامر عن بُعد على جهاز آخر يُعرف باسم تنفيذ التعليمات البرمجية عن بُعد. تحدث عمليات تنفيذ التعليمات البرمجية عن بُعد (RCEs) في الغالب بسبب برمجيات ضارة ينزّلها المضيف، ويمكن أن تحدث بغض النظر عن موقع النظام.

لتحقيق RCE، يمكن استخدام الطرق التالية:

  1. هجمات الحقن: هنا، يقدّم المهاجم مدخلات خاطئة بقصد أن تتم معالجة جزء منها كجزء من الأمر.

  2. هجمات إلغاء التسلسل: قد يقرأ برنامج إلغاء التسلسل مدخلات مستخدم مصاغة بعناية داخل البيانات المسلسلة على أنها تعليمات برمجية قابلة للتنفيذ.

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

  4. هجوم الالتباس النوعي: يوجد خطر الالتباس النوعي عندما لا تتخذ التعليمات البرمجية المصدرية أي إجراء للتحقق من صحة الكيان المقدَّم إليها. ولأن الالتباس النوعي يسمح للمخترق بتهريب تعليمات برمجية يمكنها تنفيذ أوامر عشوائية بمجرد التسبب في تباين في أنواع الكائنات، فهو محفوف بالمخاطر.

تنفيذ هجوم RCE

تسلسل هجوم RCE بسيط التنفيذ. أولاً، يبحث الفاعل المهدد على الإنترنت عن ثغرات شائعة يمكن استغلالها في هجوم فعال. بعد تحديد ثغرة معينة، يستخدم المخترق الاستغلال للحصول على الوصول. وبعد أن حصلوا على الوصول، قد يستخدمون البرنامج النصي الخبيث لتحقيق أهدافهم، والتي تشمل سرقة البيانات، وغسيل الأموال، والمراقبة الشاملة، وتعطيل الخدمة.

غالبًا ما تُستخدم لغة التطبيق المقصود لحقن التعليمات البرمجية. ثم يتم تنفيذ اللغة بواسطة معالج جانب الخادم. تعد Python وJava وPerl وRuby وPHP لغات برمجة شائعة. حقن التعليمات البرمجية شائع في المنصات التي تحلل فورًا المدخلات غير الموثقة. في الواقع، التطبيقات العامة عبر الإنترنت هي محور تركيز كبير للمخترقين.

عادةً ما يتم تنفيذ البرنامج النصي الخبيث بواسطة نصوص bash. نص bash هو مستند نصي يتضمن أوامر تُكتب عادةً في موجه الأوامر. تمكن نصوص bash الأوامر المضمنة من العمل بشكل صحيح. من المعتاد إلحاق ".sh" بها، على الرغم من أن ذلك غير ضروري. بعد التعبئة، يضع المخترق التعليمات البرمجية في تطبيق قابل للتأثر، والذي يقوم بعد ذلك بتشغيلها. قد يعطي التطبيق أيضًا قرارًا للنواة لتشغيلها.

مقاييس الهجوم

تركز الصورة التالية على مقاييس الدرجة الأساسية لـ CVE-2017-0037.

Alt text

المصدر

درجة تصنيف CVSS هنا هي 8.1 (عالية).

متجه الهجوم - المكوّن القابل للاستغلال هنا مرتبط بحزمة الشبكة، ونطاق المخترقين المحتملين يشمل أي شيء من البدائل الأخرى المذكورة إلى الإنترنت بالكامل.

تعقيد الهجوم لهذه الثغرة مرتفع، أي أن نجاح الهجوم يتوقف على ظروف خارجة عن سيطرة المهاجم. لذا، لا يمكن تنفيذ الهجوم في أي وقت، بل يتطلب من المهاجم بذل مستوى كبير من العمل في التخطيط أو التنفيذ ضد العنصر القابل للاستغلال قبل أن يُتوقع أن يكون فعالًا.

قيمة السرية هنا مرتفعة، مما يعني فقدانًا كاملًا للسرية، مما يؤدي إلى حصول المهاجم على إمكانية الوصول إلى جميع الموارد داخل المكوّن المتضرر.

السلامة مرتفعة مما يعني فقدانًا شديدًا للسلامة والحماية.

التوافر مرتفع مما يعني فقدانًا كاملًا للتوافر، مما يسمح للمهاجم بمنع الوصول إلى موارد المكوّن المتضرر تمامًا.

تفاصيل الهجوم

كانت ثغرة CVE-2017-0037 عيبًا في الالتباس النوعي كان موجودًا في Microsoft Edge وInternet Explorer 10 و11. وقد سمحت للمهاجمين بتنفيذ تعليمات برمجية عن بُعد على الجهاز المستهدف عندما يزور المستخدم موقع ويب ضارًا.

أشار إلى هذا العيب الباحث في Google Ivan Frantic، وتم نشر تفاصيل الثغرة بواسطة Google لأن Microsoft لم تتمكن من إصلاحها خلال فترة الإفصاح البالغة 90 يومًا.

Alt text

المصدر

يكشف استغلال إثبات المفهوم (PoC) الذي نشره الباحث أنه يمكنه تعطيل Edge وIE، مما يسمح للمهاجم بتنفيذ تعليمات برمجية عن بُعد والحصول على امتيازات المسؤول على النظام المخترق. كما أكد أن الهجوم نجح على إصدار 64 بت من Internet Explorer على Windows Server 2012 R2 وأنه أثر على IE 11 بإصدار 32 بت وكذلك Microsoft Edge.

يقع الالتباس النوعي في

Layout::MultiColumnBoxBuilder::HandleColumnBreakOnColumnSpanningElemnt دالة في mshtml.dll. يمكن أن يحدث الهجوم عن طريق تنفيذ تعليمات برمجية عشوائية عن بُعد، عبر نواقل تتضمن تسلسل رموز أوراق الأنماط المتتالية (CSS) وتعليمات برمجية مصاغة بلغة JavaScript تعمل على عنصر TH.

إثبات المفهوم بواسطة Ivan Fratric من Google Project Zero

Alt text

المصدر

كما ذكر الباحث Ivan Frantic، يتعطل PoC في

MSHTML!Layout::MultiColumnBoxBuilder::HandleColumnBreakOnColumnSpanningElement عند القراءة من العنوان 0000007800000070.

Alt text

المصدر

Alt text

المصدر

من خلال تحليل التعليمات البرمجية حول نقطة التعطل، يمكن ملاحظة أنه عند عنوان الذاكرة 00007ffe`8f330a51، تتم قراءة محتويات السجل rbp إلى السجل rcx. ثم الاستدعاء إلى

MSHTML!Layout::Patchable<Layout::PatchableArrayData<Layout::MultiColumnBox::SMultiColumnBoxItem> >::Readable يقوم بتعيين قيمة إلى rax (وهو سجل مخصص لتخزين القيم المرجعة من الدوال).

على الرغم من أن rcx من المفترض أن يشير إلى نوع كائن آخر، إلا أنه في PoC كما هو موضح أعلاه، يشير إلى مصفوفة من الأعداد الصحيحة 32 بت مخصصة في Array<Math::SLayoutMeasure>::Create. يتم تخزين إزاحات أعمدة الجدول في تلك المصفوفة ويمكن للمهاجم السيطرة عليها. يحدث التعطل عند 00007ffe`8f330a59 لأن rax يشير إلى ذاكرة غير مهيأة. يخزن rax القيمة المرجعة من الدالة

MSHTML!Layout::Patchable<Layout::PatchableArrayData<Layout::MultiColumnBox::SMultiColumnBoxItem> >::Readable وهو ليس عنوان ذاكرة مهيأًا. يمكن للمهاجم توجيه rax إلى موقع ذاكرة يمكنه التحكم فيه. يمكن للمهاجم تعديل خصائص الجدول مثل border-spacing وعرض عنصر TH الأول للسيطرة على rax.

Alt text

المصدر

إذا تمكن المهاجم من السيطرة على rax على السطر 00007ffe`8f330a59، فإن الدالة

MSHTML!Layout::Patchable<Layout::PatchableArrayData<Layout::MultiColumnBox::SMultiColumnBoxItem> >::Readable يتم استدعاؤها مرة أخرى على السطر 00007ffe`8f330a5d 743d بنفس الوسائط وقفزة إلى عنوان أعلى. بعد ذلك، من خلال سلسلة من الفروق التي تبدأ من rax، يمكن الحصول على مؤشر دالة وتخزينه في rdi. إذا تمكن المهاجم من اجتياز فحص CFG لمؤشر الدالة هذا، فسيتم استدعاء مؤشر الدالة الذي يتحكم فيه المهاجم على السطر 00007ffe`8f330a80.

التصحيح المحتمل للخلل

كما اقترح Ivan Fratric، يجب أولاً اكتشاف السبب وراء حدوث الالتباس النوعي. وفقًا لفرضيته، يوجد نوعان من الأعمدة في DOM: أعمدة جداول HTML وأعمدة CSS، وكان IE/Edge يخلط بينهما. لذا، إذا تمت إضافة فحص نوع في مكان ما داخل الدالة القابلة للاستغلال، فقد كان ذلك سيحل المشكلة.

روابط مفيدة

  • الخلل الذي أبلغ عنه Ivan Fratric

  • ثغرة تلف الذاكرة في متصفح مايكروسوفت

آثار هجوم RCE

  1. الوصول الأولي: يمكن للمهاجمين استخدام هذا للسيطرة على جهاز وتثبيت برمجيات ضارة أو تحقيق أهداف أخرى.

  2. كشف المعلومات: تساعد هجمات RCE في تثبيت برمجيات خبيثة تسرق المعلومات أو تشغيل أوامر تجمع وتسرق البيانات من الجهاز المتأثر.

  3. حجب الخدمة: تسمح ثغرة RCE للمخترقين بتنفيذ تعليمات برمجية على الجهاز الذي يستضيف التطبيق المتأثر، وبالتالي تعطيل تشغيله وتشغيل البرامج الأخرى على النظام.

  4. تعدين العملات الرقمية: غالبًا ما يتم نشر برمجيات تعدين العملات الرقمية الخبيثة وتنفيذها على الأجهزة القابلة للاستغلال.

  5. برمجية الفدية (Ransomware): برمجية الفدية هي نوع من البرمجيات يمنع المستخدم من الوصول إلى ملفاته ما لم يدفع المال.

طرق التخفيف من هجمات RCE

  1. يمكن استخدام التحكم في تجاوز سعة المخزن المؤقت للتخفيف من هجمات RCE.

  2. قوائم التحكم في الوصول مفيدة لتقييد امتيازات المستخدم، وبالتالي الحد من قدرات المهاجم إذا سيطر على حساب مستخدم.

  3. يجب مراقبة حركة مرور الشبكة بحثًا عن محتوى يحتمل أن يكون ضارًا بالإضافة إلى مراقبة نقاط النهاية.

  4. استخدام تعقيم المدخلات وهي عملية تنظيف وتنقية مدخلات المستخدم لحمايتها من استخدامها لاستغلال الثغرات الأمنية.

المراجع

  • https://msrc.microsoft.com/update-guide/vulnerability/CVE-2017-0037

  • https://www.checkpoint.com/cyber-hub/cyber-security/what-is-remote-code-execution-rce/#:~:text=In%20an%20injection%20attack%2C%20the%20attacker%20deliberately%20provides%20malformed%20input%20that%20causes%20part%20of%20their%20input%20to%20be%20interpreted%20as%20part%20of%20the%20command

  • https://www.bugcrowd.com/glossary/remote-code-execution-rce/

  • https://nvd.nist.gov/vuln/detail/CVE-2017-0037

  • https://bugs.chromium.org/p/project-zero/issues/detail?id=1011

  • https://blog.0patch.com/2017/03/0patching-another-0-day-internet.html

  • https://www.cs.uaf.edu/2017/fall/cs301/lecture/09_11_registers.html

  • https://reverseengineering.stackexchange.com/questions/10746/what-does-mov-qword-ptr-dsrax18-r8-mean

تنزيل الأداة