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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2022-34303 — يوضح تجاوز Secure Boot الخاص بـ CVE-2022-34303 عبر UEFI Shell الموقّع من CryptoPro، باستخدام الأمر mm لإبطال gSecurity2 وتحميل تطبيقات UEFI غير الموقّعة. | Kitploit
أدوات/GitHubGitHub/themalwareguardian/cve-2022-34303
آليات الاستمراريةتحليل الثغرات الأمنيةالاستغلالالهندسة العكسيةأمن الأجهزةالأوراق والأبحاثالتعلم والتعليمتطوير الحمولاتتحليل البرامج الثابتة

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
استغلال الملفات الثنائية
GitHubthemalwareguardian/cve-2022-34303

CVE-2022-34303

يوضح تجاوز Secure Boot الخاص بـ CVE-2022-34303 عبر UEFI Shell الموقّع من CryptoPro، باستخدام الأمر mm لإبطال gSecurity2 وتحميل تطبيقات UEFI غير الموقّعة.

عرض المستودع
25منذ 20 أياملم تتم المراجعة بعد
مشاركة

🕷️ CVE-2022-34303 - ثغرة أمنية في محمّل الإقلاع CryptoPro

CryptoPro Secure Disk UEFI Shell - Bring Your Own Vulnerable UEFI Application (BYOVUA) - تجاوز Secure Boot عبر UEFI Shell موقّع وإفساد gSecurity2.




📑 جدول المحتويات

  • نظرة عامة
  • الخلفية
    • Bring Your Own Vulnerable UEFI Application
    • الـ Shell الموقّع
    • الثغرة الأمنية
    • أمر mm
    • gSecurity2 وبروتوكول البنية الأمنية
    • التوازي مع Kernel BYOVD
  • كيفية العمل
    • المرحلة 1 - إقلاع الـ Shell الموقّع
    • المرحلة 2 - تعداد مقابض بروتوكول Security2
    • المرحلة 3 - تحديد موقع gSecurity2 في الذاكرة
    • المرحلة 4 - إبطال gSecurity2
    • المرحلة 5 - تحميل تطبيقات UEFI غير الموقّعة
    • المرحلة 6 - الاستمرارية عبر startup.nsh
    • إضافي - عملية الاكتشاف
  • الاستغلال
  • إعداد المختبر
  • المراجع



نظرة عامة

يوضّح هذا المستودع تقنية BYOVUA (Bring Your Own Vulnerable UEFI Application) من خلال استغلال CVE-2022-34303، وهي ثغرة تجاوز Secure Boot في بيئة الإقلاع CryptoPro Secure Disk UEFI.

في هذه الحالة، المكوّن الموثوق به من قِبل Secure Boot هو shim مخصّص موقّع من قِبل Microsoft's UEFI Third Party Certificate Authority. بمجرد تنفيذه، يقوم هذا الـ shim بتحميل UEFI Shell كمرحلة ثانية، مما يتيح الأمر mm (تعديل الذاكرة) وبالتالي يوفّر قدرات قراءة وكتابة عشوائية للذاكرة خلال مرحلة الإقلاع قبل نظام التشغيل.

يمكن بعد ذلك استخدام هذه القدرة لتحديد موقع وإبطال المؤشر العام gSecurity2 في نواة DXE. ونتيجة لذلك، يتم تعطيل التحقق من صور UEFI اللاحقة، مما يسمح بتحميل تطبيقات UEFI غير الموقّعة، مثل bootkits، على الرغم من تمكين Secure Boot.




الخلفية


Bring Your Own Vulnerable UEFI Application

BYOVUA هو المكافئ في UEFI لتقنية BYOVD (Bring Your Own Vulnerable Driver) المستخدمة على مستوى النواة. فبدلاً من جلب برنامج تشغيل نواة موقّع يحتوي على ثغرة أمنية، يجلب المهاجم تطبيق UEFI موقّعًا - في هذه الحالة، UEFI Shell كامل - يحتوي على وظائف قادرة على تقويض Secure Boot.

ولأن التطبيق - في هذه الحالة، الـ shim المخصّص الذي يحمّل UEFI Shell كمرحلة ثانية - موقّع بشهادة موثوقة من Microsoft، فإنه يُقبل من قِبل Secure Boot دون تساؤل، مما يجعله موثوقًا على أي نظام يتضمّن هذه الشهادة في قاعدة بيانات Secure Boot الخاصة به (db) - وهو عمليًا كل حاسوب قادر على UEFI تم شحنه خلال العقد الماضي. وبمجرد تشغيله، توفّر أوامره المدمجة للمهاجم وصولاً مباشرًا إلى العتاد والذاكرة يعمل قبل تحميل نظام التشغيل، في بيئة لا توجد فيها ضوابط الأمان الحديثة (ASLR، DEP، حمايات النواة) ببساطة.


الـ Shell الموقّع

Shell_Full.efi هو UEFI Shell يتم توزيعه كجزء من CryptoPro Secure Disk، وهو منتج للمصادقة قبل الإقلاع وتشفير الأقراص.

الخاصيةالقيمة
الملفShell_Full.efi = EFI/Boot/BootX64.efi (SHIM) -> EFI/CPSD/Bootxsa.efi (Shell)
المورّدCryptoPro Secure Disk
CVECVE-2022-34303
التوقيعMicrosoft Corporation UEFI CA 2011 (Third Party)
الاكتشافEclypsium (Mickey Shkatov, Jesse Michael) - أغسطس 2022
العرض التقديميDEF CON 30 - "One Bootloader to Load Them All"
الإبطالأُضيف إلى DBX عبر Microsoft KB5012170 (أغسطس 2022)

الثغرة الأمنية

الثغرة ليست خطأً برمجيًا - بل هي خلل في التصميم. إن UEFI Shells هي أدوات تشخيصية مشروعة لم يُقصد بها أبدًا العمل في بيئات Secure Boot. ومع ذلك، من خلال توقيعها بشهادة موثوقة من Microsoft وتوزيعها كجزء من منتجات تجارية، أنشأ المورّدون دون قصد تجاوزًا موقّعًا لـ Secure Boot.

المشكلة الجوهرية: ملف ثنائي موقّع موثوق به من قِبل Secure Boot يوفّر قدرات قراءة/كتابة غير مقيّدة للذاكرة عبر أوامره المدمجة. هذه التركيبة تكسر نموذج الثقة الكامل لـ Secure Boot.


أمر mm

الأمر mm (تعديل الذاكرة) هو أمر مدمج قياسي في UEFI Shell يوفّر وصولاً مباشرًا للقراءة والكتابة إلى ذاكرة النظام. وهو موثّق في UEFI Shell Specification (القسم 5.3).``` MM Address [Value] [-w 1|2|4|8] [-MEM | -MMIO | -IO | -PCI | -PCIE] [-n]

| المعامل | الوصف |
|-----------|-------------|
| `Address` | عنوان الذاكرة الهدف |
| `Value` | القيمة المراد كتابتها (تُحذف للقراءة فقط) |
| `-w` | العرض: 1 أو 2 أو 4 أو 8 بايت |
| `-MEM` | الوصول إلى ذاكرة النظام |
| `-MMIO` | الإدخال/الإخراج المعيّن للذاكرة |
| `-IO` | الوصول إلى منفذ الإدخال/الإخراج |
| `-n` | غير تفاعلي (بدون طلب للعنوان التالي) |

---

<div id='gsecurity2'/>

### ***gSecurity2 وبروتوكول البنية الأمنية***

يُفرض التحقق من صورة Secure Boot في UEFI من خلال [بروتوكولات البنية الأمنية](https://uefi.org/specs/PI/1.8/V2_DXE_Architectural_Protocols.html#security-architectural-protocols)، المعرّفة في مواصفة تهيئة منصة UEFI (PI).

يحتفظ نواة DXE (DxeMain) بمؤشر عام يُسمى [`gSecurity2`](https://github.com/tianocore/edk2/blob/edk2-stable202608/MdeModulePkg/Core/Dxe/DxeMain.h#L252)، والذي يشير إلى بنية `EFI_SECURITY2_ARCH_PROTOCOL`. يحتوي هذا البروتوكول على مؤشر دالة واحد - `FileAuthenticationState` - والذي يُستدعى بواسطة `LoadImage()` في كل مرة يتم فيها تحميل صورة UEFI:```c
// EFI_SECURITY2_ARCH_PROTOCOL structure (PI Specification)
typedef struct _EFI_SECURITY2_ARCH_PROTOCOL {
	EFI_SECURITY_FILE_AUTHENTICATION_STATE FileAuthenticationState;
} EFI_SECURITY2_ARCH_PROTOCOL;

// GUID: 94AB2F58-1438-4EF1-9152-18941A3A0E68

عند استدعاء LoadImage()، يتحقق نواة DXE من:```c if (gSecurity2 != NULL) { Status = gSecurity2->FileAuthenticationState(gSecurity2, DevicePath, FileBuffer, FileSize, BootPolicy ); if (EFI_ERROR(Status)) { // Image rejected - signature verification failed } }

من خلال تعيين `gSecurity2 = NULL`، يفشل فحص `if` ولا يتم استدعاء `FileAuthenticationState` أبدًا. يتم تخطي التحقق من الصورة بالكامل - **يبقى Secure Boot "مُمكّنًا" لكنه لم يعد مفروضًا**. يمكن بعد ذلك تحميل تطبيقات UEFI غير الموقّعة بحرية.

لفهم تقني عميق لهذه التقنية، بما في ذلك تطبيق UEFI مُصمَّم خصيصًا يحدد ويُرقّع gSecurity2 تلقائيًا، راجع المشروع المرافق: [Exploitation Technique - UEFI Secure Boot Bypass via gSecurity2 Corruption](https://github.com/TheMalwareGuardian/Exploitation-Technique-UEFI-SecureBoot-Bypass-gSecurity2-Corruption).

---

<div id='BYOVD'/>

### ***التوازي مع Kernel BYOVD***

التوازي البنيوي بين UEFI BYOVUA و kernel BYOVD دقيق تمامًا:```
┌──────────────────────────────────────────────────────────────┐
│  UEFI BYOVUA (Secure Boot Bypass)                            │
│                                                              │
│  Signed Shell ─ mm ─> gSecurity2 = NULL ─> Load unsigned     │
│  (trusted by          (Security2 Protocol)   UEFI apps       │
│   Secure Boot)                                               │
├──────────────────────────────────────────────────────────────┤
│  Kernel BYOVD (DSE Bypass)                                   │
│                                                              │
│  Signed Driver ─ IOCTL ─> g_CiOptions = 0 ─> Load unsigned   │
│  (trusted by              (CI.dll)            kernel drivers │
│   DSE / CI)                                                  │
└──────────────────────────────────────────────────────────────┘

كلا الهجومين يستغلان نفس الخلل الجوهري: مكوّن موقّع تثق به آلية أمنية يوفّر البدائية اللازمة لتعطيل تلك الآلية ذاتها.




كيف يعمل


تنزيل الأداة