Logotipo de Zephyrnet

Dispositivo USB ThinkPad X1 Carbon convertido a través de una excavación incesante

Fecha:

En lo que es quizás una de las publicaciones de ingeniería inversa de computadoras portátiles más impresionantes de los últimos tiempos, [Andrey Konovalov] nos trae una historia increíblemente detallada de cómo descubrió y habilitó con éxito un USB dispositivo controlador en un ThinkPad X1 Carbon equipado con una CPU Intel de sexta generación.

Si alguna vez quiso echar un vistazo a los secretos sucios de un sistema basado en CPU Intel algo moderno, este artículo no le ahorra detalles y abarca docenas de capas de abstracción, desde controladores de Linux y modificación de NVRAM hasta creación de cables USB personalizados y Flasheo del chip BIOS, profundización en registros PCH indocumentados para el postre.

Todo [Andrey] quería era evitar jugar con una Raspberry Pi adicional. Mientras usaba un controlador de dispositivo conectado PCIe, encontró una referencia a intel_xhci_usb_sw-role-switch en Linux sysfs, y se sumergió en una madriguera de conejo, donde descubrió que el núcleo IP utilizado para los puertos USB de la computadora portátil tiene un modo de "dispositivo" que se puede habilitar. Una exploración de las tablas ACPI confirmó esto, pero también destacó que el dispositivo está deshabilitado en BIOS. Es más, resultó que estaba encerrado detrás de un menú oculto. Siguieron experimentos para desbloquear ese menú, en particular cuando se trata de omitir Intel Boot Guard, un mecanismo que verifica las firmas de imágenes del BIOS antes del arranque.

Se obtuvo un conector SPI [Andrey] en Adafruta para facilitar el parcheo del BIOS para desbloquear el menú oculto

[Andrey] nos muestra algunas formas diferentes en las que intentó habilitar el controlador, solo por diversión, desde usar exploits BootGuard hasta realizar ingeniería inversa en el mapeo de variables NVRAM EFI, e incluso una sección larga sobre cómo hurgar directamente en los registros de Intel PCH intentando para habilitar el periférico del dispositivo USB desde el espacio del usuario, con la ayuda de [Maxim Goryachy] de Fama de la ingeniería inversa de Intel. Al final, la forma de parchear NVRAM resultó ser la forma más viable para un usuario promedio, y la publicación del blog tiene detalles más que suficientes para cualquier hacker emprendedor que quiera que funcione para él también.

Como baile de la victoria, tenemos una sección sobre todas las cosas maravillosas que puedes hacer si tu dispositivo admite el modo de dispositivo USB. Está el ejemplo obvio de almacenamiento USB, pero [Alexey] nos muestra algunas herramientas interesantes para recordar: el marco del kernel de Linux Raw Gadget para construir cualquier tipo de dispositivo USB que puedas imaginar, el fuzzer de pila USB syzkaller y bailarín facial, un marco para la emulación de dispositivos USB.

Si crees que todo esto es mucho, ten en cuenta que solo hemos descrito aproximadamente la mitad de todas las cosas interesantes que contiene la publicación del blog. ve a verlo, y prepara una taza de té, porque hay muchas cosas interesantes que aprender.

Realmente, esta publicación de blog es un testimonio de la dedicación de un hacker y un brillante ejemplo de hasta dónde puedes llegar si estás dispuesto a seguir investigando. ¿Tu computadora portátil ocultar algunos secretos que nadie sabía que existía? Recuerde, sólo hay una manera de averiguarlo.

punto_img

Información más reciente

punto_img