
Laboratório educacional que compila firmware EDK II/OVMF fixado, inicializa uma VM UEFI no QEMU e executa scripts PoC em Python para uma vulnerabilidade de DoS em boot de rede PXE e de corrupção de memória.
Um laboratório educacional para estudar uma vulnerabilidade de inicialização de rede via PXE no EDK II / OVMF. Ele compila uma revisão fixada do EDK II, inicializa uma máquina virtual UEFI no QEMU e inclui scripts de prova de conceito em Python para investigar negação de serviço (DoS) e corrupção de memória.
Referências: Aviso de segurança do EDK II · Correção upstream
dnsmasq, ip/tc (normalmente de iproute2 ou iproute) e privilégios sudo/root.A partir do arquivo extraído:
cd pxe-lab-public
chmod +x *.sh
./start.sh
O lançador verifica as dependências, oferece instalar os pacotes ausentes, compila o edk2-stable202608 (commit 2970e5699ba6267f3384ffab20f96647578aebc8) se necessário e abre o menu de controle da VM. Não execute start.sh nem a compilação do firmware com sudo.
Comandos úteis:
./start.sh --check # Verifica o ambiente
./start.sh --build-only # Compila o firmware fixado sem iniciar o QEMU
./start.sh --system # Usa o OVMF do sistema (não adequado para verificar a vulnerabilidade fixada)
./lab_run.sh --help # Mostra opções de rede, captura e QEMU
A rede padrão em modo usuário do QEMU é isolada e não requer root. Para registrar uma captura de pacotes, execute ./lab_run.sh --pcap session.pcap após compilar o firmware.
Os scripts de PoC exigem modo bridge; eles não conseguem injetar pacotes na rede padrão em modo usuário do QEMU.
Primeiro, compile o firmware como usuário normal com ./start.sh --build-only. Em seguida, em um terminal:
cd pxe-lab-public
sudo ./lab.sh --network bridge --namespace pxelab
Selecione 1 (Start) no menu. Em um terminal separado, execute um dos seguintes comandos a partir da raiz do arquivo extraído:
cd PoC-DoS
sudo bash ./start_dos.sh
Ou, para a tentativa experimental de corrupção de memória / RCE:
cd PoC-RCE
sudo bash ./start_rce.sh
Esses experimentos enviam tráfego forjado para o ambiente PXE virtual isolado e podem causar travamento, falha ou exceção no firmware. Uma falha ou um valor de registrador corrompido não é evidência de que a execução de código arbitrário tenha sido bem-sucedida. O script de RCE é uma tentativa experimental, não um exploit de RCE verificado. Os resultados podem variar conforme o sistema e a compilação do firmware.
A infraestrutura do laboratório (código de configuração, compilação e gerenciamento da VM) foi gerada com o auxílio de um modelo de linguagem de grande porte (LLM) e testada pelo autor. Os scripts de prova de conceito de DoS e RCE foram escritos pessoalmente pelo autor e testados com o auxílio de um assistente LLM. Os testes não garantem correção, segurança, reprodutibilidade ou compatibilidade com outros sistemas.
Use este código apenas em equipamentos que você possui e controla, em um ambiente de teste isolado. Não o utilize contra sistemas, redes ou dispositivos de terceiros.
Todo o código e os scripts são fornecidos “NO ESTADO EM QUE SE ENCONTRAM” (“AS IS”), sem garantias de qualquer tipo. Na máxima extensão permitida pela lei aplicável, o autor se exime de responsabilidade por erros, mau funcionamento, danos, perda de dados ou consequências decorrentes do uso deste repositório. Os usuários são os únicos responsáveis por suas ações e pelo cumprimento das leis aplicáveis.