
Proof-of-Concept-Exploit-Suite für U-Boot-1.1.3-Bootloader-Sicherheitslücken, die Firmware-Analyse, unsichere Update-Tests und die Ausnutzung von Hardware-Debugging-Schnittstellen über eine serielle UART-Verbindung ermöglicht.
Dieses Proof of Concept (PoC) wurde erstellt, um Schwachstellen im U-Boot-Bootloader Version 1.1.3, kompiliert am 27. August 2019, zu verifizieren. Der Code implementiert fünf verschiedene Schwachstellen, die den Kategorien des OWASP IoT Security Testing Guide (ISTG) entsprechen.
WARNUNG: Verwenden Sie dieses PoC nur auf Geräten, für die Sie die Berechtigung zum Testen haben. Die Nutzung auf Systemen ohne Erlaubnis kann gegen geltende Gesetze verstoßen.
# Install required libraries
pip install pyserial cryptography
Um dieses PoC zu verwenden, müssen Sie eine Verbindung zur seriellen Schnittstelle des Zielgeräts herstellen:
/dev/ttyUSB0 unter Linux, COM3 unter Windows)Dieses Skript bietet mehrere Betriebsmodi, um jede Schwachstelle einzeln oder alle auf einmal zu testen.
python3 uboot_exploit_poc.py --port /dev/ttyUSB0
Sie können einen bestimmten Exploit mit dem Parameter --exploit ausführen:
# 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
Das Skript erstellt ein Verzeichnis namens uboot_extracted, das Folgendes enthält:
Die Datei full_exploitation_summary.txt bietet eine vollständige Zusammenfassung aller Schwachstellentests.
Der Bootloader verfügt über keine ordnungsgemäße Signaturüberprüfung für Firmware-Updates, was die Installation nicht autorisierter Firmware ermöglicht.
Sensible Werte wie Anmeldeinformationen und Schlüssel sind im Bootloader-Binärcode hartcodiert, was die Extraktion sensibler Informationen ermöglicht.
Die Debugging-Schnittstelle ist unzureichend geschützt, sodass ohne Authentifizierung auf systemnahe Steuerungen zugegriffen werden kann.
Dem Bootloader fehlen Anti-Rollback-Mechanismen, sodass ein Downgrade auf Versionen mit bekannten Schwachstellen möglich ist.
Firmware-Updates werden über unsichere Kanäle ohne Verschlüsselung oder Authentifizierung übertragen, was Abfangen und Modifikation ermöglicht.
Die von diesem PoC gesammelten Nachweise können zur Unterstützung einer CVE-Einreichung verwendet werden. Für die CVE-Einreichung:
uboot_extractedDieses Tool wird ausschließlich für Bildungs- und professionelle Sicherheitstestzwecke bereitgestellt. Die Autoren übernehmen keine Verantwortung für Missbrauch oder Schäden, die durch dieses Tool verursacht werden. Holen Sie stets die entsprechende Genehmigung ein, bevor Sie ein System oder Gerät testen.