
إثبات مفهوم لاستغلال CVE-2019-6440 يحقق تصعيد صلاحيات إلى مستوى SYSTEM على برنامج Zemana لمكافحة البرمجيات الخبيثة عبر اعتراض التحديثات بأسلوب الرجل في المنتصف واستنساخ التوقيع الرقمي.
المنتجات المختبرة:
Zemana antimalware الإصدار 2.74.2.150 وZemana antilogger الإصدار 2.74.204.150.
تم الإصلاح منذ الإصدار 2.74.2.664
حول الثغرة:
سمحت هذه الثغرة للمهاجمين بالحصول على صلاحيات SYSTEM على الأجهزة المستهدفة بدون تفاعل المستخدم.
المتطلبات:
1. يجب أن يكون المهاجم قادرًا على اعتراض وتغيير محتوى طلب POST إلى URL "POST /api/client/settings/"
2. لا يتطلب الوصول الفعلي إلى جهاز الكمبيوتر المستهدف.
التفاصيل:
تستخدم المنتجات المختبرة HTTP العادي لتلقي التحديثات، لذا يمكن للمهاجم بسهولة تغيير الإصدار وURL المناسب إلى قيم عشوائية.
لنغير URL التحديث إلى شيل بسيط خاص بنا (الشكل 0 والملحق 1).

الشكل 0
يقول مضاد الفيروسات إن التوقيع الرقمي للتحديث لا يمكن التحقق منه. لكنه يسمح للمستخدم بتشغيله على أي حال (الشكل 1). إذا كان المستخدم لديه صلاحيات مستخدم، فيمكنه الحصول على صلاحيات SYSTEM (الشكل 2).

الشكل 1. هل تريد تشغيل ملف غير معروف بصلاحيات SYSTEM؟

الشكل 2. صلاحيات النظام.
لكن يمكن تجاوز هذا التنبيه.
للقيام بذلك، نحتاج إلى نسخة من التوقيع الرقمي لـ ZAM.exe. دعنا ننسخه (دليل Security).
الآن لدينا شيل خاص بنا مع نسخة من التوقيع الرقمي لـ Zemana ولا يمكن لنظام التشغيل التحقق منه (الشكل 3).

الشكل 3. توقيع غير صحيح.
الآن لنلقي نظرة على الدالة "ZmnAppUpdater".
نرى أن نتيجة SignatureChecker يتم تجاهلها (الشكل 4).

الشكل 4. فحص مفقود.
EAX = 0x80096010 (TRUST_E_BAD_DIGEST).

الشكل 5. عرض توضيحي.