
Suite de exploits de prueba de concepto para vulnerabilidades del gestor de arranque U-Boot, incluyendo mecanismos de actualización inseguros, credenciales codificadas, acceso a interfaces de depuración y ausencia de protecciones anti-reversión, para pruebas de seguridad autorizadas en IoT.
Este concepto de prueba (PoC) se creó para verificar vulnerabilidades en el bootloader U-Boot versión 1.1.3 compilado el 27 de agosto de 2019. El código implementa cinco vulnerabilidades diferentes relevantes para las categorías de la Guía de Pruebas de Seguridad IoT de OWASP (ISTG).
ADVERTENCIA: Use este PoC solo en dispositivos para los que tenga permiso de prueba. El uso en sistemas sin permiso puede violar las leyes aplicables.
# Install required libraries
pip install pyserial cryptography
Para usar este PoC, debe conectarse a la interfaz serie del dispositivo objetivo:
/dev/ttyUSB0 en Linux, COM3 en Windows)Este script ofrece varios modos de operación para probar cada vulnerabilidad por separado o todas a la vez.
python3 uboot_exploit_poc.py --port /dev/ttyUSB0
Puede ejecutar un exploit específico con el 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
El script creará un directorio llamado uboot_extracted que contiene:
El archivo full_exploitation_summary.txt proporciona un resumen completo de todas las pruebas de vulnerabilidad.
El bootloader carece de una verificación de firma adecuada para las actualizaciones de firmware, lo que permite la instalación de firmware no autorizado.
Valores sensibles como credenciales y claves están codificados en el binario del bootloader, lo que permite la extracción de información sensible.
La interfaz de depuración está insuficientemente protegida, lo que permite el acceso a controles de bajo nivel del sistema sin autenticación.
El bootloader carece de mecanismos antirretroceso, lo que permite degradaciones a versiones con vulnerabilidades conocidas.
Las actualizaciones de firmware se transmiten a través de canales inseguros sin cifrado ni autenticación, lo que permite la interceptación y modificación.
La evidencia recopilada por este PoC se puede utilizar para respaldar una presentación de CVE. Para la presentación de CVE:
uboot_extractedEsta herramienta se proporciona únicamente con fines educativos y de prueba de seguridad profesional. Los autores no son responsables de ningún uso indebido o daño causado por esta herramienta. Siempre obtenga la autorización adecuada antes de probar cualquier sistema o dispositivo.