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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
vfs-quote-breakout — VFS for Git ab95cf51 - عالي - عن بُعد - RCE - core.virtualfilesystem التفاف بعلامة اقتباس مفردة | Kitploit
أدوات/GitHubGitHub/abraxas/vfs-quote-breakout
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالقيادة والسيطرةالأوراق والأبحاثتطوير الحمولات
GitHubabraxas/vfs-quote-breakout

vfs-quote-breakout

VFS for Git ab95cf51 - عالي - عن بُعد - RCE - core.virtualfilesystem التفاف بعلامة اقتباس مفردة

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

الأكثر شعبية

عرض الكل →

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

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

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

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

Abraxas Labs - vfs-quote-breakout

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

vfs-quote-breakout

الفئة: RCE الوصول: عن بُعد

VFS for Git master ab95cf51 (الوسم v2.0.26259.1) - Microsoft

CloneVerb.GetCloneRoot يأخذ آخر مقطع من مسار URL كاسم مجلد التجنيد الافتراضي ولا يزيل علامة الاقتباس. ثم RequiredGitConfig يكتب core.virtualfilesystem كمسار خطاف مُغلَّف بعلامة اقتباس مفردة بشكل ساذج. يقوم microsoft/git بتشغيل تلك القيمة مع use_shell=1. حتى تعليق المنتج يذكر bash.

URL استنساخ يكون مقطعه الأخير pwn';witness;' يصبح 'C:/temp/pwn';witness;'/src/.git/hooks/GVFS.VirtualFileSystemHook.exe'. يرى bash ثلاثة أوامر. الأمر الأوسط يعمل بصلاحيات المستخدم الذي قام بالاستنساخ.

المعرّفلا يوجد CVE بعد
الفئةRCE (تغليف بعلامة اقتباس مفردة لـ core.virtualfilesystem)
الوصولعن بُعد (UI:R استنساخ URL مهاجم، أو git worktree add محلي تحت مجلد مُصمَّم)
CWECWE-78، CWE-116
CVSSمرتفع: 8.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
المنتجVFS for Git (يحتاج microsoft/git)
المتأثرmaster ab95cf51d6ffd0ee0e2feae7180078fe9ecbbb3a (الوسم v2.0.26259.1). Windows فقط.
المصادقةالضحية يستنسخ URL مهاجم (أو git worktree add تحت مجلد مُصمَّم)
الترخيصGNU Affero GPL v3.0
المختبر127.0.0.1 فقط. how=gadget (بدون Windows VM / ProjFS حي).

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

تنفيذ كود على المضيف بصلاحيات المستخدم الذي استنسخ أو شغّل git. ليس SYSTEM. ليس RCE بدون مصادقة يتجاوز "الضحية يستنسخ هذا URL".

الصلاحيةالطريقة / نقطة الوصولما تمنحهالاستطلاع / السلامة / التوفرمُثبت مختبرياً أو مُستنتج
اختيار اسم مجلد التجنيدآخر مقطع مسار من gvfs clone <url> بدون وجهة (CloneVerb.GetCloneRoot)اسم المجلد يختاره المهاجم. Windows يسمح بـ ' و ;سلامة مسار الوجهةمُثبت مختبرياً على مساعد الوجهة المنسوخ. URL .../pwn';witness;' يصبح C:\temp\pwn';witness;'
الخروج من core.virtualfilesystemتغليف RequiredGitConfig "'" + ConvertPathToGitFormat(hook) + "'"قيمة الإعداد هي ثلاث رموز shell، وليس مساراً واحداًسلامة إعداد gitمُثبت مختبرياً. التغليف هو 'C:/temp/pwn';witness;'/src/.git/hooks/GVFS.VirtualFileSystemHook.exe'
تشغيل أمر shell إضافي بصلاحيات المستنسخmicrosoft/git virtualfilesystem.c use_shell=1 (bash -c لقيمة الإعداد)أمر مضيف عشوائي بصلاحيات UID المستنسخسلامة / توفر جلسة المستنسخمُثبت مختبرياً على الأداة. witness كتب VFS-VFS-QUOTE-WITNESS. الرمزان الأول والثالث مسارات مفقودة (rc 127)
نفس التغليف على worktreeProgram.Worktree.cs -c core.virtualfilesystem="'<path>'"نفس الخروج بدون URL استنساخالسلامةمُستنتج من كود المصدر المثبّت. لم يُنفَّذ
التكرار عند git status / mount لاحقاًInProcessMount.TrySetRequiredGitConfigSettings يعيد تطبيق التغليفgit اللاحق أيضاً يشغّل القيمة العدائية عبر shellالسلامةمُستنتج. لم يُنفَّذ

مغلق على هذه البقايا: ProjFS حي / Microsoft git / gvfs clone (هذا المضيف macOS؛ how=gadget). SYSTEM. RCE بدون مصادقة يتجاوز "الضحية يستنسخ هذا URL". وجهة لا يحتوي اسمها على '، ونفس المسار العدائي مُغلَّف بـ '\''، لا يشغّلان witness.

نفس بقايا التثبيت: vfs-mount-dehydrate، vfs-clone-acl، vfs-service-sid، vfs-hook-impersonate، vfs-install-cwd.

كيف وجدته

ثبّتُ VFS for Git master ab95cf51 بعد دمج 2026-09-28. توصي Microsoft بـ Scalar للنشر الجديد. الشجرة لا تزال موسومة v2.0.26259.1. قائمة التخطي هي CVE-2021-47874 (binPath مُغلَّف على هذا التثبيت). عشر عمليات بحث. ProjFS hydration، محللات GPRE، URLs ذاكرة التخزين المؤقت، FastFetch، و gvfs upgrade عادت فارغة في هذا المعيار.

ثم جلست على RequiredGitConfig. التعليق يوثّق bash. التغليف لا يهرّب '. CloneVerb يستخدم آخر مقطع URL كوجهة. تلك هي البقايا.

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

المختبر

python3 vfs-quote-breakout-Abraxas-Labs.py

أو

cd lab
./run.sh

أداة HTTP على 127.0.0.1:19630. تنسخ مساعدي التغليف والوجهة، ثم /bin/bash -c مع PATH محدود بمساعد witness يكتب الـ oracle. لم يكن Windows VM الأصلي متاحاً. السطر الأخير يستخدم how=gadget.

SUCCESS vfs-quote-breakout how=gadget who=cloner naive-breakout=yes escaped-hold=yes VFS-VFS-QUOTE-WITNESS

الإصلاح

هرّب ' كـ '\'' قبل التغليف، أو توقف عن استخدام use_shell ومرّر الخطاف كـ argv[0]. ارفض مسارات الاستنساخ و worktree التي تحتوي على '.

المراجع

  • github.com/microsoft/VFSForGit master ab95cf51d6ffd0ee0e2feae7180078fe9ecbbb3a (الوسم v2.0.26259.1)
  • CloneVerb.cs الوجهة الافتراضية
  • RequiredGitConfig.cs التغليف الذي لا يهرّب '
  • microsoft/git virtualfilesystem.c use_shell=1
  • قريب مُرقَّع (ليس هذا التغليف): CVE-2021-47874 ImagePath غير مُغلَّف
  • CWE-78 · CWE-116

الترخيص

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

تنزيل الأداة