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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2022-45451 — PoC لثغرة قراءة ملف عشوائي في Acronis - CVE-2022-45451 | Kitploit
أدوات/GitHubGitHub/alfarom256/cve-2022-45451
تصعيد الامتيازاتتحليل الثغرات الأمنيةتحليل الكودالاستغلالتحليل الملفات الثنائية
GitHubalfarom256/cve-2022-45451

CVE-2022-45451

PoC لثغرة قراءة ملف عشوائي في Acronis - CVE-2022-45451

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

الأكثر شعبية

عرض الكل →

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

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

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

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

مقدمة

مواصفات النظام:
  • Windows 10 1809 x64 EN
الهدف:
  • Acronis Home Cyber Protect
  • Acronis Cyber Protect

وصف الثغرة الأمنية

يعاني برنامج تشغيل الفحص المضاد للبرامج الضارة "ngscan" من Acronis من تحكم وصول غير صحيح / غير مناسب في منفذ اتصال المرشح. يدعم برنامج تشغيل المرشح الدقيق الميزات التالية التي قد يتم استغلالها:

  • قراءة ملف تعسفي
  • تعديل مفتاح التسجيل الحساس (لم يتم استغلاله، شروط التشغيل غير معروفة) مما قد يؤدي إلى تنفيذ تعليمات برمجية محلية

قراءة ملف تعسفي

بدأ تحليل برنامج تشغيل ngscan.sys عن طريق إعادة ترجمته باستخدام Ida Pro. لاحظ الباحث أنه على الرغم من إنشاء كائن جهاز، لم يتم إنشاء روابط رمزية للتفاعل مع برنامج التشغيل باستخدام DeviceIoControl. وبناءً على ذلك، استمر التحليل بمراقبة إمكانيات منفذ اتصال المرشح. أثناء التهيئة، يقوم برنامج التشغيل بإنشاء خمسة (5) منافذ اتصال لدعم التفاعل من العمليات الأخرى.

الشكل 1: روتين يدعم إنشاء ما يصل إلى خمسة (5) منافذ اتصال مرشح (FCP)

لُوحِظ استدعاء هذه الوظيفة، حيث تقوم بتهيئة كل من منافذ FCP الخمسة باستخدام dacl افتراضي، مع إنشاء آخر منفذ FCP باستخدام dacl فارغ (NULL).

الشكل 2: إنشاء FCP مع DACL افتراضي/فارغ

استمر التحليل بمراقبة وظائف CreateNotifyCallback و MessageNotifyCallback المحددة بواسطة برنامج تشغيل المرشح. يتم استدعاء وظائف رد الاتصال هذه كلما فتحت عملية اتصالاً، وأرسلت رسالة إلى منفذ الاتصال.

أظهر الفحص الأولي لـ MessageNotifyCallback أن المخزن المؤقت للرسالة الواردة يجب أن يستوفي المتطلبات التالية:

  • يجب أن يطابق أول DWORD قيمة رأس متوقعة "TrMs" (السطر 37)
  • يجب أن يحتوي ثاني DWORD على طول محتويات الرسالة (ملاحظة: هذا يختلف عن InputBufferLength)
  • يجب أن يكون طول محتوى الرسالة أقل من أو يساوي حجم المخزن المؤقت للإدخال الكامل مطروحًا منه حجم رأس الرسالة
    • يتكون رأس الرسالة من الرأس والحجم، وقيمة غير معروفة أخرى مجموعها 0xC (12) بايت

بمجرد اجتياز الفحوصات، يتم تحليل رقم وظيفة من InputBuffer واستخدامه في حالات switch التالية لتحديد الوظيفة التي سيتم تنفيذها باستخدام الإدخال المقدم.

الشكل 3: مجموعة فرعية من الوظائف المدعومة من MessageNotifyCallback

أظهر فحص كل وظيفة من الوظائف المدعومة وجود وظيفتين مهمتين للاستغلال المحتمل مما يؤدي إلى قراءة ملف تعسفي.

الشكل 4: وظائف تدعم إنشاء سياق الفحص وإرجاع مؤشر الملف الخاص بسياق الفحص (السطور 206, 233)

على الرغم من أن الوظيفة الدقيقة لـ "سياق الفحص" غير معروفة تمامًا، أظهر التحليل أنه يمكن إنشاء سياق فحص ملف لأي ملف معين محدد في InputBuffer الخاص بالمستخدم. بمجرد إنشاء سياق الفحص، يتم إرجاع معرف سياق الفحص إلى المستخدم في المخزن المؤقت للإخراج.

الشكل 5: روتين إنشاء سياق الفحص يعيد بيانات سياق الفحص إلى المستخدم

الشكل 6: البيانات المرسلة إلى برنامج تشغيل المرشح الدقيق لطلب الوصول إلى ملف التسجيل SAM المحمي (\??\C:\Windows\System32\config\SAM)

الشكل 7: الرد من برنامج تشغيل المرشح الدقيق بما في ذلك معرف سياق الفحص (0x3aaf)

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

الشكل 8: استرجاع مؤشر ملف سياق الفحص الذي تم إنشاؤه

تم استدعاء الوظيفة المسماة CreateFileReturnHandle0 فقط إذا أعادت الوظيفة السابقة SearchScanContextsByID سياق فحص صالح. على سبيل المثال، فقط إذا قدمت العملية الطالبة معرف سياق صالح تم إنشاؤه مسبقًا عن طريق استدعاء وظيفة إنشاء الفحص المذكورة أعلاه. نجح البرنامج الطالب في فتح مؤشر للملف المميز عن طريق توفير معرف سياق الفحص للوظيفة المحددة في الشكل 8 (الشكل 4، السطر 233).

الشكل 9: استرجاع ناجح لمؤشر الملف لملف SAM

باستخدام processhacker، تم تأكيد الوصول إلى مؤشر الملف عن طريق عرض مؤشرات العملية الطالبة:

الشكل 10: عملية تحتوي على مؤشر لملف SAM

الشكل 11: تم منح حق الوصول للقراءة للمؤشر الذي تم الحصول عليه

إمكانية حقن التعليمات البرمجية

أظهر استكشاف أعمق للوظائف المدعومة التحكم في ثلاثة مفاتيح تسجيل قد يتم استغلالها للحصول على تنفيذ التعليمات البرمجية.

الشكل 12: وظائف تدعم فتح مؤشرات لمفاتيح التسجيل

الشكل 13: فتح مفاتيح التسجيل التي تحدد dll مراقبة الخطاف لحقنه في عملية

الشكل 14: وظيفة OpenKey توضح القدرة على تعديل مفتاح تسجيل ببيانات يتحكم فيها المستخدم

لم يتم تحديد ظروف حقن dll للربط بواسطة مجموعة Acronis، على الرغم من أنه إذا تم تمكين مراقبة الخطاف، يُعتقد أن dll المحدد بواسطة مفاتيح التسجيل x64HookLib و x86HookLib سيتم حقنه في عملية محددة.

الشكل 15: x64HookLibKey يحدد dll الربط C:\ProgramData\Acronis\NGMP\shared\acr_protect.x64.dll

حالة سباق تسمح بقراءة ملف تعسفي محدود

تم حذف عملية فتح سياق الفحص في التحليل لقراءة الملف التعسفي. قد تقوم عملية، بدلاً من إنشاء سياق فحص، بتجربة قوية لمعرفات سياق الفحص عن طريق إصدار طلبات متكررة لوظيفة GetScanContextByID، والتكرار على قيم ContextID حتى يتم العثور على سياق فحص واحد أو أكثر صالح.

تنزيل الأداة