Elija un dispositivo y aprenda cómo funciona hasta el más mínimo detalle.
¿Qué arquitectura de procesador ejecutan? Aprenda el lenguaje ensamblador para esa arquitectura.
Desarme el dispositivo, mire los chips y conectores, vea si puede detectar algún tipo de UART o bus serie, que podría conectar a su PC e intentar hablar con él.
- ¿Qué sitio web es bueno para aprender sistemas integrados?
- ¿Cuál es la historia de System on Chips (SoC)?
- ¿Por qué no se pueden implementar los conceptos orientados a objetos en la programación integrada?
- ¿Qué microcontrolador sugeriría para un principiante en sistemas integrados, siempre que conozca la codificación básica de ensamblaje en el procesador ARM7TDMI?
- Cuál es una mejor opción: el trabajo actual en el que estoy trabajando con un marco .Net que me paga bastante bien o un trabajo de programación integrado donde podría trabajar con C que me pagaría menos que mi trabajo actual.
Si el dispositivo tiene un puerto ethernet, conéctelo a una PC con cables, ¿qué paquetes de datos está enviando? Podrá resolver un montón de cosas sobre lo que intenta hacer en la red. Si llega al punto de que tiene una dirección IP, escanee el puerto, ¿qué servicios está exponiendo?
Pasó mucho tiempo buscando en Google el dispositivo, se sorprendería de la cantidad de detalles técnicos que algunos dispositivos tienen en línea, de otras personas que han pirateado con ellos.
Una vez que haya hecho todo esto y más, tendrá una selección de vectores de ataque como:
- Ejecutar un servidor HTTP basado en una versión explotable de lighthttpd: puede explotar esto enviando encabezados HTTP malformados y hacer que ejecute algún código de shell, que ha escrito para esa arquitectura de procesador.
- Observa que en Wireshark está haciendo una solicitud http a http://devicecompany.com/latest-…. Puede ser que si no es la misma que su versión actual, entonces solicitará http://devicecompany.com/ new-ver … y se actualiza a sí mismo: podría mejorarlo configurando un servidor DNS que resuelva http://devicecompany.com en su propio servidor web en su red local. Puede descargar current-version.bin, realizar ingeniería inversa y realizar cambios y entregar una nueva versión con sus cambios.
- Puede descubrir que hay pines UART en la placa de circuito del dispositivo, conectarlo a su PC, puede encontrar que puede ejecutar comandos directamente o puede obtener información sobre él. Esto también podría ser un vector de ataque si puede ejecutar comandos y explotar aquellos con un desbordamiento de pila, etc.
Las opciones son infinitas y los ejemplos que he proporcionado están simplificados. A menos que el dispositivo sea una cámara IP barata sin ningún tipo de seguridad considerada cuando la construyeron, probablemente le resulte difícil encontrar una entrada, pero eso no significa que no haya formas. Con acceso físico al dispositivo, siempre hay una manera. Eso puede significar desoldar un chip que contiene el firmware, conectarlo a su PC y extraerlo, luego cambiarlo y volver a flashearlo, luego volver a encenderlo. Nadie dijo que era simple 🙂