
CVE-2022-25943
https://jvn.jp/en/vu/JVNVU90673830/
WPS Office عبارة عن حزمة مكتبية لأنظمة Microsoft Windows وmacOS وLinux وiOS وAndroid وHarmonyOS، طورتها شركة Kingsoft الصينية لتطوير البرمجيات ومقرها تشوهاي.
من أجمل الميزات التي يقدمها WPS خدمة سحابية لحفظ مستنداتك وأعمالك، إلخ. وهذه الخدمة مضبوطة افتراضيًا على الوضع اليدوي، فلا تبدأ إلا إذا انتقلت إلى سحابة WPS في لوحة WPS Office، لكن الخدمة تعمل بصلاحيات المستخدم الحالي (صلاحيات منخفضة).
عند النظر إلى الاستيرادات المبكرة التي تقوم بها خدمة سحابة WPS بعد تشغيلها، يبدو أنها تحاول أولاً استيراد DLL باسم CRYPTSP.DLL وملفات أخرى من *C:\ProgramData\kingsoft\office6*، وإذا لم تكن موجودة - وهي غير موجودة افتراضيًا - فإن الخدمة ستحمّلها من System32 كما ترى:

المشكلة هنا هي أن صلاحيات الوصول (ACL) لهذا المجلد مضبوطة لتسمح بالقراءة والكتابة لجميع المستخدمين، إذ يمكن للمهاجم وضع DLL خبيث هناك وإعادة تشغيل الملف التنفيذي، لكنه سيُشغَّل بمستوى الصلاحيات الحالي (مستخدم بصلاحيات منخفضة)، إلا إذا شغّلنا الملف التنفيذي كخدمة (بما أنه مثبّت كخدمة) بأمر مثل net start wpscloudsvr، وهو ما سيشغّل الخدمة بصلاحيات NT AUTHORITY .
تبدو المشكلة هنا أقرب إلى إعداد خاطئ لصلاحيات الوصول (ACL) .
استغلالي بسيط، فهو ينسخ ملف DLL المُعدّ ( لتغيير كلمة مرور Administrator ) إلى المجلد الهدف ويعيد تشغيل الخدمة، وبذلك يصبح الوصول إلى حساب Administrator متاحًا، ما يعني أنني أستطيع الوصول إلى صلاحية sedebugpriv، ومن هناك أسرق رمز winlogon وأشغّل cmd بصلاحيات NT AUTHORITY / System .