Saltearse al contenido

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).

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-TTL
JTAG depuración/boundary scan (TDI/TDO/TCK/TMS); control total del procesador
SWD variante de 2 pines de JTAG (ARM Cortex-M)
# encontrar los pines: inspección de la PCB, datasheet del chip, JTAGulator
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)
1. abrir el dispositivo, inspeccionar la PCB e identificar chips (datasheets)
2. localizar UART/JTAG (test points, cabeceras); JTAGulator/analizador lógico para mapear
3. UART: conectar USB-TTL, hallar baud rate -> consola/boot log -> a veces shell root directa
4. volcar la SPI flash (clip + programador) -> extraer firmware (ot-firmware)
5. JTAG/SWD: leer/escribir memoria, saltar protecciones, depurar
Adaptadores USB-TTL (UART), Bus Pirate, adaptadores JTAG (ver OpenOCD)
Diagnóstico multímetro, analizador lógico (Saleae/clones), JTAGulator
Memoria clip SOIC8, programador SPI (CH341A), flashrom
Software OpenOCD (JTAG/SWD), minicom/screen (serie), Ghidra (ot-firmware/pwn-reversing)
- 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)
  • 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.
  • 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.
  • 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