Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
vbox-ovf-nat-tftp-prefix — VirtualBox 7.2.20 - Alta - Local - Lectura de archivos - OVF NAT TFTP prefijo vacío | Kitploit
Herramientas/GitHubGitHub/abraxas/vbox-ovf-nat-tftp-prefix
Escalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónVirtualización de SeguridadPapers e InvestigaciónLabs y Práctica
GitHubabraxas/vbox-ovf-nat-tftp-prefix

vbox-ovf-nat-tftp-prefix

VirtualBox 7.2.20 - Alta - Local - Lectura de archivos - OVF NAT TFTP prefijo vacío

Ver Repositorio
1hace 3 díasAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

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

Clase: Lectura de archivos Alcance: Local (invitado) tras la importación UI:R

Oracle VM VirtualBox OSS 7.2.20 (f2792cf44) - Oracle

La importación de OVF vbox:Machine saneó ExtraData, las carpetas compartidas, la ruta de NVRAM y el RawFile del puerto serie. Nunca toca enable-tftp de NAT ni el @prefix de TFTP. libslirp deshabilita TFTP solo cuando tftp_prefix es NULL. El g_strdup("") de DrvNAT permanece no NULL. Una RRQ del invitado a etc/passwd con prefijo / o vacío se convierte en /etc/passwd. El ../ en el nombre del invitado sigue siendo rechazado.

Un NAT TFTP importado con un prefijo vacío o / permite al invitado hacer RRQ de archivos del host con el UID de VBox. No es una escritura. No es el kernel del host. No es un residuo de la comprobación cerrada de ../.

IDaún sin CVE
ClaseLectura de archivos (RRQ TFTP del invitado sobre rutas del host)
AlcanceLocal (invitado) tras la importación UI:R de un OVF vbox:Machine, y luego el arranque de la VM
CWECWE-22 residuo de la clase de prefijo de CVE-2022-21394
CVSSAlta: 7.7 CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:H/I:N/A:N
ProductoOracle VM VirtualBox OSS
Afectado7.2.20 (f2792cf44f663989818507e36d3db5f978523c5e)
Autenticaciónninguna en el invitado; el usuario del host debe Importar y luego Iniciar
LicenciaGNU Affero GPL v3.0
Laboratorioarnés de código fuente; compose en loopback; VirtualBox no se arranca

Qué puede hacer un atacante

Distribuir un OVF/OVA vbox:Machine cuyo blob NAT tenga enable-tftp y un prefijo TFTP / o vacío, junto con un disco de invitado que emita RRQ TFTP a la puerta de enlace NAT (10.0.2.2:69). El usuario del host importa (Archivo / Importar o VBoxManage import) e inicia la VM. La importación limpia ExtraData, las carpetas compartidas, el RawFile del puerto serie y la ruta de NVRAM. Los campos de TFTP sobreviven. Al iniciar, ConsoleImplConfigCommon inserta EnableTFTP. El prefijo vacío se omite de CFGM; DrvNAT entonces pone por defecto TFTPPrefix a "" y le aplica g_strdup. libslirp lo trata como habilitado.

Ese es el conjunto completo de privilegios. Nada de esto es una escritura en el host, una primitiva de heap en el proceso de la VM ni un escape del kernel.

Reconocimiento (RRQ TFTP del invitado)

MétodoDestinoPrivilegio
RRQ TFTP de oracle/VBOX-OVF-NAT-TFTP-PREFIX-WITNESS con prefijo importado ""tftp_handle_rrq de libslirp y luego RTFileOpen de prefijo + / + nombre del invitadoProbado en laboratorio. El prefijo vacío permanece no NULL. La ruta construida es /oracle/VBOX-OVF-NAT-TFTP-PREFIX-WITNESS. La apertura de solo lectura devolvió los bytes del testigo.
RRQ TFTP del mismo nombre con prefijo importado /igualProbado en laboratorio. La ruta construida es //oracle/..., equivalente en POSIX a /oracle/.... Se devolvieron los bytes del testigo.
Análogo solo de ruta de la RRQ del invitado etc/passwd con prefijo vacío"" + "/" + "etc/passwd"Construcción de ruta probada en laboratorio. El resultado es /etc/passwd. El laboratorio no abre el /etc del host.
RRQ TFTP de cualquier nombre relativo que el UID de VBox pueda abrir (claves del home, VirtualBox.xml, /etc del host, raíz de la unidad actual en Windows)el mismo RTFileOpenInferido. La misma concatenación. Los archivos que el proceso no puede abrir permanecen cerrados (File not found).

Integridad y disponibilidad

MétodoPrivilegio
WRQ TFTPCerrado. Este servidor TFTP es solo RRQ. No hay manejador de escritura.
Sobrescritura / creación de archivos del hostCerrado. RTFILE_O_READ de solo lectura.
Heap del proceso de la VM, VBoxSVC, otras VMs, kernel del hostCerrado. Este residuo es una apertura de archivo de una ruta construida.
DoS de TFTPFuera del alcance.

Qué no concede este residuo

  • VMs nuevas por defecto: Main escribe fEnableTFTP en false (constructor de NATEngine en Settings.cpp).
  • NAT Network: VBoxNetSlirpNAT siempre establece tftp_path a <VirtualBox home>/TFTP cuando el home existe. Las RRQ permanecen bajo ese prefijo.
  • Un OVF genérico sin un blob vbox:Machine no copia este par NAT TFTP.
  • El nombre de archivo invitado ../ y una / final siguen provocando "Access violation". Ese es el recorrido cerrado de CVE-2022-21394.
  • El PXE previsto bajo un prefijo no vacío permanece confinado (/work/tftp/boot.pxe en el laboratorio).
  • Un prefijo NULL desactiva TFTP. Sin apertura.
  • Las carpetas compartidas, ExtraData, serial RawFile y el destino NVRAM siguen saneados en esta ruta de importación.
  • Sin 3D, sin Guest Additions, sin VRDP, no PUEL.

Un host real que importa este appliance e inicia la VM permite al invitado leer cualquier ruta que el UID de VBox pueda abrir. El laboratorio es un arnés de origen de ese recorrido. VirtualBox no se arranca.

Cómo lo encontré

Fijé VirtualBox/virtualbox v7.2.20 (f2792cf44). Cacerías de NAT más OVF. La 7.2 cambió NAT al libslirp 4.9.3 incluido. El respeto de carpetas compartidas desde .ova ya se trata como un riesgo y se elimina. TFTP no estaba en esa lista.

Settings.cpp sigue leyendo enable-tftp de NAT y TFTP/@prefix en la importación de vbox:Machine:

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

ApplianceImplImport.cpp:6147 sanea todo lo que recordaron:

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

Esos cuatro cuerpos nunca nombran strTFTPPrefix ni fEnableTFTP.

Al iniciar, ConsoleImplConfigCommon.cpp:2286-2292 inserta TFTPPrefix solo cuando no está vacío e inserta siempre EnableTFTP. DrvNAT.cpp:1656-1665 establece EnableTFTP en true por defecto para las VM antiguas que omiten la clave, y luego:

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

slirp.c:698 es g_strdup. Vacío permanece no NULL. tftp.c:353-357 solo desactiva con NULL. 364-370 antepone el prefijo, /, el nombre del invitado. 398-407 rechaza ../. Luego RTFileOpen de la ruta construida.

Pistas falsas ya registradas: tratar el ../ del invitado como el residuo (CVE-2022-21394, aún rechazado); tratar las nuevas VM predeterminadas como afectadas; tratar el home/TFTP de NAT Network como este residuo; afirmar escrituras WRQ; afirmar host-kernel. Teatro: abrir /etc/passwd del host. El oráculo es un archivo testigo bajo /oracle.

Laboratorio

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

o

cd lab
./run.sh
Descargar herramienta