
Suite di exploit proof-of-concept per le vulnerabilità del bootloader U-Boot 1.1.3, che consente l'analisi del firmware, il test di aggiornamenti non sicuri e lo sfruttamento dell'interfaccia di debugging hardware tramite connessione seriale UART.
Questo Proof of Concept (PoC) è stato creato per verificare vulnerabilità nel bootloader U-Boot versione 1.1.3 compilato il 27 agosto 2019. Il codice implementa cinque diverse vulnerabilità pertinenti alle categorie della OWASP IoT Security Testing Guide (ISTG).
ATTENZIONE: Utilizza questo PoC solo su dispositivi per i quali hai il permesso di testare. L'uso su sistemi senza autorizzazione potrebbe violare le leggi applicabili.
# Install required libraries
pip install pyserial cryptography
Per utilizzare questo PoC, è necessario connettersi all'interfaccia seriale del dispositivo target:
/dev/ttyUSB0 su Linux, COM3 su Windows)Questo script offre diverse modalità operative per testare ogni vulnerabilità separatamente o tutte insieme.
python3 uboot_exploit_poc.py --port /dev/ttyUSB0
Puoi eseguire un exploit specifico con il parametro --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
Lo script creerà una directory chiamata uboot_extracted contenente:
Il file full_exploitation_summary.txt fornisce un riepilogo completo di tutti i test di vulnerabilità.
Il bootloader manca di una corretta verifica delle firme per gli aggiornamenti del firmware, consentendo l'installazione di firmware non autorizzato.
Valori sensibili come credenziali e chiavi sono hardcodati nel binario del bootloader, consentendo l'estrazione di informazioni sensibili.
L'interfaccia di debug è insufficientemente protetta, consentendo l'accesso ai controlli di basso livello del sistema senza autenticazione.
Il bootloader manca di meccanismi anti-rollback, consentendo downgrade a versioni con vulnerabilità note.
Gli aggiornamenti del firmware vengono trasmessi su canali non sicuri senza crittografia o autenticazione, consentendo intercettazione e modifica.
Le prove raccolte da questo PoC possono essere utilizzate per supportare una presentazione CVE. Per la presentazione CVE:
uboot_extractedQuesto strumento è fornito solo per scopi educativi e di test di sicurezza professionali. Gli autori non sono responsabili per qualsiasi uso improprio o danno causato da questo strumento. Ottieni sempre la dovuta autorizzazione prima di testare qualsiasi sistema o dispositivo.