Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
vbox-ovf-nat-tftp-prefix — VirtualBox 7.2.20 – Hoch – Lokal – Dateilesen – OVF NAT TFTP leeres Präfix | Kitploit
Tools/GitHubGitHub/abraxas/vbox-ovf-nat-tftp-prefix
Privilege EscalationSchwachstellenanalyseExploitationSicherheitsvirtualisierungPapers & ForschungLabs & Praxis
GitHubabraxas/vbox-ovf-nat-tftp-prefix

vbox-ovf-nat-tftp-prefix

VirtualBox 7.2.20 – Hoch – Lokal – Dateilesen – OVF NAT TFTP leeres Präfix

Repository anzeigen
1vor 2 TagenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

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

Klasse: Dateilesen Reichweite: Lokal (Gast) nach UI:R-Import

Oracle VM VirtualBox OSS 7.2.20 (f2792cf44) - Oracle

Der vbox:Machine-OVF-Import bereinigt ExtraData, freigegebene Ordner, NVRAM-Pfad und serielle RawFile. Er berührt niemals NAT enable-tftp oder TFTP @prefix. libslirp deaktiviert TFTP nur, wenn tftp_prefix NULL ist. DrvNAT g_strdup("") bleibt ungleich NULL. Ein Gast-RRQ auf etc/passwd mit Präfix / oder leer wird zu /etc/passwd. ../ im Gastnamen wird weiterhin abgelehnt.

Importiertes NAT-TFTP mit einem leeren oder /-Präfix erlaubt dem Gast, per RRQ Host-Dateien unter der VBox-UID zu lesen. Kein Schreiben. Kein Host-Kernel. Kein Überbleibsel der geschlossenen ../-Prüfung.

IDnoch keine CVE
KlasseDateilesen (Gast-TFTP-RRQ von Host-Pfaden)
ReichweiteLokal (Gast) nach UI:R-Import einer vbox:Machine-OVF, dann VM-Start
CWECWE-22 Überbleibsel der Präfix-Klasse von CVE-2022-21394
CVSSHoch: 7.7 CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:H/I:N/A:N
ProduktOracle VM VirtualBox OSS
Betroffen7.2.20 (f2792cf44f663989818507e36d3db5f978523c5e)
Authkeine im Gast; der Host-Benutzer muss importieren und dann starten
LizenzGNU Affero GPL v3.0
LaborSource-Harness; Loopback-Compose; VirtualBox wird nicht gebootet

Was ein Angreifer tun kann

Eine vbox:Machine-OVF/OVA ausliefern, deren NAT-Blob enable-tftp und ein TFTP-Präfix / oder leer enthält, zusammen mit einer Gast-Festplatte, die TFTP-RRQ an das NAT-Gateway (10.0.2.2:69) sendet. Der Host-Benutzer importiert (Datei / Importieren oder VBoxManage import) und startet die VM. Der Import leert ExtraData, freigegebene Ordner, serielle RawFile und NVRAM-Pfad. Die TFTP-Felder überleben. Beim Start fügt ConsoleImplConfigCommon EnableTFTP ein. Ein leeres Präfix wird aus der CFGM weggelassen; DrvNAT setzt dann TFTPPrefix standardmäßig auf "" und ruft g_strdup darauf auf. libslirp behandelt das als aktiviert.

Das ist die vollständige Berechtigungsmenge. Nichts hiervon ist ein Host-Schreibzugriff, ein Heap-Primitiv im VM-Prozess oder eine Kernel-Escape.

Recon (Gast-TFTP-RRQ)

MethodeSenkeBerechtigung
TFTP-RRQ auf oracle/VBOX-OVF-NAT-TFTP-PREFIX-WITNESS mit importiertem Präfix ""libslirp tftp_handle_rrq, dann RTFileOpen von Präfix + / + GastnameIm Labor nachgewiesen. Ein leeres Präfix bleibt ungleich NULL. Der gebildete Pfad ist /oracle/VBOX-OVF-NAT-TFTP-PREFIX-WITNESS. Ein schreibgeschütztes Öffnen lieferte die Witness-Bytes.
TFTP-RRQ desselben Namens mit importiertem Präfix /dieselbeIm Labor nachgewiesen. Der gebildete Pfad ist //oracle/..., POSIX-gleich zu /oracle/.... Witness-Bytes geliefert.
Pfad-Analogon des Gast-RRQ etc/passwd mit leerem Präfix"" + "/" + "etc/passwd"Im Labor nachgewiesener Pfadaufbau. Das Ergebnis ist /etc/passwd. Das Labor öffnet das Host-/etc nicht.
TFTP-RRQ eines beliebigen relativen Namens, den die VBox-UID öffnen kann (Home-Schlüssel, VirtualBox.xml, Host-/etc, Windows-Laufwerkswurzel)dasselbe RTFileOpenAbgeleitet. Dieselbe Verkettung. Dateien, die der Prozess nicht öffnen kann, bleiben geschlossen (File not found).

Integrität und Verfügbarkeit

MethodeBerechtigung
TFTP-WRQGeschlossen. Dieser TFTP-Server ist RRQ-only. Kein Write-Handler.
Überschreiben / Erstellen von Host-DateienGeschlossen. Schreibgeschütztes RTFILE_O_READ.
Heap des VM-Prozesses, VBoxSVC, andere VMs, Host-KernelGeschlossen. Dieses Überbleibsel ist ein Dateiöffnen eines gebildeten Pfads.
TFTP-DoSAußerhalb der Messlatte.

Was dieses Überbleibsel nicht gewährt

  • Standardmäßig neue VMs: Main schreibt fEnableTFTP false (Settings.cpp NATEngine ctor).
  • NAT-Netzwerk: VBoxNetSlirpNAT setzt tftp_path immer auf <VirtualBox home>/TFTP, wenn das Home-Verzeichnis existiert. RRQs bleiben unter diesem Präfix.
  • Generisches OVF ohne vbox:Machine-Blob kopiert dieses NAT-TFTP-Paar nicht.
  • Gast-Dateiname ../ und ein abschließendes / führen weiterhin zu "Access violation". Das ist der geschlossene CVE-2022-21394-Walk.
  • Beabsichtigtes PXE unter einem nicht-leeren Präfix bleibt eingeschränkt (/work/tftp/boot.pxe im Lab).
  • NULL-Präfix deaktiviert TFTP. Kein Open.
  • Shared Folders, ExtraData, serielles RawFile und NVRAM-Ziel werden auf diesem Importpfad weiterhin bereinigt.
  • Kein 3D, keine Guest Additions, kein VRDP, kein PUEL.

Ein echter Host, der dieses Appliance importiert und die VM startet, ermöglicht dem Gast das Lesen jedes Pfads, den die VBox-UID öffnen kann. Das Lab ist ein Source-Harness dieses Walks. VirtualBox wird nicht gebootet.

Wie ich es gefunden habe

Ich habe VirtualBox/virtualbox v7.2.20 (f2792cf44) gepinnt. NAT- plus OVF-Untersuchungen. 7.2 stellte NAT auf das gebündelte libslirp 4.9.3 um. Das Übernehmen von Shared Folders aus .ova wird bereits als Gefahr behandelt und entfernt. TFTP stand nicht auf dieser Liste.

Settings.cpp liest beim vbox:Machine-Import weiterhin NAT enable-tftp und TFTP/@prefix:

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

ApplianceImplImport.cpp:6147 bereinigt alles, woran sie sich erinnert haben:

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

Diese vier Stellen nennen niemals strTFTPPrefix oder fEnableTFTP.

Beim Start fügt ConsoleImplConfigCommon.cpp:2286-2292 TFTPPrefix nur ein, wenn es nicht leer ist, und fügt immer EnableTFTP ein. DrvNAT.cpp:1656-1665 setzt EnableTFTP standardmäßig auf true für alte VMs, die den Schlüssel weglassen, dann:

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

slirp.c:698 ist g_strdup. Leer bleibt ungleich NULL. tftp.c:353-357 deaktiviert nur bei NULL. 364-370 stellt Präfix, /, Gastnamen voran. 398-407 lehnt ../ ab. Dann RTFileOpen des erzeugten Pfads.

Bereits festgehaltene Fehlannahmen: Gast-../ als das Übriggebliebene zu behandeln (CVE-2022-21394, weiterhin abgelehnt); Standard-Neu-VMs als betroffen zu behandeln; NAT-Network-Home/TFTP als dieses Übriggebliebene zu behandeln; WRQ-Schreibvorgänge zu behaupten; Host-Kernel zu behaupten. Theater: Öffnen von Host-/etc/passwd. Das Orakel ist eine Zeugendatei unter /oracle.

Lab

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

oder

cd lab
./run.sh
Tool herunterladen