¡Hola! Me estreno publicando entre los pax0rs con lo que espero que sea el primero de una larga lista de entradas sobre hardware hacking. Y no es que sea un ingeniero con 20 años de experiencia destripando cacharros. Más bien, pretendo que estas entradas sean un reflejo de todo el proceso de aprendizaje que acabo de comenzar.
Estos primeros capítulos abordarán el análisis de uno de los dispositivos que tenía por casa que más interés me despiertan, un router Technicolor TD5130. Es interesante porque es fácil de desmontar, existe información previa sobre él en Internet, me permite utilizar algunos juguetes nuevos que me he comprado, y no creo que pase nada si lo rompo…
Sin más relleno, al lío.
Introducción
En el mundo de dispositivos conectados, Internet of Things, o SmartCosas, nos encontramos varios puntos interesantes desde la perspectiva de la seguridad informática:
- Son aparatos conectados a Internet, con una o más interfaces inalámbricas, y pequeños servicios expuestos a ellas (documentados o no).
- Muchos de ellos son baratos, lo que no obliga a que su desarrollo haya sido rápido y orientado a recortar los costes, pero, para que nos vamos a engañar, son cutres.
- En la práctica totalidad de los casos, la seguridad no es un elemento central de su diseño, por lo que por más que hayan sido securizados, es muy probable que haya algún método de acceso que no debería estar ahí.
Con estos puntos, entre otros muchos, IoT resulta un campo muy interesante (y divertido, si te gusta -literalmente- romper cosas con chips) para meter la mano, la nariz, y lo que se pueda. Abre la puerta a realizar tareas de electrónica, reversing, fuzzing, exploiting, y demás -ing, todo bajo un mismo aparato.
Análisis de hardware
El primer paso antes de realizar cualquier procedimiento relacionado con hardware es analizar el mismo del modo menos intrusivo posible. Tendremos tiempo para romper la carcasa cuando nos demos cuenta que uno de los tornillos estaba debajo de una pegatina (lo cual nunca me ha pasado ni me volverá a ocurrir).
Comenzamos realizando una revisión del router a primera vista, localizando los elementos de interacción que se le presentan al usuario final:
Como se puede observar en las imágenes, el router presenta en el frontal los LEDs y los indicadores, respectivamente, de encendido, red LAN, red WiFi, WPS, conexión DSL e Internet; en el lateral derecho el botón WPS, y en el panel trasero los puertos de conexión (de izquierda a derecha, puerto de conexión DSL, botón de Reset, LEDs de actividad de los puertos 1 y 2 de Ethernet, cuatro puertos Ethernet, otros dos LEDs de actividad, puerto de conexión a corriente, y el botón de encendido).
Durante esta revisión, además, localizamos los tornillos y los elementos que mantienen cada pieza en su lugar. Con cuidado y con ayuda de elementos lo menos agresivos posibles (yo he utilizado una púa de guitarra, de mis años de rock star), abrimos el dispositivo, revelando la placa con todos los componentes electrónicos.
El siguiente paso es la identificación de los elementos más relevantes, tanto para conocer el funcionamiento del dispositivo, como para buscar en Internet información del mismo (al ser un modelo viejo, es posible que alguien lo haya analizado previamente). Los componentes principales son:
- CPU: unidad de procesamiento de datos, nos resulta interesante de cara a comprobar en Internet las capacidades de la placa y otros elementos similares en los que pueda haber sido utilizado el mismo chip:
- RAM: del mismo modo que la CPU, no interactuaremos a menudo con esto, pero nos sirve para localizar modelos similares analizados en Internet, y nos puede dar información sobre la estructura de la memoria. El chip suele encontrarse cercano a la CPU, rodeado de buses que los conectan:
- WI SoC (Wireless Interface System on Chip): estos components suelen estar rodeados de una estructura rectangular y situarse no demasiado lejos de uno o más conectores de antena. En el caso de los routers, son uno de los elementos más importantes, y nos ayudan mucho en la localización de placas similares:
- Flash / NVRAM: se trata de la memoria no volátil del sistema, donde se almacena toda la información que se necesita preservar entre reinicios. En este lugar se encuentra el firmware y los archivos de configuración persistentes del dispositivo:
- Puertos I/O: estos elementos nos proporcionan un método de comunicación con el dispositivo, habitualmente suponen el camino más directo al análisis del mismo. Más adelante añadiré un capítulo especialmente dedicado a las interfaces de entrada y salida, pero, a modo de introducción al tema, los puertos serie, como UART, cuentan con 4 pines (+3,3V, tierra, entrada y salida), y los puertos JTAG… bueno, no hay introducción fácil a JTAG, no hay estándar de la interfaz, pero generalmente se agrupan en bloques de 5, 10, 14 o 20 pines. En el caso de este router, los puertos I/O se encuentran sin terminales soldados, lo cual complica el análisis dinámico del mismo, ya que deberíamos modificar la placa, con el consiguiente riesgo de dejarla fuera de combate (lo haremos más adelante):
Buscando en Internet estos componentes podemos encontrar modelos de dispositivos que compartan configuración con el actual, o, si tenemos suerte, información sobre el aparato que estamos analizando. Es el caso de este router, que ha sido destripado previamente y la información se ha recogido en la URL https://wikidevi.com/wiki/Technicolor_TD5130v1.
Es importante destacar que lo que encontremos en Internet, pese a parecer idéntico, no tiene por qué coincidir al 100% con el modelo que estemos analizando: el router que se muestra en WikiDevi presenta un chip para la RAM Winbond W9825G6JH-6, mientras que en nuestro caso es del fabricante ESMT. Si se da esta situación, evidentemente, prima la información que recopilemos del modelo actual, y no podemos asumir un modo de operación similar al encontrado en Internet.
Conclusión
Este primer capítulo ha sido una introducción ligerita a la lista de hardware hacking. Espero que haya servido para afianzar algunos conceptos, y aprender a reconocer elementos y puertos, lo que será necesario para procedimientos que llevaremos a cabo en futuras entregas.
En el próximo capítulo, veremos cómo extraer el firmware de este dispositivo conectándonos directamente al chip que contiene la memoria flash.
¡Un saludo!
Eriatarka.