Ingeniería inversa de todos mis periféricos con IA: un shell de comandos en mi micrófono y una cámara que graba sin LED

Everything I own, owned

Ingeniería inversa de todos mis periféricos con IA: un shell de comandos en mi micrófono y una cámara que graba sin LED

El autor utilizó agentes de IA (Claude Opus 5) para realizar ingeniería inversa de cinco periféricos personales: una cámara web Insta360 Link, un monitor ASUS ROG Swift PG42UQ, un micrófono Shure MV7, un capturador de video Elgato Cam Link 4K y una luz Elgato Key Light Mini. En total, unas 13 horas de trabajo autónomo y 98 prompts. Los resultados incluyen un shell de comandos en texto plano en el micrófono, la capacidad de desactivar el LED de actividad de la cámara mientras graba, y una vulnerabilidad en la luz que permite escrituras de memoria a través de WiFi. El autor documenta todo en repositorios de GitHub y destaca la facilidad de explotación de estos dispositivos, así como las implicaciones de seguridad.

Un solo HTTP POST de `ATSE=0200ED94,0E001009` convierte la verificación de firma en un no-op, y podemos actualizar libremente a una imagen de firmware sin firma legítima.
  1. SillyUsername

    Hice esto pero con una máquina dedicada para la GPU Silicon Motion sm750. Una tarjeta GPU económica de una sola salida HDMI para servidores y una resolución máxima de 1080p. Se basa en una versión más antigua de VGA/DVI del mismo hardware.

    Todavía estoy probando pero, oh vaya. Mi nuevo driver ahora funciona con mi ultra ancho en proporción 21:9 a 2048x864, y también gestiona 2048x1152.

    El driver funciona bien, y ahora tiene soporte completo de DRM y DKMS. También corre en Linux moderno después de que el fabricante decidiera solo llegar hasta el kernel 5.x; el soporte en Windows obviamente sigue bien.

    Encontró muchos fallos en el código fuente original, como que alguien no leyó las especificaciones de HDMI o no tenía ni idea de lo que estaba haciendo.

    El nuevo driver cumple totalmente con los tiempos y secuencias de las especificaciones, ya no se cuelga al apagar, e ignora el EDID para permitir más modos de pantalla.

    También tiene doble buffer, shadow buffer, y un modo de tramado de cuadrado mágico personalizado para color de 16 bits, y vuela en comparación con el modo de 32 bits. El tramado que inventé se derivó de uno que creé hace años para hardware retro, pero es tan bueno que (en mi humilde opinión) es indistinguible del artefacto JPEG general y bastante difícil de encontrar/ver. He tenido que preguntarle a codex varias veces para comprobar que la GPU no está en color de 32 bits.

    La GPU todavía tiene un bug molesto y no funciona de manera consistente a través de KVM sin perder la sincronización en modos VESA, pero no estoy convencido de que sea el hardware de la GPU el que hace esto; funciona perfectamente bien conectada directamente.

    Tengo pendiente subir un repositorio de GitHub para esto en cuanto […]

  2. ndiddy

    > Mi monitor ASUS ROG Swift PG42UQ fue en realidad por donde empecé, porque me molestaba el overlay emergente que aparece de vez en cuando y me dice que ejecute la "limpieza de píxeles". Nunca he ejecutado intencionalmente la limpieza de píxeles en este monitor y nunca lo haré, no me importa, y me gustaría que ese overlay desapareciera para siempre. Quizás haya un menú de depuración o algo que pueda apagarlo, o en el peor de los casos parcheamos una rama en el firmware.

    Ten en cuenta que este es un monitor OLED, así que lo de la "limpieza de píxeles" probablemente sea alguna función anti-quemado. Podrías pedirle a la IA que mire el firmware y describa lo que hace.

  3. phh

    Definitivamente me encanta este artículo y este espíritu. He acumulado un montón de IoT barato y de mala calidad, ¡probablemente los tendré!

    Dos cosas:

    - Para aguar la fiesta, la directiva europea RED hace obligatorias las actualizaciones seguras para cualquier cosa conectada a internet (sospecho que por eso Elgato Key Light Mini tiene firmwares firmados). Así que los OEM ahora están obligados a impedir que hagas eso. (EN18031-1). Incluso requiere que las credenciales de red (SSID/PSK de WiFi) se almacenen en almacenamiento seguro (no sé si puedes pasar ese requisito sin arranque seguro. Supongo que Elgato lo hace?). "Actualización segura" se define de manera laxa como "la integridad y autenticidad son válidas en el momento de la instalación", así que este requisito no nos prohíbe actualizar nuestro hardware, pero la implementación más probable de los OEM sí.

    - Cuando quieras hacer eso en smartphones Android (¡por favor hazlo!): recomiendo ir por la ruta GSI/Treble: así rápidamente tienes un sistema operativo que arranca. Hay muchas cosas que arreglar, pero serán principalmente cosas de espacio de usuario, que serán más fáciles de manejar para el agente. El agente podrá descompilar el espacio de usuario del OEM y compararlo con el espacio de usuario de AOSP, e implementar las diferencias. (Eso en comparación con el método "heredado" u oficial de LineageOS que es más enrevesado, incluyendo cosas del kernel, y llegar solo a "que arranque" puede ser complicado).

  4. philips

    Hace unas semanas hice ingeniería inversa del formato de archivo de notas de Supernote con un agente. Durante años la comunidad había estado pidiendo un documento sobre el formato. Y en unas pocas horas el agente, con unas 20 muestras de formato de archivo y unas 30 indicaciones, pudo sacar el formato.

    No habría valido la pena hacerlo a mano para un dispositivo de nicho. Ahora, en unas horas de esfuerzo hay código funcional y un documento.

    https://github.com/philips/supernote-typescript/blob/main/pl...

    https://philips.github.io/supernote-typescript/

  5. Waterluvian

    Hace dos semanas le dije a Claude: "Tengo un <relé de enchufe WiFi> en la LAN en <IP>. Asume el control directo de él." Y después de unas 8 aprobaciones de comandos tenía un nuevo firmware corriendo en él.

    Eso sí, encontró y usó una librería existente de flasheo de firmware para esta familia de dispositivos. Pero se sintió increíble hacer en 20 minutos lo que probablemente habrían sido horas y horas de investigación y experimentación que no me interesaban. Solo quería una lámpara de lava WiFi.

  6. srcreigh

    > Todavía no he tenido el valor de escribir un firmware modificado en el dispositivo - es un monitor bastante caro - pero llegaré a eso en algún momento.

    Honestamente, si no tienes parches funcionales, realmente no es tuyo.

    Me encantaría entender mejor cómo parchear firmware de manera segura e iterativa. La semana pasada brickée un router intentando añadir una ruta de arranque TFTP a la partición de arranque. Es una mierda que sea tan arriesgado.

    Relacionado, también necesitamos buenas herramientas de glitching, ya que algunos firmware incluso de dispositivos baratos no están disponibles sin cifrar, y la lectura de flash está deshabilitada...

    Todavía no estamos ahí, pero espero que lleguemos pronto.

  7. bobek

    Siendo honesto, esto es una de las pocas cosas que se sienten emocionantes sobre los LLMs. Recientemente reviví un panel flip-dot de un autobús viejo haciendo ingeniería inversa y reemplazando su firmware -- https://www.bobek.cz/buse/

  8. teddyh

    Conclusión clave:

    > Y la existencia de WebUSB, WebHID y WebBluetooth significa que para algunos dispositivos, dependiendo de los detalles de qué clases se usan, un momento de indiscreción del usuario al aceptar un aviso de permisos podría dejar una puerta trasera permanente en uno de sus dispositivos conectados.

  9. Retr0id

    Usar LLMs para RE y caza de bugs es muy divertido. Hoy reporté un bug de los gordos al VRP de Google. La vulnerabilidad estaba en un endpoint de API HTTP del que no tengo el código fuente, solo la lógica del cliente que hice RE.

    La idea detrás del bug fue mía, del tipo "seguro que no fueron tan estúpidos como para olvidar hacer xyz". Escribir el código para sondear la vulnerabilidad a mano habría tomado unas horas de trabajo pesado, incluyendo reconstruir esquemas de protobuf, etc. En el pasado simplemente no me habría molestado, porque en mi opinión las probabilidades de éxito eran demasiado bajas para que valiera la pena. Pero fue una indicación de una frase, así que ¿por qué no? ¡Y funcionó!

  10. Abishek_Muthian

    En este punto los fabricantes deberían simplemente abrir sus firmwares, ya que no hay barrera de entrada para hacer ingeniería inversa. En cambio, ganarían de un ejército de usuarios finales dispuestos a dedicar su tiempo y tokens a arreglar sus bugs gratis.

Más de este día

2026-08-24