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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
vbox-vmdk-sparse-extent — Oracle VM VirtualBox 7.2.20 - उच्च - स्थानीय - फ़ाइल पढ़ना - VMDK sparse FLAT extent path join | Kitploit
उपकरण/GitHubGitHub/abraxas/vbox-vmdk-sparse-extent
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणसुरक्षा वर्चुअलाइजेशनपेनिट्रेशन टेस्टिंगलैब और अभ्यास
GitHubabraxas/vbox-vmdk-sparse-extent

vbox-vmdk-sparse-extent

Oracle VM VirtualBox 7.2.20 - उच्च - स्थानीय - फ़ाइल पढ़ना - VMDK sparse FLAT extent path join

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

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

सभी देखें →

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

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

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

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

Abraxas Labs - vbox-vmdk-sparse-extent

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  vbox-vmdk-sparse-extent

vbox-vmdk-sparse-extent

वर्ग: फ़ाइल पठन पहुँच: स्थानीय (होस्ट) UI:R

Oracle VM VirtualBox OSS 7.2.20 (f2792cf44) - Oracle

एक होस्ट उपयोगकर्ता जो ऐसी OVF निर्देशिका या OVA आयात करता है जिसकी डिस्क एक sparse VMDK डिस्क्रिप्टर और FLAT extent है, वह उस extent में नामित होस्ट पथ खोलता है और उन बाइट्स को आयातित डिस्क में कॉपी करता है। vmdkParseDescriptor के बाद, pszBasename जिसका आरंभ RTPATH_SLASH से होता है, वाला प्रत्येक extent जैसा है वैसा ही उपयोग किया जाता है; अन्यथा RTPathJoinA(descriptor dir, pszBasename) का उपयोग होता है जो ../ का अनुसरण करता है। FLAT और HOSTED_SPARSE फिर उस पूर्ण पथ पर vmdkFileOpen करते हैं। streamOptimized (सामान्य VirtualBox निर्यात, VMDK magic) एकल फ़ाइल है और यह इस प्रक्रिया से नहीं गुज़रता। आयात अभी भी sparse specifier स्वीकार करता है।

IDअभी तक कोई CVE नहीं
वर्गफ़ाइल पठन (sparse VMDK FLAT/sparse extent पथ)
पहुँचस्थानीय (होस्ट) UI:R (पीड़ित एक शत्रुतापूर्ण एप्लायंस आयात करता है)
CWECWE-22
CVSSउच्च: 7.7 CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:H/I:N/A:N
उत्पादOracle VM VirtualBox OSS
प्रभावित7.2.20 (f2792cf44f663989818507e36d3db5f978523c5e)
प्रमाणीकरणVirtualBox पर कोई नहीं। होस्ट उपयोगकर्ता File/Import या VBoxManage import खोलता है।
लाइसेंसGNU Affero GPL v3.0
लैबकेवल 127.0.0.1। स्रोत हार्नेस। VirtualBox बूट नहीं किया गया है।

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

एक OVF निर्देशिका या एक OVA भेजें। एक sparse VMDK डिस्क्रिप्टर (# Disk DescriptorFile, createType="monolithicFlat") को एक FLAT extent के बगल में रखें जिसका उद्धृत basename ../../somewhere/secret या /path/secret है। जो ऑपरेटर इसे आयात करता है, वह उस होस्ट पथ को आयात करने वाले UID के रूप में खोलता है और बाइट्स को गंतव्य डिस्क में कॉपी करता है। streamOptimized (VMDK magic 0x564D444B) एम्बेडेड FLAT नाम को नहीं देखता। यह उन फ़ाइलों का पठन है जिन्हें VBox UID खोल सकता है, न कि authorized_keys का प्रत्यय-मुक्त लेखन।

विशेषाधिकारविधि + सिंकयह क्या प्रदान करता हैउद्गम
रेकॉनएक ASCII स्पार्स VMDK का आयात। vmdkParseDescriptor के बाद, RTPathJoinA(descriptor dir, pszBasename) बिना किसी ../ संकुचन के (VMDK.cpp 3472-3503)। उस पूर्ण पथ का FLAT vmdkFileOpen। आयात उन बाइट्स को dest में कॉपी करता है।../ द्वारा नामित होस्ट फ़ाइल बाइट्स आयातित डिस्क में पहुँच जाती हैं। लैब pszBasename ../../oracle/VBOX-VMDK-SPARSE-EXTENT-WITNESS को /work/import/disk/../../oracle/... से जोड़ा गया और /work/import/out.vmdk में कॉपी किया गया।लैब-प्रमाणित (relative-escape=yes)
रेकॉनवही वॉक। pszBasename[0] == RTPATH_SLASH को जैसा है वैसा ही उपयोग किया जाता है (VMDK.cpp 3477-3485)।निरपेक्ष होस्ट पथ खोला और कॉपी किया गया। लैब /work/oracle/VBOX-VMDK-SPARSE-EXTENT-WITNESS।लैब-प्रमाणित (absolute-extent=yes)
रेकॉननियंत्रण FLAT disk-flat.vmdk को डिस्क्रिप्टर निर्देशिका के अंतर्गत जोड़ा गया।फ़ोल्डर के भीतर ही रहता है। लैब पूर्णनाम /work/import/disk/disk-flat.vmdk। बाइट्स CONTROL-FLAT-NOT-ORACLE।लैब-प्रमाणित (control-in-folder=yes)
रेकॉनVMDK मैजिक के साथ streamOptimized। vmdkDescriptorRead vmdkDescriptorReadSparse लेता है। एम्बेडेड ASCII FLAT ने oracle का नाम दिया।एम्बेडेड नाम को नहीं खोला। dest स्ट्रीम फ़ाइल ही रहा (STREAMOPTIMIZED-SELF-NOT-ORACLE)।लैब-प्रमाणित (streamoptimized-consults-extent=no)
रेकॉनगेस्ट Start, फिर परिवर्तित वॉल्यूम पढ़ें।गेस्ट को आयातक-UID-पठनीय होस्ट फ़ाइल सामग्री दिखती है जो dest में पहुँची।अनुमानित (वही कॉपी; लैब गेस्ट बूट नहीं करता)
उपलब्धताआयात dest जो पहले से मौजूद है, या परिवर्तित डिस्क का बाद में अटैच।dest डिस्क की उपलब्धता का अधिलेखन। सामग्री खोली गई होस्ट फ़ाइल बन जाती है।अनुमानित (dest का वही लेखन)
बंदstreamOptimized VMDK (सामान्य VirtualBox निर्यात)मैजिक शाखा। एकल फ़ाइल। एम्बेडेड FLAT नाम नहीं खोला जाता।बंद
बंदWindows ड्राइव-अक्षर निरपेक्ष (C:\...)pszBasename[0] == RTPATH_SLASH चूक सकता है। कोड निरपेक्ष जाँच को एक हैक कहता है (@todo implement proper path absolute check)।बंद
बंदप्रत्यय-रहित लेखन (authorized_keys, crontab)लेखन अवशेष नहीं। एक्सटेंट खोलना नामित होस्ट पथ का पठन है।बंद
बंदहोस्ट कर्नेल, गेस्ट-से-होस्ट, अन्य VM, VBoxSVC मेमोरीयह अवशेष नहीं। कॉपी के लिए किसी VM स्टार्ट की आवश्यकता नहीं। आयातक के समान UID।बंद

OVA वही वॉक है जब स्पार्स डिस्क्रिप्टर डिस्क पर आ जाता है: tar सदस्य डिस्क्रिप्टर के साथ (वैकल्पिक) इन-फ़ोल्डर FLAT प्रदान करता है; एक्सटेंट बेसनेम एस्केप्ड ओपन प्रदान करता है। कोई 3D नहीं, कोई Guest Additions नहीं, कोई VRDP नहीं, PUEL नहीं।

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

मैंने सितंबर 2026 CPU के बाद टैग v7.2.20 (f2792cf44) पर ध्यान दिया और VMDK आयात पढ़ा। ExtraData, साझा फ़ोल्डर, NVRAM dest, और सीरियल RawFile पहले ही हटा दिए गए हैं। ovf:href dest एक सहोदर अवशेष है। सामान्य VirtualBox निर्यात streamOptimized है। interpret() अभी भी स्पार्स स्पेसिफ़ायर (g_pszVMDKSparseURI) स्वीकार करता है। vmdkParseDescriptor के बाद, एक्सटेंट बेसनेम को ../ को संकुचित किए बिना या निरपेक्ष पथों को अस्वीकार किए बिना जोड़ा जाता है:

/* Hack to figure out whether the specified name in the
 * extent descriptor is absolute. Doesn't always work, but
 * should be good enough for now. */
char *pszFullname;
/** @todo implement proper path absolute check. */
if (pExtent->pszBasename[0] == RTPATH_SLASH)
{
    pszFullname = RTStrDup(pExtent->pszBasename);
    /* ... */
}
else
{
    char *pszDirname = RTStrDup(pImage->pszFilename);
    RTPathStripFilename(pszDirname);
    pszFullname = RTPathJoinA(pszDirname, pExtent->pszBasename);
    /* ... */
}
pExtent->pszFullname = pszFullname;

RTPathJoinA केवल स्लैश-संतुलन करता है। यह .. को संकुचित नहीं करता। FLAT और HOSTED_SPARSE फिर उस स्ट्रिंग को खोलते हैं:

case VMDKETYPE_FLAT:
    rc = vmdkFileOpen(pImage, &pExtent->pFile, pExtent->pszBasename, pExtent->pszFullname,
                      VDOpenFlagsToFileOpenFlags(uOpenFlags, false /* fCreate */));

vmdkDescriptorRead मैजिक पर विभाजित होता है। VMDK स्पार्स मैजिक (0x564D444B) vmdkDescriptorReadSparse लेता है और पहले से खुली फ़ाइल को extent के रूप में रखता है। ASCII vmdkDescriptorReadAscii और ऊपर दिए गए join को लेता है।

पहले से दर्ज गलत मोड़: streamOptimized को इस अवशेष के रूप में मानना (मैजिक एम्बेडेड FLAT नाम से परामर्श नहीं करता); Windows ड्राइव-लेटर निरपेक्ष को Unix स्लैश जाँच के रूप में मानना; dest-disk अधिलेखन को प्रत्यय-रहित authorized_keys लेखन के रूप में मानना; VM को बूट करना जब join का स्रोत harness पर्याप्त है। थिएटर: होस्ट कर्नेल, गेस्ट-टू-होस्ट। ओरेकल डिस्क्रिप्टर फ़ोल्डर के बाहर एक गवाह पंक्ति है साथ ही एक नियंत्रण disk-flat.vmdk जो अपनी जगह पर रहा।

लैब

python3 vbox-vmdk-sparse-extent-Abraxas-Labs.py

या

cd lab
./run.sh

vmdkParseDescriptor extent join, vmdkFileOpen, और streamOptimized magic शाखा का स्रोत harness। Docker compose, loopback 127.0.0.1:19250, कोई VirtualBox बाइनरी नहीं। Descriptor dir /work/import/disk। Oracle /work/oracle। Dest /work/import/out.vmdk।

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