Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2022-37017 — تجاوز كلمة مرور واجهة المستخدم لعميل Symantec Endpoint Protection | Kitploit
أدوات/GitHubGitHub/apeppels/cve-2022-37017
المصادقة والترخيصتصعيد الامتيازاتتحليل الثغرات الأمنيةالاستغلالالهندسة العكسيةاختبار الاختراقاستغلال الملفات الثنائية
GitHubapeppels/cve-2022-37017

CVE-2022-37017

تجاوز كلمة مرور واجهة المستخدم لعميل Symantec Endpoint Protection

عرض المستودع
منذ 2 سنواتلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2022-37017

تجاوز المصادقة لكلمة مرور واجهة مستخدم العميل في Symantec Endpoint Protection 14.3.5351

يتيح Symantec Endpoint Protection تعيين حماية بكلمة مرور على واجهة المستخدم الخاصة به لمنع تغييرات التكوين. يتم تنفيذ هذا الفحص لكلمة المرور عبر منطق ليس في عملية محمية خفيفة (Protected Process Light - PPL) ولا في برنامج تشغيل النواة؛ إذ يسمح تغيير قيمة إرجاع في الذاكرة أو ترقيع الملف الثنائي للمهاجم بتجاوز كلمة المرور. يعمل هذا حتى إذا كانت الحماية من العبث (Tamper Protection) مفعّلة.

إذا كان بإمكان المهاجم تنفيذ تعليمات برمجية بصلاحيات المسؤول، فيمكنه استيراد XML لسياسة ضارة و/أو إعدادات اتصال للإدارة المركزية لـ SEP. وبهذا يكتسب السيطرة الكاملة تقريبًا على العميل. باستخدام استيراد السياسة، يمكنهم إضافة استثناءات، وفتح خيارات واجهة المستخدم، وتعطيل كلمة مرور المسؤول أو تغييرها، وتعطيل الحماية بشكل دائم، و/أو إلغاء تثبيت العميل.

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

في 14.3.5351 يتم تنفيذ الفحص التالي للتحقق من تطابق كلمة المرور:

root@kitploit:~
.text:00438021 loc_438021:                             ; CODE XREF: sub_437FA0+73↑j
.text:00438021                 mov     ecx, offset ServiceName ; "SepMasterService"
.text:00438026                 call    sub_43DDF0
.text:0043802B                 test    eax, eax
.text:0043802D                 jnz     short loc_4380A5
.text:0043802F                 push    ecx             ; Src
.text:00438030                 lea     eax, [ebp+var_14]
.text:00438033                 mov     ecx, esp
.text:00438035                 push    eax
.text:00438036                 call    ds:??0?$CStringT@_WV?$StrTraitMFC_DLL@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@ABV01@@Z ; ATL::CStringT<wchar_t,StrTraitMFC_DLL<wchar_t,ATL::ChTraitsCRT<wchar_t>>>::CStringT<wchar_t,StrTraitMFC_DLL<wchar_t,ATL::ChTraitsCRT<wchar_t>>>(ATL::CStringT<wchar_t,StrTraitMFC_DLL<wchar_t,ATL::ChTraitsCRT<wchar_t>>> const &)
.text:0043803C                 call    sub_4380F0
.text:00438041                 test    al, al
.text:00438043                 jz      short loc_43804F
.text:00438045                 mov     ecx, esi
.text:00438047                 call    ds:__imp_?OnOK@CDialog@@MAEXXZ ; CDialog::OnOK(void)
.text:0043804D                 jmp     short loc_4380AD

القفزة التي يبدو أنها تتحكم في نجاح جميع محاولات كلمة المرور في SymCorpUI.exe هي تعليمة JZ الموضحة عند .text:00438043. تغيير هذه إلى JNZ (التعليمة 0x74 -> 0x75) يعكس اتجاه القفزة، مما يسمح بقبول أي كلمة مرور عشوائية.

يقوم السكربت المكتوب بلغة Python بالعثور على مجلد التثبيت لـ SEP، وقراءة SymCorpUI.exe، وكتابة نسخة مصححة في المجلد المجاور للسكربت، وتشغيل النسخة المصححة في دليل العمل الأصلي. قم بتشغيله بصلاحيات مرتفعة، وسيُطلق واجهة مستخدم SEP تقبل أي كلمة مرور غير صحيحة يتم إدخالها.

يمكن للمهاجم الآن تصدير XML السياسة من خلال Help -> Troubleshooting. سيحتوي هذا على التكوين بما في ذلك أي تجزئات لكلمة مرور المسؤول. يمكن للمهاجم بعد ذلك تعديل XML لتغيير أي إعداد في العميل، على سبيل المثال استبدال تجزئة كلمة المرور أو تعطيل اشتراط كلمة المرور. يمكن بعد ذلك استيراد XML السياسة الضارة مرة أخرى باستخدام الزر المجاور لـ Export.

يقوم السكربت ببعض الفحوصات لمعرفة ما إذا كان يعمل بصلاحيات مرتفعة، وإذا لم يكن كذلك، فإنه يُجبر الملف الثنائي المصحح على العمل دون صلاحيات المسؤول. لتشغيل واجهة المستخدم بصلاحيات المسؤول، قم بتشغيل سكربت Python بصلاحيات المسؤول أو اكتب المتغير as_admin بقيمة True بشكل ثابت (hardcode).

لتجنب الحاجة إلى تخزين إزاحات محددة لكل إصدار، يقوم السكربت ببحث/استبدال عام لتتابع من التعليمات وجدت أنه فريد في الإصدارات الثلاثة التي اختبرتها. من الممكن أن يحتوي إصدار مختلف على عدة نتائج مطابقة قد تكسر إثبات المفهوم (PoC). في هذه الحالة، ابحث في النتائج المطابقة عن كتلة تبدأ بـ mov ecx, offset ServiceName ; "SepMasterService" للعثور على تعليمة JZ ذات الصلة لترقيعها بالقرب من الأسفل.

لاختبار وظيفة كلمة المرور، يمكن إضافة ما يلي في XML السياسة (على نفس مستوى GlobalGroups) لتفعيل الحماية. التجزئة هي MD5 للسلسلة "test".

root@kitploit:~
<AdminPassword ExitNeedPassword="1" UINeedPassword="1" ImportExportNeedPassword="1" UninstallNeedPassword="1">098f6bcd4621d373cade4e832627b4f6</AdminPassword>

استجابت Symantec بسرعة للمشكلة، وتم تسجيل CVE من قبلهم ونُشر إصلاح كإصدار 14.3 RU6.

https://support.broadcom.com/external/content/SecurityAdvisories/0/21014

تنزيل الأداة