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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
vfs-service-sid — VFS for Git ab95cf51 - متوسط - محلي - بقايا صلاحيات - خدمة الأنبوب تثق بـ JSON OwnerSID | Kitploit
أدوات/GitHubGitHub/abraxas/vfs-service-sid
المصادقة والترخيصتصعيد الامتيازاتتحليل الثغرات الأمنيةالاستغلالاختبار الاختراقسوء التكوينمختبرات وتدريب عملي
GitHubabraxas/vfs-service-sid

vfs-service-sid

VFS for Git ab95cf51 - متوسط - محلي - بقايا صلاحيات - خدمة الأنبوب تثق بـ JSON OwnerSID

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

الأكثر شعبية

عرض الكل →

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

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

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

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

Abraxas Labs - vfs-service-sid

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

vfs-service-sid

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

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

GVFS.Service يعمل كـ LocalSystem. WindowsPlatform.CreatePipeByName يمنح BUILTIN\Users صلاحية ReadWrite | CreateNewInstance على GVFS.Service.pipe. RegisterRepoHandler.Run يخزّن JSON OwnerSID كما هو. لا شيء يستدعي ImpersonateNamedPipeClient.

أي principal من Users يمكنه تسجيل مسار المهاجم تحت SID الضحية. عند SessionLogon يقوم الخدمة بـ CreateProcessAsUser لـ gvfs mount <attacker path> بصفة الضحية. العملية الابنة ليست NT AUTHORITY\SYSTEM.

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

قد يفشل Git 2.35+ dubious-ownership بعد ذلك في git داخل شجرة يملكها المهاجم. تظل العملية تبدأ بصفة الضحية. إذا كان المسار مملوكًا للضحية لكنه قابل للكتابة من المهاجم (vfs-clone-acl)، فإن mount git وcredential.helper والـ hooks تعمل بصفة ذلك المستخدم.

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

أي principal من BUILTIN\Users على جهاز مُثبّت عليه الخدمة. الاتصال بـ \\.\pipe\GVFS.Service.pipe. بدون صلاحية إضافية.

الصلاحيةالطريقة / الهدفما تمنحهاستطلاع / سلامة / إتاحةمُثبت مختبريًا أو مُستنتج
سرد كل جذر enlistment نشطGetActiveRepoListRequest بدون فحص SID (TryGetActiveRepos، وليس GetActiveReposForUser)مسارات تُستخدم كأوراكل لاسم الأنبوب للصلاحية المتبقية #2استطلاعمُثبت مختبريًا. سرد الـ gadget لـ /lab/repos/victim
تعطيل enlistment الضحية حتى لا يُركّب تلقائيًاUnregisterRepoRequest {EnlistmentRoot} بدون فحص SID (TryDeactivateRepo)تبقى مستودعات الضحية غير مُركّبةإتاحةمُثبت مختبريًا. اختفى صف الضحية من القائمة النشطة
إبقاء مسار المهاجم تحت SID الضحيةRegisterRepoRequest JSON EnlistmentRoot + OwnerSID؛ TryRegisterRepo يخزّن كليهماصف في الريجستري: مسار المهاجم + SID الضحيةسلامةمُثبت مختبريًا. صف الريجستري /lab/repos/attacker + S-1-5-21-1000-2000-3000-1001
تشغيل GVFS.exe mount <attacker path> بصفة الضحية عند تسجيل الدخولOnSessionChange SessionLogon -> AutoMountRepos(userId) -> TryRunAs / CreateProcessAsUserإنشاء عملية عبر المستخدمين بصفة مستخدم تسجيل الدخولسلامةمُثبت مختبريًا على الـ gadget. العملية الأب GVFS.Service، argv mount /lab/repos/attacker، uid 1002 victim، تم كتابة الشاهد
التشغيل كـ NT AUTHORITY\SYSTEMنفس التركيب التلقائيعملية ابنة بـ LocalSystemسلامةمغلق. whoami للعملية الابنة هو الضحية، وليس SYSTEM (child-not-system=yes)
Git / hook / credential.helper بصفة الضحية داخل شجرة يملكها المهاجمإنشاء العملية يحدث رغم ذلك؛ قد يفشل git 2.35+ safe.directoryRCE عبر hook بصفة الضحية إذا كانت الشجرة مملوكة للضحية لكن قابلة للكتابة من المهاجمسلامةمُستنتج. لم يشغّل المختبر git من Microsoft. اربط المسار كمملوك للضحية لكن قابل للكتابة من المهاجم لـ RCE عبر hook

مغلق على هذا الإصدار: وصول عن بُعد غير مُصادق (الأنبوب المسمّى محلي). صدفة SYSTEM. ACL الافتراضي للأنبوب لا يزال يسمح لـ Users بالدخول؛ تسجيل مُرقّع يربط SID العميل (gadget X-Patched: 1) لا يُركّب مسار المهاجم تلقائيًا للضحية.

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

كيف وجدتها

ثبّتت VFSForGit master ab95cf51 بعد دمج 2026-09-28. ACL أنبوب الخدمة هو Users ReadWrite. التسجيل يخزّن JSON OwnerSID. SessionLogon يُركّب تلقائيًا بصفة ذلك SID. لا شيء ينتحل هوية عميل الأنبوب.

منعطفات خاطئة مُسجّلة مسبقًا: تسمية هذا صدفة SYSTEM (التركيب التلقائي هو CreateProcessAsUser لرمز تسجيل الدخول)؛ معاملة git safe.directory كتفويض لـ IPC؛ صدفة عكسية. مسرح. كان Windows الأصلي مفقودًا، لذا المختبر هو gadget من معالجات الإصدار بالإضافة إلى أوراكل TCP على Unix.

المختبر

python3 vfs-service-sid-Abraxas-Labs.py

أو

cd lab
./run.sh

Gadget HTTP على 127.0.0.1:19660. الشاهد VFS-SERVICE-SID-WITNESS. السطر الأخير يستخدم how=gadget.

SUCCESS vfs-service-sid how=gadget register-forged-sid=yes automount-as-victim=yes child-not-system=yes VFS-SERVICE-SID-WITNESS

الإصلاح

انتحل هوية عميل الأنبوب المسمّى (ImpersonateNamedPipeClient / NamedPipeServerStream.RunAsClient). تجاهل JSON OwnerSID؛ اربط TryRegisterRepo بـ SID العميل. قيّد CreatePipeByName على المستخدم التفاعلي وLocalSystem (أزل BuiltinUsersSid ReadWrite / CreateNewInstance). يجب أن يُعيد GetActiveRepoList مستودعات ذلك العميل فقط. يجب أن يتطلب UnregisterRepo نفس مطابقة SID.

المراجع

  • github.com/microsoft/VFSForGit master ab95cf51d6ffd0ee0e2feae7180078fe9ecbbb3a
  • WindowsPlatform.cs Users ACL و{serviceName}.pipe
  • RegisterRepoHandler.cs
  • NamedPipeMessages.cs حقل SID المُقدَّم من العميل
  • RepoRegistry.cs التخزين وAutoMountRepos
  • GVFSMountProcess.cs TryRunAs(..., "mount", repoRoot, ...)
  • CWE-862 · CWE-284

الترخيص

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

تنزيل الأداة