
Suite de exploração de prova de conceito para vulnerabilidades do bootloader U-Boot 1.1.3, permitindo análise de firmware, teste de atualização insegura e exploração da interface de depuração de hardware através de conexão serial UART.
Esta Prova de Conceito (PoC) foi criada para verificar vulnerabilidades no bootloader U-Boot versão 1.1.3 compilado em 27 de agosto de 2019. O código implementa cinco vulnerabilidades diferentes relevantes para as categorias do Guia de Testes de Segurança IoT da OWASP (ISTG).
AVISO: Use esta PoC apenas em dispositivos para os quais você tem permissão de teste. O uso em sistemas sem permissão pode violar as leis aplicáveis.
# Install required libraries
pip install pyserial cryptography
Para usar esta PoC, você precisa se conectar à interface serial do dispositivo alvo:
/dev/ttyUSB0 no Linux, COM3 no Windows)Este script oferece vários modos de operação para testar cada vulnerabilidade separadamente ou todas de uma vez.
python3 uboot_exploit_poc.py --port /dev/ttyUSB0
Você pode executar um exploit específico com o parâmetro --exploit:
# Test the "Insecure Update Mechanism" vulnerability
python3 uboot_exploit_poc.py --port /dev/ttyUSB0 --exploit 1
# Test the "Hardcoded Sensitive Values" vulnerability
python3 uboot_exploit_poc.py --port /dev/ttyUSB0 --exploit 2
# Test the "Debugging Interface Access" vulnerability
python3 uboot_exploit_poc.py --port /dev/ttyUSB0 --exploit 3
# Test the "No Protection Against Firmware Downgrade" vulnerability
python3 uboot_exploit_poc.py --port /dev/ttyUSB0 --exploit 4
# Test the "Missing Secure Channel for Updates" vulnerability
python3 uboot_exploit_poc.py --port /dev/ttyUSB0 --exploit 5
# Change the baudrate (default: 115200)
python3 uboot_exploit_poc.py --port /dev/ttyUSB0 --baudrate 57600
# Change the serial timeout (default: 1 second)
python3 uboot_exploit_poc.py --port /dev/ttyUSB0 --timeout 2
O script criará um diretório chamado uboot_extracted contendo:
O arquivo full_exploitation_summary.txt fornece um resumo completo de todos os testes de vulnerabilidade.
O bootloader carece de verificação de assinatura adequada para atualizações de firmware, permitindo a instalação de firmware não autorizado.
Valores sensíveis, como credenciais e chaves, estão codificados no binário do bootloader, permitindo a extração de informações sensíveis.
A interface de depuração está insuficientemente protegida, permitindo acesso a controles do sistema de baixo nível sem autenticação.
O bootloader carece de mecanismos anti-rollback, permitindo downgrades para versões com vulnerabilidades conhecidas.
As atualizações de firmware são transmitidas por canais inseguros, sem criptografia ou autenticação, permitindo interceptação e modificação.
As evidências coletadas por esta PoC podem ser usadas para apoiar uma submissão de CVE. Para submissão de CVE:
uboot_extractedEsta ferramenta é fornecida apenas para fins educacionais e de teste de segurança profissional. Os autores não são responsáveis por qualquer uso indevido ou dano causado por esta ferramenta. Sempre obtenha autorização adequada antes de testar qualquer sistema ou dispositivo.