CVE-2024-7479 TeamViewer: التحقق غير السليم من توقيع تثبيت برنامج التشغيل
المؤلف: Marcos Accossatto
لأغراض العرض التوضيحي فقط. يعمل الاستغلال الكامل على الإصدار المتأثر بالثغرة من TeamViewer لنظام ويندوز.
مقدمة
هذا الاستغلال (PoC) هو تنفيذ بلغة Python لـ PoC الخاص بـ Pedro Gabaldon لـ CVE-2024-7479.
يحتوي هذا السكربت على جميع الفئات (classes) اللازمة للتعامل مع بروتوكول IPC من أجل الاستغلال.
للاستغلال النهائي، يجب أن يكون برنامج تشغيل dbutil_2_3.sys والملف التنفيذي المُجمَّع من مشروع BYOVDKit موجودَين في نفس الدليل المحلي لهذا السكربت.
تم اختبار هذا السكربت على TeamViewer 15.57.5.
خطوات استغلال السكربت
سينفّذ هذا السكربت الخطوات التالية لاستغلال الثغرة:
- فتح مقبس (socket) على العنوان 127.0.0.1 والمنفذ 5939.
- تنفيذ BYOVDKit.exe بسطر الأوامر التالي للتحقق مما إذا كان برنامج التشغيل مثبّتًا بالفعل:
BYOVDKit.exe 1 token 4
- تجميع طلب IPC الأول عبر دالة getClientAuth وإرساله إلى الخادم.
- أخذ response_challenge من استجابة الخادم عبر دالة getServerChallengeFromResponse.
- دمج response_challenge مع قيمة "secret"، وحساب قيمة تجزئة MD5 الخاصة بها، ثم استخدامها لتجميع طلب IPC الثاني عبر دالة getClientAuth.
- إرسال الطلب الثاني لإكمال المصادقة.
- الحصول على PID الخاص بعملية python، وتحديد موقع إصدار الملف التنفيذي TeamViewer.exe واستخراجه، وتجميع طلب IPC الثالث عبر دالة getControlRequest وإرساله إلى الخادم.
- قراءة حزم IPC من الخادم حتى اكتمال مزامنة الإعدادات (من الطبيعي استلام 21 حزمة).
- نسخ ملف TeamViewerVPN.cat من دليل TeamViewer x64 إلى دليل السكربت.
- نسخ ملف TeamViewerVPN.inf من دليل TeamViewer x64 إلى دليل السكربت وإعادة تسميته إلى ملف inf عشوائي.
- إعادة تسمية ملف dbutil_2_3.sys من دليل السكربت إلى TeamViewerVPN.sys.
- تجميع طلب IPC الثالث عبر دالة getInstallDriverRequest وإرساله إلى الخادم.
- الانتظار حتى ينقر المستخدم على زر تثبيت برنامج التشغيل هذا على أي حال لإكمال تثبيت برنامج التشغيل، ثم الضغط على ENTER.
- حذف جميع الملفات المنسوخة/المُنشأة/المعاد تسميتها (TeamViewerVPN.cat وTeamViewerVPN.sys وملف .inf العشوائي).
- تنفيذ BYOVDKit.exe بسطر الأوامر التالي لتشغيل cmd بصلاحيات النظام:
BYOVDKit.exe 1 token 4
الاستخدام
- شغّل cmd.exe كمستخدم عادي.
- استخدم whoami للتحقق من اسم المستخدم.
- شغّل السكربت باستخدام python CVE-2024-7479_PoC.py.
- عند ظهور تحذير تثبيت برنامج التشغيل، انقر على رسالة تثبيت برنامج التشغيل هذا على أي حال لتثبيت برنامج التشغيل.
- عُد إلى نافذة cmd واضغط على ENTER لمتابعة تنفيذ السكربت.
- استخدم whoami للتحقق من أن اسم المستخدم هو nt authority\system.

المراجع
نأمل أن تجدوه مفيدًا، وإذا كانت لديكم أي استفسارات، يمكنكم التواصل معنا عبر [email protected]
استمتع!