
كود إثبات المفهوم لـ CVE-2023-32353: تصعيد الامتيازات المحلي عبر iTunes في Windows
مثبت MSI لمشغل الموسيقى Apple iTunes احتوى على ثغرة سمحت لمستخدم عادي ذي صلاحيات منخفضة على حاسوب يعمل بنظام Microsoft Windows بالحصول على صلاحيات مرتفعة في سياق NT AUTHORITY/SYSTEM. يحتوي هذا المستودع على إثبات مفهوم (PoC) لإظهار كيف يمكن استغلال ذلك، بالإضافة إلى مزيد من المعلومات للباحثين الأمنيين والمطورين الذين يرغبون في معرفة المزيد عن هذا النوع من الثغرات. ومع ذلك، فإن قابلية تطبيق هذا محدودة كما يمكنك قراءته في قسم الأسئلة والأجوبة.
لم أحصل على شل SYSTEM. ما الخطأ الذي ارتكبته؟
نظرًا لأن هذا إثبات مفهوم، لم يتم التفكير كثيرًا في عدم الاكتشاف. لاستخدام هذا، يجب تشغيل تثبيت لنظام Windows 10 Home Edition قبل إصدار 'Version 10.0.19041.572'، لأنه في هذا الإصدار تم إصلاح هذه الثغرة. لقد أجريت اختباراتي باستخدام Windows 10 1909. أيضًا، يجب أن تذهب إلى "Windows Security" وتقوم بتعطيل كل ما يتعلق بـ Microsoft Defender/Windows Defender، حيث يبدو أنها تمنع إنشاء الرابط الرمزي إلى \RPC Control باستخدام الحماية الفورية (التي يتم تشغيلها تلقائيًا في كل إعادة تشغيل، تذكر ذلك!)
هل يجب أن أكون خائفًا من استخدام iTunes الآن؟
لا، فقط قم بالتحديث إلى أحدث إصدار من iTunes وستكون بخير.
هل يمكنني تشغيل إثبات المفهوم دون الحاجة إلى بنائه بنفسي؟
بينما أشجع الجميع بشدة على عدم تشغيل أي ملفات .exe من الإنترنت، فإن تشغيل Privilege-Escalation-using-Music-Player.exe من الدليل ./x64/Release/ في جهاز افتراضي يجب أن يعمل. إذا لم يعمل، يجب عليك محاولة تثبيت أحدث إصدار من VC redistributable من الروابط المقدمة من Microsoft.
ما هي الثغرة الفعلية هنا؟
أثناء عملية إصلاح MSI، يقوم المثبت بإنشاء مجلد بصلاحيات منخفضة يسمى "SC Info" داخل C:\ProgramData\Apple Computer\iTunes. على وجه الدقة، الدليل C:\ProgramData\Apple Computer\iTunes لا يسمح للجميع بالتحكم الكامل. لكن المجلد الفرعي المسمى "SC Info" يمنح الجميع (بما في ذلك المستخدمين ذوي الصلاحيات المنخفضة/العاديين) تحكمًا كاملاً. إذا قمت بحذف جميع محتويات مجلد C:\ProgramData\Apple Computer\iTunes\ يدويًا (اعتمادًا على ما إذا كنت قد شغلت iTunes من قبل، فقد يكون هناك مجلدات أكثر من مجرد "SC Info")، فسيتمكن مستخدم ذو صلاحيات منخفضة من إنشاء نقطة تحميل من C:\ProgramData\Apple Computer\iTunes\ إلى أي دليل آخر يمكن لـ NT AUTHORITY/SYSTEM الكتابة إليه. في هذا الإثبات المفهوم، تم استخدام تقنية "wermgr.exe.local"، والتي تم بالفعل التخفيف منها في الإصدارات الحالية من Windows 10 وتنطبق فقط على إصدار Windows 10 Home حسب علمي. لذا إذا قمت بإنشاء نقطة تحميل من C:\ProgramData\Apple Computer\iTunes\ إلى \RPC Control ثم رابط رمزي من \RPC Control\SC Info (تذكر أن SC Info هو اسم المجلد الذي يقوم المثبت بإنشائه داخل مجلد iTunes) إلى ??\c:\windows\system32\wermgr.exe.local ثم استخدمت خيار إصلاح MSI لمثبت iTunes، فإنك تقوم فعليًا بإنشاء مجلد يسمى wermgr.exe.local داخل C:\Windows\System32 يمنح الجميع تحكمًا كاملاً. سيؤدي هذا إلى توجيه إنشاء مجلد SC Info إلى \RPC Control، وبدوره سيقوم \RPC Control بتوجيه إنشاء المجلد إلى دليل System32. من هناك (مرة أخرى أقول لك، هذا ليس جزءًا من الثغرة الفعلية، ولكن فقط لإكمال سلسلة ثغرة تصعيد الصلاحيات)، يمكنك إنشاء مجلد فرعي باسم محدد يحتوي على DLL مصمم خصيصًا، بحيث عندما يتم تحميله وتنفيذه بواسطة خدمة تعمل كـ NT AUTHORITY/SYSTEM حتى إذا تم استدعاؤها باستخدام مهمة مجدولة من قبل مستخدم ذي صلاحيات منخفضة، سيتم تنفيذ الأوامر فيه. (مثلًا cmd يعمل كـ NT AUTHORITY/SYSTEM) لمزيد من التفاصيل، يُرجى الرجوع إلى الكود الفعلي أو إلى قسم "خطوات إعادة الإنتاج اليدوي" أدناه.
نظرًا لأن هذا إثبات مفهوم، قم بإيقاف تشغيل Windows Defender/Microsoft Defender (أيضًا، اقرأ قسم الأسئلة والأجوبة)
قم بتثبيت iTunes قبل الإصدار 12.12.9 (مثلاً 12.12.4.1)
احذف جميع محتويات C:\ProgramData\Apple Computer\iTunes، لكن احتفظ بمجلد iTunes نفسه
قم بإنشاء نقطة تحميل من "C:\ProgramData\Apple Computer\iTunes" إلى "\RPC Control"، على سبيل المثال باستخدام أدوات symboliclink-testing-tools لجيمس فورشو:
CreateMountPoint.exe "C:\ProgramData\Apple Computer\iTunes" "\RPC Control"
قم بإنشاء رابط رمزي من "\RPC Control\SC Info" إلى "??\c:\windows\system32\wermgr.exe.local"
CreateDosDeviceSymlink.exe "\RPC Control\SC Info" "??\c:\windows\system32\wermgr.exe.local"
باستخدام iTunes MSI/ملف تثبيت iTunes EXE، قم "بإصلاح" تثبيت iTunes لديك (إذا لم يعد لديك المثبت، يمكنك العثور على "iTunes64.msi" في هذا المجلد: C:\ProgramData\Apple Computer\Installer Cache\iTunes )
انتقل إلى c:\windows\system32\wermgr.exe.local\
قم بإنشاء مجلد فرعي يسمى "amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.18362.418_none_e6c6b287130d565d" (قد يكون هذا مختلفًا على نظامك، استخدم اسم أحدث مجلد يبدأ بـ "amd64_microsoft.windows.common-controls_" من الدليل C:\Windows\WinSxS)
ضع ملف DLL باسم "comctl32.dll" داخل مجلد amd64_microsoft.windows.common-controls_*
قم بتشغيل هذا الأمر:
schtasks.exe /Run /TN "\Microsoft\Windows\Windows Error Reporting\QueueReporting"
سيتم الآن تنفيذ الإجراء الذي حددته داخل ملف comctl32.dll الخاص بك في سياق NT AUTHORITY/SYSTEM، على سبيل المثال تفتح نافذة cmd.