Hardware hacking (UART, JTAG)
El acceso físico al hardware de un dispositivo embebido abre interfaces de depuración (UART, JTAG/SWD) y chips de memoria que a menudo dan acceso total: consola de root, volcado de firmware y lectura/escritura de memoria. Es el punto de partida de muchos análisis de IoT (Pentest de IoT/Análisis de firmware).
Interfaces de depuración
Sección titulada «Interfaces de depuración»UART consola serie (TX/RX/GND); a menudo da una SHELL de root o el log de arranque -> identificar pines, velocidad (baud rate), conectar adaptador USB-TTLJTAG depuración/boundary scan (TDI/TDO/TCK/TMS); control total del procesadorSWD variante de 2 pines de JTAG (ARM Cortex-M)# encontrar los pines: inspección de la PCB, datasheet del chip, JTAGulatorChips de memoria
Sección titulada «Chips de memoria»SPI flash almacena el firmware; se puede VOLCAR con un clip (SOIC) + programador -> chip off o in-circuit; leer con flashrom/un programador (CH341A, etc.)eMMC/NAND almacenamiento mayor; más complejo de volcar# volcar la flash = obtener el firmware para análisis (ot-firmware)Flujo típico
Sección titulada «Flujo típico»1. abrir el dispositivo, inspeccionar la PCB e identificar chips (datasheets)2. localizar UART/JTAG (test points, cabeceras); JTAGulator/analizador lógico para mapear3. UART: conectar USB-TTL, hallar baud rate -> consola/boot log -> a veces shell root directa4. volcar la SPI flash (clip + programador) -> extraer firmware (ot-firmware)5. JTAG/SWD: leer/escribir memoria, saltar protecciones, depurarHerramientas
Sección titulada «Herramientas»Adaptadores USB-TTL (UART), Bus Pirate, adaptadores JTAG (ver OpenOCD)Diagnóstico multímetro, analizador lógico (Saleae/clones), JTAGulatorMemoria clip SOIC8, programador SPI (CH341A), flashromSoftware OpenOCD (JTAG/SWD), minicom/screen (serie), Ghidra (ot-firmware/pwn-reversing)Qué se consigue
Sección titulada «Qué se consigue»- shell de root por UART -> control del dispositivo y acceso a su FS en vivo- volcado de firmware -> credenciales/claves/vulns (ot-firmware)- lectura/escritura de memoria por JTAG -> saltar arranque seguro, extraer secretos- base para encontrar vulns que luego se explotan remotamente (ot-iot)Blue Team / fabricante
Sección titulada «Blue Team / fabricante»- Deshabilitar/fusibles UART/JTAG en producción (disable debug, blow fuses) o protegerlos.
- Cifrar el firmware en la flash y usar secure boot (volcar la flash no debe revelar secretos).
- Secretos por dispositivo en elementos seguros (TPM/secure element), no en flash en claro.
- Detección de manipulación (tamper) en dispositivos de alto valor.
CVEs y casos reales
Sección titulada «CVEs y casos reales»- Innumerables dispositivos dan shell root por UART sin autenticación (puerta trasera física).
- Volcado de SPI flash para extraer firmware y claves es rutina en investigación de IoT.
- Saltar secure boot por JTAG/fallos de implementación ha roto consolas y dispositivos cerrados.
Checklist de prueba
Sección titulada «Checklist de prueba»- Abrir y documentar la PCB; identificar chips (datasheets)
- Localizar UART/JTAG/SWD (test points, JTAGulator)
- UART: hallar baud rate y acceder a consola/boot log
- Volcar la SPI flash (clip + programador) → firmware (Análisis de firmware)
- JTAG/SWD con OpenOCD: leer/escribir memoria
- Buscar secretos y protecciones (secure boot, cifrado de flash)
- Todo sobre dispositivo propio / con autorización