Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
vbox-ovf-nat-tftp-prefix — VirtualBox 7.2.20 - Alta - Local - Leitura de arquivo - OVF NAT TFTP prefixo vazio | Kitploit
Ferramentas/GitHubGitHub/abraxas/vbox-ovf-nat-tftp-prefix
Escalada de PrivilégiosAnálise de VulnerabilidadesExploraçãoVirtualização para SegurançaPapers e PesquisaLabs e Prática
GitHubabraxas/vbox-ovf-nat-tftp-prefix

vbox-ovf-nat-tftp-prefix

VirtualBox 7.2.20 - Alta - Local - Leitura de arquivo - OVF NAT TFTP prefixo vazio

Ver Repositório
1há 2 diasAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

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: Leitura de arquivo Alcance: Local (convidado) após importação com UI:R

Oracle VM VirtualBox OSS 7.2.20 (f2792cf44) - Oracle

A importação de OVF vbox:Machine sanitiza ExtraData, pastas compartilhadas, caminho de NVRAM e RawFile serial. Ela nunca toca em enable-tftp do NAT nem no @prefix do TFTP. O libslirp desabilita o TFTP apenas quando tftp_prefix é NULL. O g_strdup("") do DrvNAT permanece não-NULL. Um RRQ do convidado para etc/passwd com prefixo / ou vazio torna-se /etc/passwd. O ../ no nome do convidado ainda é rejeitado.

Um NAT TFTP importado com prefixo vazio ou / permite que o convidado faça RRQ de arquivos do host com o UID do VBox. Não é escrita. Não é kernel do host. Não é resíduo da verificação fechada de ../.

IDainda sem CVE
ClasseLeitura de arquivo (RRQ TFTP do convidado para caminhos do host)
AlcanceLocal (convidado) após importação UI:R de um OVF vbox:Machine, seguida da inicialização da VM
CWECWE-22 resíduo da classe de prefixo de 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
ProdutoOracle VM VirtualBox OSS
Afetado7.2.20 (f2792cf44f663989818507e36d3db5f978523c5e)
Autenticaçãonenhuma no convidado; o usuário do host precisa Importar e depois Iniciar
LicençaGNU Affero GPL v3.0
Laboratórioharness de código-fonte; compose em loopback; o VirtualBox não é inicializado

O que um atacante pode fazer

Entregar um OVF/OVA vbox:Machine cujo blob NAT tenha enable-tftp e prefixo TFTP / ou vazio, além de um disco de convidado que emita RRQ TFTP para o gateway NAT (10.0.2.2:69). O usuário do host importa (Arquivo / Importar ou VBoxManage import) e inicia a VM. A importação limpa ExtraData, pastas compartilhadas, RawFile serial e caminho de NVRAM. Os campos de TFTP sobrevivem. Na inicialização, ConsoleImplConfigCommon insere EnableTFTP. O prefixo vazio é omitido do CFGM; o DrvNAT então define TFTPPrefix como "" por padrão e faz g_strdup dele. O libslirp trata isso como habilitado.

Esse é o conjunto completo de privilégios. Nada aqui é uma escrita no host, uma primitiva de heap no processo da VM ou uma fuga do kernel.

Reconhecimento (RRQ TFTP do convidado)

MétodoDestinoPrivilégio
RRQ TFTP de oracle/VBOX-OVF-NAT-TFTP-PREFIX-WITNESS com prefixo importado ""tftp_handle_rrq do libslirp e depois RTFileOpen de prefixo + / + nome do convidadoComprovado em laboratório. Prefixo vazio permanece não-NULL. O caminho construído é /oracle/VBOX-OVF-NAT-TFTP-PREFIX-WITNESS. A abertura somente leitura retornou os bytes da testemunha.
RRQ TFTP do mesmo nome com prefixo importado /o mesmoComprovado em laboratório. O caminho construído é //oracle/..., equivalente em POSIX a /oracle/.... Bytes da testemunha retornados.
Análogo apenas de caminho do RRQ do convidado etc/passwd com prefixo vazio"" + "/" + "etc/passwd"Construção de caminho comprovada em laboratório. O resultado é /etc/passwd. O laboratório não abre o /etc do host.
RRQ TFTP de qualquer nome relativo que o UID do VBox consiga abrir (chaves do home, VirtualBox.xml, /etc do host, raiz da unidade atual no Windows)o mesmo RTFileOpenInferido. Mesma concatenação. Arquivos que o processo não consegue abrir permanecem fechados (File not found).

Integridade e disponibilidade

MétodoPrivilégio
WRQ TFTPFechado. Este servidor TFTP é somente RRQ. Não há handler de escrita.
Sobrescrita / criação de arquivo no hostFechado. RTFILE_O_READ somente leitura.
Heap do processo da VM, VBoxSVC, outras VMs, kernel do hostFechado. Este resíduo é uma abertura de arquivo de um caminho construído.
DoS de TFTPFora do escopo.

O que este resíduo não concede

  • Novas VMs padrão: Main grava fEnableTFTP como false (construtor NATEngine em Settings.cpp).
  • NAT Network: VBoxNetSlirpNAT sempre define tftp_path como <VirtualBox home>/TFTP quando o home existe. As RRQs permanecem sob esse prefixo.
  • OVF genérico sem um blob vbox:Machine não copia este par NAT TFTP.
  • Nome de arquivo do guest ../ e uma / final ainda resultam em "Access violation". Esse é o percurso fechado da CVE-2022-21394.
  • O PXE pretendido sob um prefixo não vazio permanece confinado (/work/tftp/boot.pxe no laboratório).
  • Prefixo NULL desativa o TFTP. Sem abertura.
  • Pastas compartilhadas, ExtraData, serial RawFile e destino NVRAM ainda são sanitizados neste caminho de importação.
  • Sem 3D, sem Guest Additions, sem VRDP, não é PUEL.

Um host real que importa este appliance e inicia a VM concede ao guest a leitura de qualquer caminho que o UID do VBox consiga abrir. O laboratório é um harness de origem desse percurso. O VirtualBox não é inicializado.

Como eu encontrei

Fixe a versão VirtualBox/virtualbox v7.2.20 (f2792cf44). Caças de NAT mais OVF. A versão 7.2 mudou o NAT para o libslirp 4.9.3 empacotado. O cumprimento de pastas compartilhadas a partir de .ova já é tratado como um risco e removido. O TFTP não estava nessa lista.

Settings.cpp ainda lê enable-tftp do NAT e TFTP/@prefix na importação de vbox:Machine:

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

ApplianceImplImport.cpp:6147 sanitiza tudo o que eles lembraram:

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

Esses quatro corpos nunca mencionam strTFTPPrefix nem fEnableTFTP.

Na inicialização, ConsoleImplConfigCommon.cpp:2286-2292 insere TFTPPrefix apenas quando não está vazio e sempre insere EnableTFTP. DrvNAT.cpp:1656-1665 define EnableTFTP como true por padrão para VMs antigas que omitem a chave, e então:

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

slirp.c:698 é g_strdup. Vazio permanece não-NULL. tftp.c:353-357 apenas desativa em NULL. 364-370 prefixa o prefixo, /, nome do convidado. 398-407 rejeita ../. Em seguida, RTFileOpen do caminho construído.

Caminhos errados já registrados: tratar o ../ do convidado como o resíduo (CVE-2022-21394, ainda rejeitado); tratar novas VMs padrão como afetadas; tratar o home/TFTP da NAT Network como este resíduo; alegar gravações WRQ; alegar kernel do host. Teatro: abrir /etc/passwd do host. O oráculo é um arquivo testemunha sob /oracle.

Laboratório

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

ou

cd lab
./run.sh
Baixar ferramenta