Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

फ़ीडसंपर्कगोपनीयता© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
vfs-mount-dehydrate — VFS for Git ab95cf51 - उच्च - स्थानीय - विशेषाधिकार अवशेष - उपयोगकर्ता माउंट पाइप डिहाइड्रेट/अनमाउंट | Kitploit
उपकरण/GitHubGitHub/abraxas/vfs-mount-dehydrate
विशेषाधिकार वृद्धिभेद्यता विश्लेषणशोषण
GitHubabraxas/vfs-mount-dehydrate

vfs-mount-dehydrate

VFS for Git ab95cf51 - उच्च - स्थानीय - विशेषाधिकार अवशेष - उपयोगकर्ता माउंट पाइप डिहाइड्रेट/अनमाउंट

रिपॉजिटरी देखें
54 दिन पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

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

प्रति-enlistment mount pipe पर CreatePipeByName BUILTIN\Users को ReadWrite | CreateNewInstance प्रदान करता है। कोई owner SID जाँच नहीं है और कोई ImpersonateNamedPipeClient नहीं है। HandleDehydrateFolders हमलावर के folder नामों को Path.Combine करता है और ProcessStartInfo.Arguments के माध्यम से git को feed करता है। CLI dehydrate पथ IsFolderValid चलाता है। mount handler नहीं चलाता।

Users में कोई भी व्यक्ति जो \\.\pipe\GVFS_<ENLISTMENT> का अनुमान लगा सकता है, ProjFS को unmount कर सकता है, mount उपयोगकर्ता के रूप में directories को स्थानांतरित कर सकता है, और git reset HEAD --hard को बाध्य कर सकता है।

IDअभी तक कोई CVE नहीं
वर्गविशेषाधिकार अवशेष (named-pipe ACL) / path traversal / argument injection
पहुँचस्थानीय
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; installer tags v2.0.26229.1 / v2.0.26259.1. केवल Windows.
प्रमाणीकरणस्थानीय। कोई भी BUILTIN\Users principal जब तक पीड़ित का mount मौजूद है
लाइसेंसGNU Affero GPL v3.0
लैबकेवल 127.0.0.1। how=gadget (कोई Windows VM / live ProjFS नहीं)।

Pipe प्रोटोकॉल: UTF-8 Header या Header|body, byte 0x03 द्वारा समाप्त। Pipe नाम GVFS_ + uppercase किया गया enlistment root है जिसमें : को _ से बदला गया है (उदाहरण C:\Repos\Foo -> \\.\pipe\GVFS_C_\REPOS\FOO)।

हमलावर क्या कर सकता है

पीड़ित का gvfs mount एक ज्ञात root पर है। हमलावर उसी मशीन पर एक अन्य Users principal है। पीड़ित के रूप में integrity और availability। SYSTEM नहीं। अपने आप में shell नहीं।

विशेषाधिकारविधि / sinkयह क्या प्रदान करता हैRecon / integrity / availabilityलैब-प्रमाणित या अनुमानित
पीड़ित mount pipe से कनेक्ट करेंCreatePipeByName ACL BuiltinUsers ReadWrite | CreateNewInstance; कोई owner जाँच नहींmount IPC से बात करेंpipe की Reconलैब-प्रमाणित (gadget ACL)। हमलावर SID स्वीकृत; owner-only मोड connect-denied लौटाता है
enlistment path, cache path, RepoUrl पढ़ेंGetStatusleftover #1 / #4 के लिए उपयोग किया गया root लीक करेंReconलैब-प्रमाणित। Status JSON में RepoUrl और GVFS_C_\REPOS\FOO शामिल था
ProjFS को unmount करें और gvfs.mount से बाहर निकलेंसंदेश Unmountenlistment को नीचे गिराएँAvailabilityलैब-प्रमाणित। Ack फिर Complete का उत्तर देता है; mount स्थिति Unmounted
parse विफलता पर unmountखाली body के साथ ReleaseLock -> RequestData == null -> UnmountAndStopWorkingDirectoryCallbacks + Environment.Exitवही unmount प्लस process exitAvailabilityलैब-प्रमाणित। खाली ReleaseLock| ने unmount कर दिया
पीड़ित working tree को त्यागेंDehydrate|{"Folders":"--hard",...}। movedFolders.Add भले ही source dir अनुपस्थित हो। Reset("HEAD", "\"--hard\" ") quote strip के बाद git reset HEAD --hard बन जाता हैdirty tracked files को नष्ट करेंIntegrity / availabilityलैब-प्रमाणित। dirty tracked file ने witness string खो दिया
पीड़ित के रूप में worktree से folder को बाहर ले जाएँPath.Combine(WorkingDirectoryBackingRoot, folder) + MoveDirectory से BackupFolderPathworktree folder को चुराएँ / स्थानांतरित करेंIntegrityलैब-प्रमाणित। keepme ने src छोड़ा और हमलावर backup path के अंतर्गत प्रकट हुआ
.. को traverse करें (CLI IsFolderValid का उपयोग नहीं होता)वही Combine; ..\secretmount उपयोगकर्ता जिसे लिख सकता है उसे sibling स्थानांतरित करेंIntegrityलैब-प्रमाणित। sibling secret हमलावर backup path के अंतर्गत पहुँचा। IsFolderValid लागू करने से यह अवरुद्ध हो गया
अन्य पीड़ित-लेखन-योग्य directories को चुराएँ या नष्ट करें..\ श्रृंखला के साथ वही move जो enlistment के बाहर resolve होती हैmount उपयोगकर्ता के रूप में व्यापक moveIntegrityCombine से अनुमानित। यह लैब केवल throwaway tree का उपयोग करती है
पीड़ित के रूप में code execयह pipeहमलावर image का process createIntegrityबंद। इस leftover पर हमलावर image का कोई process create नहीं (देखें vfs-service-sid और vfs-hook-impersonate)
SYSTEMmount IPCLocalSystemIntegrityबंद। Mount enlistment उपयोगकर्ता के रूप में चलता है

--hard एक .. path नहीं है। CLI IsFolderValid अभी भी इसे अनुमति देता है। एक fix को option-जैसे folder नामों को भी अस्वीकार करना चाहिए।

समान pin leftovers: vfs-quote-breakout, vfs-clone-acl, vfs-service-sid, vfs-hook-impersonate, vfs-install-cwd.

मैंने इसे कैसे खोजा

मैंने 2026-09-28 merge के बाद VFSForGit master ab95cf51 को pin किया। service pipe और per-enlistment mount pipe CreatePipeByName साझा करते हैं। CLI पर Dehydrate folders को validate करता है। mount handler नहीं करता।

पहले से दर्ज गलत मोड़: --hard को path traversal मानना (यह quote strip के बाद argument injection है); SYSTEM का दावा करना; एक reverse shell। नाटक। Native Windows अनुपस्थित था, इसलिए लैब उन functions का gadget प्लस एक throwaway git tree है।

लैब

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

या

cd lab
./run.sh

127.0.0.1:19640 पर Gadget HTTP जो pipe message आकार बोलता है। container के अंदर throwaway git tree। कोई reverse shell नहीं। कोई वास्तविक profile path नहीं। अंतिम पंक्ति 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 को enlistment owner SID प्लस LocalSystem तक सीमित करें। Users के लिए CreateNewInstance हटाएँ। client का impersonate करें और owner की आवश्यकता रखें। HandleDehydrateFolders में IsFolderValid को दोहराएँ और git options जैसे दिखने वाले नामों को अस्वीकार करें। ReleaseLock parse विफलता को process exit न मानें।

संदर्भ

टूल डाउनलोड करें