Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
vbox-ovf-nat-tftp-prefix — VirtualBox 7.2.20 - Élevée - Locale - Lecture de fichier - Préfixe vide OVF NAT TFTP | Kitploit
Outils/GitHubGitHub/abraxas/vbox-ovf-nat-tftp-prefix
Escalade de PrivilègesAnalyse des VulnérabilitésExploitationVirtualisation de SécuritéArticles et RechercheLabs et Pratique
GitHubabraxas/vbox-ovf-nat-tftp-prefix

vbox-ovf-nat-tftp-prefix

VirtualBox 7.2.20 - Élevée - Locale - Lecture de fichier - Préfixe vide OVF NAT TFTP

Voir le dépôt
1il y a 2 joursPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

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 : Lecture de fichier Portée : Locale (invité) après import UI:R

Oracle VM VirtualBox OSS 7.2.20 (f2792cf44) - Oracle

L'import OVF vbox:Machine assainit les ExtraData, les dossiers partagés, le chemin NVRAM et le RawFile série. Il ne touche jamais à enable-tftp de NAT ni au @prefix de TFTP. libslirp ne désactive TFTP que lorsque tftp_prefix est NULL. Le g_strdup("") de DrvNAT reste non-NULL. Une RRQ invité etc/passwd avec un préfixe / ou vide devient /etc/passwd. Le ../ dans le nom invité est toujours rejeté.

Un TFTP NAT importé avec un préfixe vide ou / permet à l'invité de faire des RRQ sur des fichiers de l'hôte avec l'UID de VBox. Pas une écriture. Pas le noyau hôte. Pas un résidu de la vérification ../ fermée.

IDpas encore de CVE
ClasseLecture de fichier (RRQ TFTP invité sur des chemins hôte)
PortéeLocale (invité) après import UI:R d'un OVF vbox:Machine, puis démarrage de la VM
CWECWE-22 résidu de la classe de préfixe de CVE-2022-21394
CVSSÉlevé : 7.7 CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:H/I:N/A:N
ProduitOracle VM VirtualBox OSS
Affecté7.2.20 (f2792cf44f663989818507e36d3db5f978523c5e)
Authaucune dans l'invité ; l'utilisateur hôte doit importer puis démarrer
LicenceGNU Affero GPL v3.0
Laboharnais source ; compose loopback ; VirtualBox n'est pas démarré

Ce qu'un attaquant peut faire

Livrer un OVF/OVA vbox:Machine dont le blob NAT contient enable-tftp et un préfixe TFTP / ou vide, plus un disque invité qui émet des RRQ TFTP vers la passerelle NAT (10.0.2.2:69). L'utilisateur hôte importe (Fichier / Importer ou VBoxManage import) et démarre la VM. L'import efface les ExtraData, les dossiers partagés, le RawFile série et le chemin NVRAM. Les champs TFTP survivent. Au démarrage, ConsoleImplConfigCommon insère EnableTFTP. Un préfixe vide est omis du CFGM ; DrvNAT met alors TFTPPrefix par défaut à "" et le g_strdup. libslirp considère cela comme activé.

C'est l'ensemble complet des privilèges. Rien ici n'est une écriture hôte, une primitive de tas dans le processus VM, ou une évasion du noyau.

Reconnaissance (RRQ TFTP invité)

MéthodeCiblePrivilège
RRQ TFTP de oracle/VBOX-OVF-NAT-TFTP-PREFIX-WITNESS avec préfixe importé ""libslirp tftp_handle_rrq puis RTFileOpen de préfixe + / + nom invitéProuvé en labo. Le préfixe vide reste non-NULL. Le chemin construit est /oracle/VBOX-OVF-NAT-TFTP-PREFIX-WITNESS. L'ouverture en lecture seule a renvoyé les octets témoins.
RRQ TFTP du même nom avec préfixe importé /idemProuvé en labo. Le chemin construit est //oracle/..., identique POSIX à /oracle/.... Octets témoins renvoyés.
Analogue chemin seul de la RRQ invité etc/passwd avec préfixe vide"" + "/" + "etc/passwd"Construction de chemin prouvée en labo. Le résultat est /etc/passwd. Le labo n'ouvre pas le /etc de l'hôte.
RRQ TFTP de tout nom relatif que l'UID de VBox peut ouvrir (clés du home, VirtualBox.xml, /etc de l'hôte, racine du lecteur courant sous Windows)même RTFileOpenDéduit. Même concaténation. Les fichiers que le processus ne peut pas ouvrir restent fermés (File not found).

Intégrité et disponibilité

MéthodePrivilège
WRQ TFTPFermé. Ce serveur TFTP est en RRQ uniquement. Aucun gestionnaire d'écriture.
Écrasement / création de fichier hôteFermé. RTFILE_O_READ en lecture seule.
Tas du processus VM, VBoxSVC, autres VM, noyau hôteFermé. Ce résidu est une ouverture de fichier sur un chemin construit.
DoS TFTPHors périmètre.

Ce que ce résidu n'accorde pas

  • Nouvelles VM par défaut : Main écrit fEnableTFTP à false (constructeur NATEngine de Settings.cpp).
  • Réseau NAT : VBoxNetSlirpNAT définit toujours tftp_path à <VirtualBox home>/TFTP lorsque le home existe. Les RRQ restent sous ce préfixe.
  • Un OVF générique sans blob vbox:Machine ne copie pas cette paire TFTP NAT.
  • Le nom de fichier invité ../ et un / final déclenchent toujours « Access violation ». C'est le parcours fermé de CVE-2022-21394.
  • Le PXE prévu sous un préfixe non vide reste confiné (/work/tftp/boot.pxe dans le labo).
  • Un préfixe NULL désactive TFTP. Aucune ouverture.
  • Les dossiers partagés, ExtraData, le RawFile série et la destination NVRAM sont toujours assainis sur ce chemin d'import.
  • Pas de 3D, pas de Guest Additions, pas de VRDP, pas de PUEL.

Un véritable hôte qui importe cette appliance et démarre la VM donne à l'invité un accès en lecture à tout chemin que l'UID VBox peut ouvrir. Le labo est un harnais source de ce parcours. VirtualBox n'est pas démarré.

Comment je l'ai trouvé

J'ai épinglé VirtualBox/virtualbox v7.2.20 (f2792cf44). Chasses NAT plus OVF. La 7.2 a fait passer NAT à libslirp 4.9.3 embarqué. L'honoration des dossiers partagés depuis .ova est déjà traitée comme un danger et supprimée. TFTP ne figurait pas sur cette liste.

Settings.cpp lit toujours enable-tftp de NAT et TFTP/@prefix lors de l'import vbox:Machine :

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

ApplianceImplImport.cpp:6147 assainit tout ce dont ils se sont souvenus :

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

Ces quatre corps ne mentionnent jamais strTFTPPrefix ni fEnableTFTP.

Au démarrage, ConsoleImplConfigCommon.cpp:2286-2292 insère TFTPPrefix uniquement lorsqu'il est non vide et insère toujours EnableTFTP. DrvNAT.cpp:1656-1665 définit EnableTFTP à true par défaut pour les anciennes VM qui omettent la clé, puis :

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

slirp.c:698 est g_strdup. Vide reste non-NULL. tftp.c:353-357 désactive uniquement sur NULL. 364-370 préfixe le préfixe, /, le nom d'invité. 398-407 rejette ../. Ensuite RTFileOpen du chemin construit.

Fausses pistes déjà consignées : traiter le ../ de l'invité comme le résidu (CVE-2022-21394, toujours rejeté) ; traiter les nouvelles VM par défaut comme affectées ; traiter le home/TFTP du réseau NAT comme ce résidu ; prétendre à des écritures WRQ ; prétendre au noyau hôte. Théâtre : ouvrir /etc/passwd de l'hôte. L'oracle est un fichier témoin sous /oracle.

Lab

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

ou

cd lab
./run.sh
Télécharger l’outil