Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introducción al hardware hacking - HackMadrid%27

Introducción al hardware hacking - HackMadrid%27

D0d62e96926cd2a798ee588350330ded?s=128

Julio Galarón

July 06, 2019
Tweet

More Decks by Julio Galarón

Other Decks in Education

Transcript

  1. Julio Galarón Touriño @jgalaron Introducción al hardware hacking

  2. Una modificación o corrección en un dispositivo que mejora o

    hace que realice algo para lo que no estaba originalmente diseñado.
  3. Criptografía y Métodos de Cifrado Electrónica analógica / digital Soldadura

    C/C+/ASM Arquitectura de computadores Buses - Protocolos de comunicación
  4. Herramientas

  5. Ensamblado y desensamblado físico. Medición y análisis de señales. Control

    del sistema e inyección. Clasificación
  6. Destornilladores Necesarios para abrir las carcasas de los dispositivos investigados

    o desmontar partes internas o placas. Recomendable de precisión largos Púas de apertura Púas de apertura para dispositivos, fabricadas en plástico para evitar el deterioro del dispositivo durante su apertura. Multiherramienta dremel No necesaria en la mayoría de los casos, pero puntualmente puede ser útil para corte de tornillos atascados, agujeros de inspección o corte de cajas de blindaje EMI Ensamblado y desensamblado
  7. None
  8. Documentación relacionada: Kit de destornilladores de precisión: Xiaomi wiha, Wera

    05051040001 Puas de apertura: JAKEMY JM-OP15 , JAKEMY JM-OP08 * Existen numerosas opciones. Se han elegido las más representativas o peculiares.
  9. Soldador - Estación Empleado para soldar o desoldar componentes, como

    chips o memorias y analizarlos bajo determinadas condiciones o de forma aislada. Recomendable comprar un soldador de calidad con puntas intercambiables. Desoldador Malla desoldadora. Desoldador manual tipo chupón o automático bomba eléctrica. Estaño Calibre <1mm. Recomendable 0.5 o 0.7mm. Por salud, aleaciones sin plomo. Por comodidad, aleaciones con plomo. Flux Facilita la soldadura. Pinzas y alicates de corte Recomendable pinzas de precisión de cierta calidad (titanio o acero). Extractor de humo Si no se suelda de forma habitual, un extractor DIY con filtros de carbono puede realizar correctamente su función. Soldadura
  10. Documentación relacionada: Soldador / estación de soldadura: JBC 14s (11W)

    JBC 30st (25w), JBC SL2020, Weller, TS100, TS80, BAKU-878L, AOYUE INT2702A+ Desoldador chupón: JBC Du-1191, Pro’sKit pk-366n Malla desoldadora: Goot wick 1.5mm o 3mm Flux: UANME RT ZJ-18, AMTECH NC-559-ASM Extractor de humos: Fa-400 Extractor casero: https://www.thingiverse.com/search?q=fume+extractor&dwh=805d22769527396 * Existen numerosas opciones. Se han elegido las más representativas o peculiares.
  11. None
  12. Cables dupont 2.45mm Utilidad: Facilitar la conexión en placa con

    dispositivos de medición/testeo. Conectores macho 2.45mm Utilidad: Mejorar la conectividad de pines en placa. Cable wrapping / Cable cobre de 0.01 - 0.02mm Utilidad: Realización de uniones o hacer accesibles pines de difícil acceso. Puntas de test / Pogo pins Utilidad: Conexión no invasiva en pines. Placa de prototipado Utilidad: Montaje temporal de circuitos y/o realización de conexiones mediante cables. Conexionado
  13. None
  14. None
  15. Documentación relacionada: Herramientas DIY para prueba y depuración: “PCB Workstation

    with Articulated Arms”: https://www.thingiverse.com/thing:801279 “PCB Workstation with Nano-Probes ”: https://www.thingiverse.com/thing:3615910/ * Existen numerosas opciones. Se han elegido las más representativas o peculiares.
  16. Multímetro Medida de voltajes, corrientes, resistencia, capacidad,.. Analizador lógico Capaz

    de visualizar las señales de múltiples canales, captura los datos de un circuito digital y los muestra para su posterior análisis Osciloscopio Instrumento de visualización electrónico para la representación gráfica de señales eléctricas que pueden variar en el tiempo. Fuente de alimentación regulable Utilizada para alimentar dispositivos electrónicos. Permite ajustar/limitar voltaje/amperaje de salida. Análisis, medición, alimentación
  17. Documentación relacionada: Multimetro: UNI-T UT61E, UNI-T UT210E, Fluke 17b+ Analizador

    lógico: Saleae (o Saleae compatible 8 o 16), DSlogic plus (el kit oficial equipa mejores puntas de test) Software multidispositivo/multiplataforma: https://sigrok.org/ Osciloscopio: Hantek 2D72, Hantek DSO5102P, Rigol DS1054z Comparador de osciloscopios: http://scopechart.com/ Fuente regulable: K3010D, Rigol DP832, SPD3303X-E, DPS 5015 (fuente DIY) https://www.eevblog.com/forum/blog/eevblog-1030-$20-diy-bench-power-supply!/ * Existen numerosas opciones. Se han elegido las más representativas o peculiares.
  18. Programador universal Utilidad: Leer/escribir firmware en microcontroladores, leer/ escribir memorias

    (NAND,NOR, Eeprom),… Dispositivo JTAG / SWD Utilidad: Depuración, prueba, lectura/escritura de firmware en equipos electrónicos. Programación y depuración
  19. Documentación relacionada: Programador universal: TL866II, RT809H. Recomendable comprar kits con

    varios conjuntos de adaptadores. JTAG / SWD: J-link, CJMCU FT232H, ST-link * Existen numerosas opciones. Se han elegido las más representativas o peculiares.
  20. Multimetro UNI-T UT61E 59 € Estación soldadura Baku 65 €

    Analizador lógico Saleae 8 compatible 7 € Pinzas Pinzas de precisión de titanio 11 € Alicate de corte Calidad oriental 1,5 € Cables Cables dupont 2.45mm 5 € Placa CJMCU FT232H 6,70 € Programador universal TL866II 50 € Configuración mínima de herramientas * Existen numerosas opciones. Se han elegido las más representativas o peculiares.
  21. OpenOCD (Open On-Chip Debugger): Permite establecer conexiones entre nuestro ordenador

    y el chip a analizar mediante un dispositivo interfaz. La interacción se realiza a través de una interfaz telnet por el puerto 4444/TCP o con el GDB en el puerto 3333/TCP por defecto. GDB Depurador libre para sistemas Linux que nos ayudará a entender el funcionamiento de las ejecuciones on-chip. OllyDBg Desensamblador utilizado para análisis de binarios en Windows. IDA PRO Desensamblador de código similar a OllyDbg. Radare 2 Framework para la práctica de ingeniería inversa y análisis de binarios compuesto por varias herramientas, completamente portable y con soporte para varias arquitecturas. Binwalk Herramienta para el análisis y escaneo de imágenes firmware y binarios, muestra de manera muy rápida las diferentes particiones, tamaño, cifrado, sistema de ficheros utilizado, etc… Software * Existen numerosas opciones. Se han elegido las más representativas o peculiares.
  22. Documentación relacionada: Software: OpenOCD: http://openocd.org/ GDB: https://www.gnu.org/software/gdb/ Olly debugger: http://www.ollydbg.de/

    Ida pro: https://www.hex-rays.com/products/ida/ Radare2 : https://rada.re/r/ Radare GUI: https://github.com/radareorg/cutter UrjTAG: http://urjtag.org/ Binwalk: https://github.com/ReFirmLabs/binwalk https://tools.kali.org/forensics/binwalk Herramientas hardware de depuración: J-link, CJMCU FT232H, ST-link. CJMCU FT232H, documentación y ejemplos: https://learn.adafruit.com/adafruit-ft232h-breakout/more-info https://www.xipiter.com/musings/using-the-shikra-to-attack-embedded-systems-getting- started * Existen numerosas opciones. Se han elegido las más representativas o peculiares.
  23. Documentación relacionada: Herramientas hardware de depuración: Localización / identificación de

    pines: Jtagulator: http://www.grandideastudio.com/jtagulator/ BUSSide: https://github.com/BSidesCbr/BUSSide JTAGenum: https://github.com/cyphunk/JTAGenum * Existen numerosas opciones. Se han elegido las más representativas o peculiares.
  24. None
  25. None
  26. •Apertura ◦ Precintos de seguridad y medidas “anti-tamper” •Inspección general

    ◦ Identificación de componentes •Análisis PCB ◦ Características ◦ Búsqueda e interpretación de “datasheets" (FCC.io) ◦ Localización pin-outs •Accediendo a los buses ◦ Tipos de buses comunes ◦ Conseguir una shell ◦ Modificar firmware
  27. Endianness (Little - Big)

  28. None
  29. Niveles lógicos

  30. None
  31. High Voltage Input Low Voltage Input Channel 1 Channel 2

    Channel 3 Channel 4
  32. BUSES

  33. UART (Universal Asynchronous Receiver-Transmitter)

  34. None
  35. I2C (Inter-Integrated Circuit)

  36. None
  37. SPI (Serial Peripheral Interface)

  38. None
  39. Documentación relacionada: Endianness: https://www.allaboutcircuits.com/technical-articles/big-endian-little-endian- endianness-byte-arrangement-digital-systems/ Niveles lógicos: https://www.allaboutcircuits.com/textbook/digital/chpt-3/logic-signal-voltage-levels/ https://hackaday.com/2018/08/14/behind-the-pin-logic-level-outputs/ TXS0108E:

    https://www.ti.com/lit/ds/symlink/txs0108e.pdf Buses: UART: https://www.rinconingenieril.es/funciona-puerto-serie-la-uart/ I2C: https://www.luisllamas.es/arduino-i2c/ SPI: https://www.luisllamas.es/arduino-spi/ Formación en electronica analógica y digital en español: https://www.youtube.com/channel/UCeidauAIxx_JeNcrleaPDqw/videos * Existen numerosas modelos en el mercado. Se han elegido los más representativas o peculiares.
  40. JTAG / SWD

  41. Desde el punto de vista eléctrico: • Número de pines:

    ◦ JTAG necesita de 4 lineas de señal ( TCK, TDO, TMS, TDI ) ◦ SWD sólo requiere 2 lineas de señal. ◦ Existe una configuración de JTAG usando 2 cables especificada en IEEE 1149.7 aunque no es ampliamente usada y el ancho de banda se reduce considerablemente. • Topología: ◦ JTAG usa una configuración daisy chain para cada linea de datos entre chips. La velocidad del bus JTAG está limitada por el chip más lento que forma la cadena. ◦ SWD emplea topología en estrella. Funcionalidad: • SWD es un protocolo especifico de ARM diseñado para micro debugging. • JTAG (Joint Test Action Group 1985) fue diseñado para tester de chips y pruebas en placa. Usada para localizar fallos en chips/placas durante su producción. La depuración y la programación fue una evolución de su aplicación a lo largo del tiempo. • JTAG se usa en multiples microcontroladores/arquitecturas no solamente ARM.
  42. None
  43. None
  44. Documentación relacionada: JTAG / SWD: https://optivstorage.blob.core.windows.net/web/file/ 55e86eae3f04450d9bafcbb3a94559ca/JTAG.Whitepaper.pdf https://www.allaboutcircuits.com/technical-articles/getting-started-with-openocd-using- ft2232h-adapter-for-swd-debugging/ https://www.youtube.com/watch?v=TlWlLeC5BUs

    Recuperación de firmware en routers mediante JTAG: https://forum.openwrt.org/t/tp-link-archer-c7-v1-jtag-u-boot-recovery-using-st-link-v2-usb- adapter-clone-known-as-baite/39582 https://stefanchrist.eu/blog/2014_07_23/ How%20I%20bricked%20and%20debricked%20my%20Linksys%20WRT54GL%20Router .xhtml Ejemplos de reversing en dispositivos hardware: https://mcuoneclipse.com/2019/05/26/reverse-engineering-of-a-not-so-secure-iot-device/ https://jcjc-dev.com/2016/12/14/reversing-huawei-5-reversing-firmware/ https://blog.quarkslab.com/reverse-engineering-broadcom-wireless-chipsets.html