Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
vbox-ovf-nat-tftp-prefix — VirtualBox 7.2.20 - Alta - Locale - Lettura di file - OVF NAT TFTP prefisso vuoto | Kitploit
Strumenti/GitHubGitHub/abraxas/vbox-ovf-nat-tftp-prefix
Escalation di PrivilegiAnalisi delle VulnerabilitàExploitVirtualizzazione per la SicurezzaPaper e RicercaLab e Pratica
GitHubabraxas/vbox-ovf-nat-tftp-prefix

vbox-ovf-nat-tftp-prefix

VirtualBox 7.2.20 - Alta - Locale - Lettura di file - OVF NAT TFTP prefisso vuoto

Vedi Repository
13 giorni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

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

Classe: Lettura di file Portata: Locale (guest) dopo importazione UI:R

Oracle VM VirtualBox OSS 7.2.20 (f2792cf44) - Oracle

L'importazione OVF vbox:Machine sanifica ExtraData, cartelle condivise, percorso NVRAM e serial RawFile. Non tocca mai NAT enable-tftp né TFTP @prefix. libslirp disabilita TFTP solo quando tftp_prefix è NULL. DrvNAT g_strdup("") resta non-NULL. La RRQ guest di etc/passwd con prefisso / o vuoto diventa /etc/passwd. Il ../ nel nome guest viene comunque rifiutato.

Un NAT TFTP importato con prefisso vuoto o / consente al guest di effettuare RRQ di file host con l'UID di VBox. Non è una scrittura. Non è host-kernel. Non è un residuo del controllo ../ chiuso.

IDnessuna CVE al momento
ClasseLettura di file (RRQ TFTP guest di percorsi host)
PortataLocale (guest) dopo importazione UI:R di un OVF vbox:Machine, poi avvio della VM
CWECWE-22 residuo della classe di prefisso di CVE-2022-21394
CVSSAlto: 7.7 CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:H/I:N/A:N
ProdottoOracle VM VirtualBox OSS
Affetto7.2.20 (f2792cf44f663989818507e36d3db5f978523c5e)
Authnessuna nel guest; l'utente host deve importare e poi avviare
LicenzaGNU Affero GPL v3.0
Labharness sorgente; compose loopback; VirtualBox non viene avviato

Cosa può fare un attaccante

Distribuire un OVF/OVA vbox:Machine il cui blob NAT abbia enable-tftp e prefisso TFTP / o vuoto, più un disco guest che emetta RRQ TFTP verso il gateway NAT (10.0.2.2:69). L'utente host importa (File / Import o VBoxManage import) e avvia la VM. L'importazione cancella ExtraData, cartelle condivise, serial RawFile e percorso NVRAM. I campi TFTP sopravvivono. All'avvio, ConsoleImplConfigCommon inserisce EnableTFTP. Il prefisso vuoto viene omesso da CFGM; DrvNAT imposta quindi TFTPPrefix a "" per default e ne fa g_strdup. libslirp lo considera abilitato.

Questo è l'intero insieme di privilegi. Nulla qui è una scrittura host, una primitiva heap del processo VM o un'evasione dal kernel.

Ricognizione (RRQ TFTP guest)

MetodoSinkPrivilegio
RRQ TFTP di oracle/VBOX-OVF-NAT-TFTP-PREFIX-WITNESS con prefisso importato ""libslirp tftp_handle_rrq poi RTFileOpen di prefisso + / + nome guestDimostrato in lab. Il prefisso vuoto resta non-NULL. Il percorso costruito è /oracle/VBOX-OVF-NAT-TFTP-PREFIX-WITNESS. L'apertura in sola lettura ha restituito i byte witness.
RRQ TFTP dello stesso nome con prefisso importato /stessoDimostrato in lab. Il percorso costruito è //oracle/..., POSIX-identico a /oracle/.... Byte witness restituiti.
Analogo solo-percorso della RRQ guest etc/passwd con prefisso vuoto"" + "/" + "etc/passwd"Costruzione del percorso dimostrata in lab. Il risultato è /etc/passwd. Il lab non apre /etc dell'host.
RRQ TFTP di qualsiasi nome relativo che l'UID di VBox può aprire (chiavi home, VirtualBox.xml, /etc dell'host, radice dell'unità corrente su Windows)stesso RTFileOpenInferito. Stessa concatenazione. I file che il processo non può aprire restano chiusi (File not found).

Integrità e disponibilità

MetodoPrivilegio
TFTP WRQChiuso. Questo server TFTP è solo RRQ. Nessun handler di scrittura.
Sovrascrittura / creazione di file hostChiuso. RTFILE_O_READ in sola lettura.
Heap del processo VM, VBoxSVC, altre VM, kernel hostChiuso. Questo residuo è un'apertura di file di un percorso costruito.
DoS TFTPFuori ambito.

Cosa non concede questo residuo

  • VM nuove predefinite: Main scrive fEnableTFTP false (costruttore NATEngine in Settings.cpp).
  • NAT Network: VBoxNetSlirpNAT imposta sempre tftp_path a <VirtualBox home>/TFTP quando la home esiste. Le RRQ restano sotto quel prefisso.
  • OVF generico senza un blob vbox:Machine non copia questa coppia NAT TFTP.
  • Il nome file guest ../ e una / finale producono comunque "Access violation". Si tratta del percorso chiuso di CVE-2022-21394.
  • Il PXE previsto sotto un prefisso non vuoto resta confinato (/work/tftp/boot.pxe nel lab).
  • Un prefisso NULL disabilita TFTP. Nessuna apertura.
  • Cartelle condivise, ExtraData, RawFile seriale e destinazione NVRAM sono comunque sanificati su questo percorso di importazione.
  • Nessun 3D, nessun Guest Additions, nessun VRDP, non PUEL.

Un host reale che importa questa appliance e avvia la VM consente al guest di leggere qualsiasi percorso che l'UID di VBox può aprire. Il lab è un harness sorgente di quel percorso. VirtualBox non viene avviato.

Come l'ho trovato

Ho fissato VirtualBox/virtualbox v7.2.20 (f2792cf44). Ricerche su NAT e OVF. La 7.2 ha spostato NAT sulla libslirp 4.9.3 inclusa. Il rispetto delle cartelle condivise da .ova è già considerato un rischio e viene rimosso. TFTP non era in quella lista.

Settings.cpp legge ancora enable-tftp di NAT e TFTP/@prefix all'importazione di vbox:Machine:

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

ApplianceImplImport.cpp:6147 esegue la sanitizzazione di tutto ciò che hanno ricordato:

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

Quei quattro corpi non menzionano mai strTFTPPrefix né fEnableTFTP.

All'avvio, ConsoleImplConfigCommon.cpp:2286-2292 inserisce TFTPPrefix solo quando non è vuoto e inserisce sempre EnableTFTP. DrvNAT.cpp:1656-1665 imposta EnableTFTP su true per impostazione predefinita per le vecchie VM che omettono la chiave, poi:

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

slirp.c:698 è g_strdup. Vuoto resta non-NULL. tftp.c:353-357 disabilita solo su NULL. 364-370 antepone il prefisso, /, il nome guest. 398-407 rifiuta ../. Poi RTFileOpen del percorso costruito.

Vicoli ciechi già registrati: trattare il ../ del guest come il residuo (CVE-2022-21394, ancora rifiutato); trattare le nuove VM predefinite come affette; trattare la home/TFTP della NAT Network come questo residuo; affermare scritture WRQ; affermare host-kernel. Teatro: aprire /etc/passwd dell'host. L'oracolo è un file testimone sotto /oracle.

Lab

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

o

cd lab
./run.sh
Scarica lo strumento