Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
cve-2023-31355-poc — استغلال لثغرة برمجيات AMD SEV-SNP (CVE-2023-31355) التي تفك تشفير ذاكرة عشوائية للضيوف المتقاعدين عن طريق إتلاف بذرة مفتاح UMC عبر كتابة إدخال RMP غير مهيأ إلى العنوان صفر. | Kitploit
أدوات/GitHubGitHub/freax13/cve-2023-31355-poc
أدوات التشفير/فك التشفيرتحليل الذاكرة الجنائيتحليل الثغرات الأمنيةالاستغلالأمن الأجهزةتحليل البرامج الثابتةاستغلال الملفات الثنائية
GitHubfreax13/cve-2023-31355-poc

cve-2023-31355-poc

استغلال لثغرة برمجيات AMD SEV-SNP (CVE-2023-31355) التي تفك تشفير ذاكرة عشوائية للضيوف المتقاعدين عن طريق إتلاف بذرة مفتاح UMC عبر كتابة إدخال RMP غير مهيأ إلى العنوان صفر.

عرض المستودع
831منذ 2 سنواتلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

ثغرة في البرنامج الثابت لـ SEV

يحتوي هذا المستودع على استغلال لثغرة في البرنامج الثابت لـ SEV. يسمح الاستغلال بفك تشفير ذاكرة عشوائية لضيف SEV-SNP بعد إلغاء تفعيله.

تم اختباره على الإصدار 1.55.16 (الأحدث وقت كتابة هذا النص).

السبب الجذري

يحاول snp_reclaim_buffer دون قيد أو شرط كتابة تغييرات RMP مرة أخرى حتى عندما لا يكون العنوان مغطى بـ RMP. إذا لم يكن address مغطى بـ RMP، فإن عنوان إدخال RMP page_rmp_paddr لا تتم تهيئته بشكل صحيح أبدًا ويبقى على قيمته الأولية 0. ونتيجة لذلك، يحاول البرنامج الثابت كتابة التغييرات إلى إدخال RMP مرة أخرى إلى العنوان 0. هذا أمر سيئ لأن العنوان 0 مغطى بـ RMP ولا ينبغي الكتابة إليه دون مزيد من الفحوصات. إذا كان address خارج المنطقة المغطاة بـ RMP، فإن page_rmp_entry لا تتم تهيئته بشكل صحيح أبدًا ويحتوي على ذاكرة غير مهيأة من المكدس. هذه الذاكرة غير المهيأة ثابتة عمليًا.

يوجد تعليق يحذر من هذا النمط البرمجي تحديدًا، وهو أيضًا سبب عدم مفاجأتي إذا لم أكن أول من أبلغ عن هذا.

يتم استدعاء snp_reclaim_buffer مع عنوان صفحة الحالة الخاصة بالمخازن المؤقتة الدائرية لـ SEV عندما يطلب الهايبرفايزر الخروج من وضع المخزن المؤقت الدائري. هذا العنوان يُتحكم فيه من قبل المهاجم. توجد بعض الفحوصات لهذا العنوان، لكن الصفحات الافتراضية (أي الصفحات الواقعة خارج المنطقة المغطاة بـ RMP) مسموح بها صراحةً.

الاستغلال

يمكننا استغلال عملية الكتابة إلى العنوان 0 بوضع صفحة سياق ضيف هناك. من الملائم أن الحقل الأول في صفحة سياق الضيف هو بذرة مفتاح UMC، وهي بنفس حجم إدخال RMP تمامًا (كلاهما بحجم 16 بايت). من خلال خداع البرنامج الثابت لكتابة التغييرات مرة أخرى إلى العنوان 0، يمكننا إفساد بذرة مفتاح UMC. إدخال RMP غير المهيأ الذي تتم كتابته هو نفسه دائمًا، لذا فإن بذرة مفتاح UMC التالفة ستكون دائمًا متطابقة تقريبًا أيضًا: عدد الصفحات الفرعية (9 بتات) في إدخال RMP لا تتم كتابته، لكن جميع الحقول الأخرى تتم كتابتها. من خلال إنشاء صفحات سياق ضيف جديدة مرارًا وتكرارًا، بحيث يكون لكل منها عدد صفحات فرعية أولي عشوائي مختلف في كل مرة، يمكننا في النهاية إنشاء عدة ضيوف بنفس بذرة مفتاح UMC.

لاستغلال الثغرة، يمكننا تنفيذ الخطوات التالية:

  1. أنشئ صفحة سياق ضيف على العنوان 0 للضيف الضحية.
  2. استخدم الثغرة لإفساد بذرة مفتاح UMC الخاصة بالضيف الضحية.
  3. فعّل صفحة سياق الضيف الضحية، وأطلق الضيف الضحية وشغّله.
  4. ألغِ تفعيل الضيف الضحية.
  5. أنشئ صفحة سياق ضيف على العنوان 0 للضيف المهاجم.
  6. استخدم الثغرة لإفساد بذرة مفتاح UMC الخاصة بالضيف المهاجم. جميع البتات باستثناء 9 بتات مضمونة أن تطابق الضيف الضحية.
  7. إذا كانت بذرة مفتاح UMC الخاصة بالضيف المهاجم تطابق تلك الخاصة بالضيف الضحية، فتابع، وإلا فانتقل إلى الخطوة 5.
  8. فعّل صفحة سياق الضيف المهاجم وأطلقه مع تفعيل علم التصحيح.
  9. خصّص ذاكرة الضيف الضحية للضيف المهاجم.
  10. استخدم أمر SNP_DBG_ENCRYPT لفك تشفير ذاكرة الضيف الضحية باستخدام صفحة سياق الضيف المهاجم. سينجح ذلك لأن الضيف الضحية والضيف المهاجم يتشاركان بذرة مفتاح UMC.

التأثير

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

لكن من الناحية العملية، تخزّن العديد من التطبيقات معلومات حساسة أخرى (مثل المفاتيح الخاصة ومفاتيح تشفير القرص) يمكن تسريبها باستخدام هذا الاستغلال.

التخفيف

يجب كتابة إدخال RMP مرة أخرى فقط إذا لم تكن الصفحة في الحالة الافتراضية.

استخدام PoC

تنزيل الأداة