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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
vbox-ovf-nat-tftp-prefix — VirtualBox 7.2.20 - उच्च - स्थानीय - फ़ाइल पढ़ना - OVF NAT TFTP खाली उपसर्ग | Kitploit
उपकरण/GitHubGitHub/abraxas/vbox-ovf-nat-tftp-prefix
विशेषाधिकार वृद्धिभेद्यता विश्लेषणशोषणसुरक्षा वर्चुअलाइजेशनपेपर और शोधलैब और अभ्यास
GitHubabraxas/vbox-ovf-nat-tftp-prefix

vbox-ovf-nat-tftp-prefix

VirtualBox 7.2.20 - उच्च - स्थानीय - फ़ाइल पढ़ना - OVF NAT TFTP खाली उपसर्ग

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

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

सभी देखें →

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

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

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

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

Abraxas Labs - vbox-ovf-nat-tftp-prefix

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  vbox-ovf-nat-tftp-prefix

vbox-ovf-nat-tftp-prefix

वर्ग: फ़ाइल पठन पहुँच: UI:R आयात के बाद स्थानीय (गेस्ट)

Oracle VM VirtualBox OSS 7.2.20 (f2792cf44) - Oracle

vbox:Machine OVF आयात ExtraData, साझा फ़ोल्डर, NVRAM पथ, और सीरियल RawFile को सैनिटाइज़ करता है। यह कभी भी NAT enable-tftp या TFTP @prefix को नहीं छूता। libslirp TFTP को केवल तब अक्षम करता है जब tftp_prefix NULL हो। DrvNAT का g_strdup("") गैर-NULL ही रहता है। गेस्ट RRQ etc/passwd जिसका prefix / या खाली हो, वह /etc/passwd बन जाता है। गेस्ट नाम में ../ अभी भी अस्वीकृत होता है।

खाली या / prefix वाला आयातित NAT TFTP गेस्ट को VBox UID के रूप में होस्ट फ़ाइलों का RRQ करने देता है। यह लेखन नहीं है। यह होस्ट-कर्नेल नहीं है। यह बंद ../ जाँच का अवशेष नहीं है।

IDअभी तक कोई CVE नहीं
वर्गफ़ाइल पठन (होस्ट पथों का गेस्ट TFTP RRQ)
पहुँचvbox:Machine OVF के UI:R आयात के बाद, फिर VM प्रारंभ के बाद स्थानीय (गेस्ट)
CWECVE-2022-21394 prefix वर्ग का अवशेष CWE-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)
प्रमाणीकरणगेस्ट में कोई नहीं; होस्ट उपयोगकर्ता को आयात करना होगा फिर प्रारंभ करना होगा
लाइसेंसGNU Affero GPL v3.0
लैबस्रोत हार्नेस; लूपबैक कंपोज़; VirtualBox बूट नहीं किया गया है

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

एक vbox:Machine OVF/OVA भेजें जिसके NAT ब्लॉब में enable-tftp और TFTP prefix / या खाली हो, साथ ही एक गेस्ट डिस्क जो NAT गेटवे (10.0.2.2:69) को TFTP RRQ जारी करे। होस्ट उपयोगकर्ता आयात करता है (File / Import या VBoxManage import) और VM प्रारंभ करता है। आयात ExtraData, साझा फ़ोल्डर, सीरियल RawFile, और NVRAM पथ को साफ़ कर देता है। TFTP फ़ील्ड बच जाते हैं। प्रारंभ पर, ConsoleImplConfigCommon EnableTFTP डालता है। खाली prefix CFGM से छोड़ दिया जाता है; DrvNAT फिर TFTPPrefix को "" पर डिफ़ॉल्ट करता है और उसका g_strdup करता है। libslirp इसे सक्षम मानता है।

यही पूरा विशेषाधिकार सेट है। यहाँ कुछ भी होस्ट लेखन, VM-प्रक्रिया हीप प्रिमिटिव, या कर्नेल एस्केप नहीं है।

रेकॉन (गेस्ट TFTP RRQ)

विधिसिंकविशेषाधिकार
आयातित prefix "" के साथ oracle/VBOX-OVF-NAT-TFTP-PREFIX-WITNESS का TFTP RRQlibslirp tftp_handle_rrq फिर prefix + / + गेस्ट नाम का RTFileOpenलैब-प्रमाणित। खाली prefix गैर-NULL रहता है। निर्मित पथ /oracle/VBOX-OVF-NAT-TFTP-PREFIX-WITNESS है। केवल-पठन ओपन ने witness बाइट्स लौटाए।
आयातित prefix / के साथ उसी नाम का TFTP RRQवहीलैब-प्रमाणित। निर्मित पथ //oracle/... है, जो POSIX में /oracle/... के समान है। witness बाइट्स लौटाए गए।
खाली prefix के साथ गेस्ट RRQ etc/passwd का केवल-पथ एनालॉग"" + "/" + "etc/passwd"लैब-प्रमाणित पथ निर्माण। परिणाम /etc/passwd है। लैब होस्ट /etc नहीं खोलता।
VBox UID जो भी सापेक्ष नाम खोल सकता है उसका TFTP RRQ (होम कुंजियाँ, VirtualBox.xml, होस्ट /etc, Windows वर्तमान-ड्राइव रूट)वही RTFileOpenअनुमानित। वही संयोजन। जो फ़ाइलें प्रक्रिया नहीं खोल सकती वे बंद रहती हैं (File not found)।

अखंडता और उपलब्धता

विधिविशेषाधिकार
TFTP WRQबंद। यह TFTP सर्वर केवल-RRQ है। कोई लेखन हैंडलर नहीं।
होस्ट फ़ाइल अधिलेखन / निर्माणबंद। केवल-पठन RTFILE_O_READ।
VM-प्रक्रिया हीप, VBoxSVC, अन्य VM, होस्ट कर्नेलबंद। यह अवशेष एक निर्मित पथ का फ़ाइल ओपन है।
TFTP DoSमानक से बाहर।

यह अवशेष क्या प्रदान नहीं करता

  • डिफ़ॉल्ट नए VM: Main fEnableTFTP को false लिखता है (Settings.cpp NATEngine ctor)।
  • NAT नेटवर्क: VBoxNetSlirpNAT हमेशा tftp_path को <VirtualBox home>/TFTP पर सेट करता है जब home मौजूद हो। RRQ उसी प्रीफ़िक्स के अंतर्गत रहते हैं।
  • vbox:Machine ब्लॉब के बिना सामान्य OVF इस NAT TFTP जोड़ी को कॉपी नहीं करता।
  • गेस्ट फ़ाइलनाम ../ और अंत में / अभी भी "Access violation" देता है। यह बंद CVE-2022-21394 वॉक है।
  • गैर-रिक्त प्रीफ़िक्स के अंतर्गत इच्छित PXE सीमित रहता है (लैब में /work/tftp/boot.pxe)।
  • NULL प्रीफ़िक्स TFTP को अक्षम करता है। कोई ओपन नहीं।
  • इस आयात पथ पर साझा फ़ोल्डर, ExtraData, सीरियल RawFile, और NVRAM dest अभी भी सैनिटाइज़ किए जाते हैं।
  • कोई 3D नहीं, कोई Guest Additions नहीं, कोई VRDP नहीं, PUEL नहीं।

एक वास्तविक होस्ट जो इस एप्लायंस को आयात करता है और VM शुरू करता है, गेस्ट को उस किसी भी पथ का पढ़ने का अधिकार देता है जिसे VBox UID खोल सकता है। लैब उस वॉक का एक सोर्स हार्नेस है। VirtualBox बूट नहीं किया गया है।

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

मैंने VirtualBox/virtualbox v7.2.20 (f2792cf44) को पिन किया। NAT और OVF खोजें। 7.2 ने NAT को बंडल किए गए libslirp 4.9.3 पर स्विच किया। .ova से साझा-फ़ोल्डर का पालन पहले से ही एक जोखिम माना जाता है और हटा दिया जाता है। TFTP उस सूची में नहीं था।

Settings.cpp अभी भी vbox:Machine आयात पर NAT enable-tftp और TFTP/@prefix पढ़ता है:

elmMode.getAttributeValue("enable-tftp", nic.nat.fEnableTFTP);
// ...
pelmTFTP->getAttributeValue("prefix", nic.nat.strTFTPPrefix);

ApplianceImplImport.cpp:6147 वह सब कुछ सैनिटाइज़ करता है जो उन्हें याद था:

config.sanitizeImportedSerialPorts();
config.sanitizeSharedFolderSettings();
config.sanitizeImportedNvramSettings();
if (!m->optListImport.contains(ImportOptions_KeepExtraData))
    config.sanitizeImportedExtraData();

वे चारों बॉडी कभी strTFTPPrefix या fEnableTFTP का नाम नहीं लेते।

स्टार्ट पर, ConsoleImplConfigCommon.cpp:2286-2292 TFTPPrefix को केवल तब सम्मिलित करता है जब वह खाली न हो और हमेशा EnableTFTP सम्मिलित करता है। DrvNAT.cpp:1656-1665 उन पुराने VMs के लिए EnableTFTP को डिफ़ॉल्ट रूप से true कर देता है जो कुंजी को छोड़ देते हैं, फिर:

rc = pDrvIns->pHlpR3->pfnCFGMQueryStringAllocDef(pCfg, "TFTPPrefix", &pszTmp, "");
slirpCfg.tftp_path = pszTmp;

slirp.c:698 में g_strdup है। खाली गैर-NULL रहता है। tftp.c:353-357 केवल NULL पर अक्षम करता है। 364-370 उपसर्ग, /, अतिथि नाम को आगे जोड़ता है। 398-407 ../ को अस्वीकार करता है। फिर निर्मित पथ का RTFileOpen।

पहले से दर्ज गलत मोड़: अतिथि ../ को अवशेष मानना (CVE-2022-21394, अभी भी अस्वीकृत); डिफ़ॉल्ट नए VM को प्रभावित मानना; NAT Network home/TFTP को यह अवशेष मानना; WRQ लेखन का दावा करना; होस्ट-कर्नेल का दावा करना। नाटक: होस्ट /etc/passwd खोलना। ओरेकल /oracle के अंतर्गत एक साक्षी फ़ाइल है।

लैब

python3 vbox-ovf-nat-tftp-prefix-Abraxas-Labs.py

या

cd lab
./run.sh

pin सैनिटाइज़र का स्रोत हार्नेस, DrvNAT खाली-स्ट्रिंग डिफ़ॉल्ट, g_strdup, और libslirp tftp_handle_rrq। Docker compose प्रोजेक्ट vbox-ovf-nat-tftp-prefix। केवल लूपबैक। VirtualBox बूट नहीं किया गया है। विटनेस VBOX-OVF-NAT-TFTP-PREFIX-WITNESS को /oracle/... पर स्थापित किया गया है। नियंत्रण PXE फ़ाइल /work/tftp/boot.pxe है। अंतिम पंक्ति:

SUCCESS vbox-ovf-nat-tftp-prefix sanitize-miss=yes null-disable=yes empty-prefix-read=yes slash-prefix-read=yes dotdot-reject=yes VBOX-OVF-NAT-TFTP-PREFIX-WITNESS

समाधान

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