Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
vfs-hook-impersonate — VFS for Git ab95cf51 - عالي - محلي - بقايا صلاحيات - hook CreateFileW SecurityImpersonation | Kitploit
أدوات/GitHubGitHub/abraxas/vfs-hook-impersonate
تصعيد الامتيازاتتحليل الثغرات الأمنيةالاستغلالاختبار الاختراقالأوراق والأبحاثالفريق الأحمرمختبرات وتدريب عملي
GitHubabraxas/vfs-hook-impersonate

vfs-hook-impersonate

VFS for Git ab95cf51 - عالي - محلي - بقايا صلاحيات - hook CreateFileW SecurityImpersonation

عرض المستودع
5منذ 4 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

Abraxas Labs - vfs-hook-impersonate

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  vfs-hook-impersonate

vfs-hook-impersonate

الفئة: صلاحية متبقية الوصول: محلي

VFS for Git master ab95cf51 (tag v2.0.26259.1) - Microsoft

خطافات git الأصلية (read-object، virtual-filesystem، post-index-changed) تفتح أنبوب التركيب الخاص بكل تجنيد باستخدام CreateFileW و dwFlagsAndAttributes = 0. هذا يحذف SECURITY_SQOS_PRESENT، لذا يقوم Windows بضبط العميل افتراضيًا على SecurityImpersonation. نفس قائمة التحكم بالوصول (ACL) للأنبوب التي يستخدمها leftover #2 تمنح BUILTIN\Users ReadWrite | CreateNewInstance.

يمكن لمستخدم محلي ثانٍ إنشاء نسخة إضافية أو الاستيلاء على \\.\pipe\GVFS_<ENLISTMENT>، وImpersonateNamedPipeClient، والكتابة بصفة الضحية.

IDلا يوجد CVE بعد
الفئةصلاحية متبقية (انتحال هوية الأنبوب المسمّى)
الوصولمحلي
CWECWE-284، CWE-300
CVSSمرتفع: 7.1 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
المنتجVFS for Git
المتأثرmaster ab95cf51d6ffd0ee0e2feae7180078fe9ecbbb3a (أيضًا الحالي مقابل الإصدار v2.0.26259.1). Windows فقط.
المصادقةمحلي. الضحية لديها تجنيد GVFS. المهاجم هو أي أصل BUILTIN\Users. الضحية تشغّل git لاحقًا.
الترخيصGNU Affero GPL v3.0
المختبر127.0.0.1 فقط. how=gadget (لا يوجد جهاز Windows افتراضي مباشر / VFS for Git مثبّت).

هذا محلي. ليس SYSTEM. Automount في leftover #4 هو أنبوب مختلف (GVFS.Service.pipe). Dehydrate/unmount على نفس أنبوب التركيب هذا هو leftover #2.

ما يمكن للمهاجم فعله

الضحية لديها تجنيد GVFS. المهاجم هو أي أصل BUILTIN\Users. الضحية تشغّل git لاحقًا (status، checkout، أي شيء يُفعّل خطافات VFS).

الصلاحيةالطريقة / الهدفما تمنحهالاستطلاع / السلامة / التوفرمُثبت مختبريًا أو مُستنتج
انتحال هوية الضحية والكتابة في ملفهم الشخصينسخة إضافية / الاستيلاء على \\.\pipe\GVFS_C_\REPOS\FOO؛ خطاف CreateFileW flags=0؛ ImpersonateNamedPipeClient؛ إنشاء %USERPROFILE%\VFS-HOOK-IMPERSONATE-WITNESSالكتابة بمعرّف الضحية (UID)السلامةمُثبت مختبريًا على gadget. مالك الشاهد هو uid الضحية. الأعلام الافتراضية هي SecurityImpersonation. لا يمكن لـ uid المهاجم الكتابة في ذلك المنزل دون انتحال الهوية
إبقاء git يعمل بعد الاستيلاءالرد بـ S|\x03 على MPL|1 حتى لا يتعلّق GVFS.VirtualFileSystemHookيستمر gitتوفر git الخاص بالضحيةمُثبت مختبريًا. reply_ok للخطاف على كلا المسارين المصاب والمُرقّع
تخمين اسم الأنبوب من جذر التجنيدGetGVFSPipeName يمشي في CWD إلى .gvfs، CharUpper، : -> _، البادئة \\.\pipe\GVFS_اسم IPC قابل للتخمينالاستطلاعمُثبت مختبريًا. C:\Repos\Foo\src -> \\.\pipe\GVFS_C_\REPOS\FOO
إعادة توجيه الأنبوب دون الفوز بالنسخة الحيةزرع دليل src\.gvfs متتبَّع بحيث يربط المشي لأعلى اسمًا مختلفًاالاستيلاء دون التسابق مع التركيبالسلامةمُستنتج من المشي لأعلى في common.windows.cpp. استخدم المختبر .gvfs الخاص بالتجنيد الحقيقي
الرد على DLO / PICN بالإضافة إلى MPLنفس الأنبوب، ReadObjectHook / PostIndexChangedHookالكذب بشأن الكائنات / skip-worktreeالسلامةمُستنتج. أرسل المختبر MPL|1 فقط
إسقاط الخطاف بـ S\x03 من بايتينVirtualFileSystemHook messageLength -= 2 ثم -= 1 يحدث underflow وfwrites ~4GiBإسقاط / قراءة خارج الحدودالتوفرمُستنتج من main.cpp 69-90. ليس الـ oracle. لا تُطلق ذلك الانهيار

مُغلق هنا: SYSTEM (التركيب هو مستخدم التجنيد). RCE عن بُعد غير مُصادَق. جهاز Windows افتراضي مباشر / VFS for Git مثبّت (هذا المختبر هو gadget للدوال المنسوخة).

نفس leftovers التثبيت: vfs-quote-breakout، vfs-mount-dehydrate، vfs-clone-acl، vfs-service-sid، vfs-install-cwd.

كيف وجدته

ثبّتت VFSForGit master ab95cf51 بعد دمج 2026-09-28. الخطافات الأصلية CreateFileW بأعلام 0. ثم يقوم Windows افتراضيًا بـ SecurityImpersonation. أنبوب التركيب يسمح بالفعل لـ Users بنسخة إضافية. هذا هو leftover.

المنعطفات الخاطئة المسجّلة بالفعل: معاملة هذا كـ leftover #2 dehydrate (نفس ACL، هدف مختلف: token، وليس MoveDirectory)؛ ادعاء SYSTEM؛ إطلاق underflow بحجم 4GiB كـ oracle. مسرحية. كان Windows الأصلي مفقودًا، لذا المختبر هو gadget لتلك الدوال. مقابس Unix تحل محل الأنابيب المسمّاة.

المختبر

python3 vfs-hook-impersonate-Abraxas-Labs.py

أو

cd lab
./run.sh

Gadget HTTP على 127.0.0.1:19670. ينسخ GetGVFSPipeName، أعلام CreatePipeToGVFS، ACL CreateNewInstance الخاص بـ Users، وبروتوكول الخطاف MPL|1 / S|. عميل مُرقّع بـ SQOS identification لا يكتب الشاهد. السطر الأخير يستخدم how=gadget.

SUCCESS vfs-hook-impersonate how=gadget createfile-flags=0 impersonation=SecurityImpersonation extra-instance=yes owner=victim patched-sqos-ident-no-write=yes VFS-HOOK-IMPERSONATE-WITNESS

الإصلاح

على الخطاف CreateFileW مرّر SECURITY_SQOS_PRESENT | SECURITY_IDENTIFICATION. قيّد CreatePipeByName على SID مالك التجنيد بالإضافة إلى LocalSystem. أزل CreateNewInstance لـ Users. افحص أطوال رد الخطاف بحدود.

المراجع

  • github.com/microsoft/VFSForGit master ab95cf51d6ffd0ee0e2feae7180078fe9ecbbb3a
  • common.windows.cpp CreatePipeToGVFS
  • WindowsPlatform.cs CreatePipeByName
  • CWE-284 · CWE-300

الترخيص

GNU Affero GPL v3.0. انظر LICENSE. مختبر loopback فقط. لا ضمان.

تنزيل الأداة