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

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

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

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

دليل الأدوات

الفئات

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

vfs-mount-dehydrate

VFS for Git ab95cf51 - عالي - محلي - بقايا صلاحيات - يقوم المستخدمون بتركيب pipe dehydrate/unmount

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

الأكثر شعبية

عرض الكل →

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

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

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

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

Abraxas Labs - vfs-mount-dehydrate

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

vfs-mount-dehydrate

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

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

CreatePipeByName على أنبوب التحميل الخاص بكل enlistment يمنح BUILTIN\Users صلاحية ReadWrite | CreateNewInstance. لا يوجد فحص لـ SID المالك ولا ImpersonateNamedPipeClient. HandleDehydrateFolders يقوم بـ Path.Combine لأسماء المجلدات التي يتحكم بها المهاجم ويمررها إلى git عبر ProcessStartInfo.Arguments. مسار dehydrate في CLI يشغّل IsFolderValid. معالج التحميل لا يفعل ذلك.

أي شخص ضمن Users يستطيع تخمين \\.\pipe\GVFS_<ENLISTMENT> يمكنه إلغاء تحميل ProjFS، ونقل المجلدات بصفة مستخدم التحميل، وإجبار git reset HEAD --hard.

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

بروتوكول الأنبوب: UTF-8 Header أو Header|body، ينتهي بالبايت 0x03. اسم الأنبوب هو GVFS_ + جذر enlistment بأحرف كبيرة مع استبدال : بـ _ (مثال C:\Repos\Foo -> \\.\pipe\GVFS_C_\REPOS\FOO).

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

الضحية لديها gvfs mount على جذر معروف. المهاجم هو principal آخر من Users على نفس الجهاز. السلامة والتوافر بصفة الضحية. ليس SYSTEM. وليس shell بحد ذاته.

الصلاحيةالطريقة / الهدفما تمنحهاستطلاع / سلامة / توافرمُثبت مختبريًا أو مُستنتج
الاتصال بأنبوب تحميل الضحيةCreatePipeByName ACL BuiltinUsers ReadWrite | CreateNewInstance؛ بدون فحص المالكالتحدث عبر IPC التحميلاستطلاع الأنبوبمُثبت مختبريًا (gadget ACL). SID المهاجم مقبول؛ وضع المالك فقط يعيد رفض الاتصال
قراءة مسار enlistment، مسار cache، RepoUrlGetStatusتسريب الجذر المستخدم للصلاحية المتبقية #1 / #4استطلاعمُثبت مختبريًا. JSON الحالة تضمّن RepoUrl و GVFS_C_\REPOS\FOO
إلغاء تحميل ProjFS وإنهاء gvfs.mountالرسالة Unmountإسقاط enlistmentتوافرمُثبت مختبريًا. يرد Ack ثم Complete؛ حالة التحميل Unmounted
إلغاء التحميل عند فشل التحليلReleaseLock بجسم فارغ -> RequestData == null -> UnmountAndStopWorkingDirectoryCallbacks + Environment.Exitنفس إلغاء التحميل مع إنهاء العمليةتوافرمُثبت مختبريًا. ReleaseLock| الفارغ ألغى التحميل
إتلاف شجرة عمل الضحيةDehydrate|{"Folders":"--hard",...}. movedFolders.Add حتى لو كان المجلد المصدر مفقودًا. Reset("HEAD", "\"--hard\" ") يصبح git reset HEAD --hard بعد إزالة علامات الاقتباستدمير الملفات المتعقّبة المعدّلةسلامة / توافرمُثبت مختبريًا. ملف متعقّب معدّل فقد سلسلة الشاهد
نقل مجلد خارج شجرة العمل بصفة الضحيةPath.Combine(WorkingDirectoryBackingRoot, folder) + MoveDirectory إلى BackupFolderPathسرقة / نقل مجلد من شجرة العملسلامةمُثبت مختبريًا. keepme غادر src وظهر تحت مسار النسخ الاحتياطي للمهاجم
اجتياز .. (CLI IsFolderValid غير مستخدم)نفس Combine؛ ..\secretنقل مجلد شقيق يمكن لمستخدم التحميل الكتابة فيهسلامةمُثبت مختبريًا. المجلد الشقيق secret انتهى تحت مسار النسخ الاحتياطي للمهاجم. تطبيق IsFolderValid أوقفه
سرقة أو تدمير مجلدات أخرى قابلة للكتابة من الضحيةنفس النقل بسلسلة ..\ تُحلّ خارج enlistmentنقل أوسع بصفة مستخدم التحميلسلامةمُستنتج من Combine. هذا المختبر يستخدم شجرة مؤقتة فقط
تنفيذ كود بصفة الضحيةهذا الأنبوبإنشاء عملية لصورة المهاجمسلامةمغلق. لا إنشاء عملية لصورة المهاجم على هذه الصلاحية المتبقية (انظر vfs-service-sid و vfs-hook-impersonate)
SYSTEMmount IPCLocalSystemسلامةمغلق. التحميل يعمل بصفة مستخدم enlistment

--hard ليس مسار ... CLI IsFolderValid لا يزال يسمح به. الإصلاح يجب أن يرفض أيضًا أسماء المجلدات التي تشبه الخيارات.

صلاحيات متبقية على نفس الإصدار: vfs-quote-breakout، vfs-clone-acl، vfs-service-sid، vfs-hook-impersonate، vfs-install-cwd.

كيف وجدته

ثبّتت VFSForGit master ab95cf51 بعد دمج 2026-09-28. أنبوب الخدمة وأنبوب التحميل الخاص بكل enlistment يتشاركان CreatePipeByName. dehydrate في CLI يتحقق من المجلدات. معالج التحميل لا يفعل ذلك.

الطرق الخاطئة المسجّلة مسبقًا: التعامل مع --hard كاجتياز مسار (إنه حقن وسائط بعد إزالة علامات الاقتباس)؛ ادعاء SYSTEM؛ reverse shell. مسرح. كان Windows الأصلي مفقودًا، لذا المختبر هو gadget لتلك الدوال بالإضافة إلى شجرة git مؤقتة.

المختبر

python3 vfs-mount-dehydrate-Abraxas-Labs.py

أو

cd lab
./run.sh

Gadget HTTP على 127.0.0.1:19640 يتحدث بشكل رسائل الأنبوب. شجرة git مؤقتة داخل الحاوية. لا reverse shell. لا مسار ملف تعريف حقيقي. السطر الأخير يستخدم how=gadget.

SUCCESS vfs-mount-dehydrate how=gadget unmount=yes reset-hard=yes dirty-gone=yes move-inside=yes move-dotdot=yes pipe-acl=users-no-owner is-folder-valid-not-on-pipe=yes VFS-MOUNT-DEHYDRATE-WITNESS

الإصلاح

قيّد CreatePipeByName بـ SID مالك enlistment بالإضافة إلى LocalSystem. أزل CreateNewInstance لـ Users. انتحل هوية العميل واطلب المالك. كرّر IsFolderValid في HandleDehydrateFolders وارفض الأسماء التي تشبه خيارات git. لا تعامل فشل تحليل ReleaseLock كإنهاء للعملية.

المراجع

  • github.com/microsoft/VFSForGit master ab95cf51d6ffd0ee0e2feae7180078fe9ecbbb3a
  • WindowsPlatform.cs CreatePipeByName
  • InProcessMount.cs dehydrate / unmount / ReleaseLock
  • للمقارنة DehydrateVerb.cs IsFolderValid
  • CWE-284 · CWE-22 · CWE-88

الترخيص

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

تنزيل الأداة