Un estudio preliminar sobre la minería de vulnerabilidades de televisores inteligentes: búsqueda de teclas de acceso rápido con funciones ocultas

Fui a jugar a una competencia de seguridad de automóviles la semana pasada, la serie de televisión de búsqueda de errores estuvo en pausa durante una semana. Sigamos esta semana. En Getshell, una exploración preliminar de la minería de vulnerabilidades de televisores inteligentes, resumimos los métodos para que los televisores convencionales entren en modo de ingeniería. Estos métodos fueron descubiertos por otros. La fuente principal deberían ser los documentos de mantenimiento internos, que se filtraron durante el mantenimiento posventa. El modelo técnico del vehículo y de la máquina debe ser el mismo. ¿Qué debo hacer si el televisor que tengo a mano no se puede conectar mediante métodos conocidos? Esto sucede. Una es que el fabricante ha cambiado las teclas de acceso rápido (combinaciones de teclas) o que el método de entrada no está claro (nuevas series, nuevos participantes). Si obtiene el firmware, puede analizarlo usted mismo.

Las funciones ocultas no se limitan al modo de ingeniería. Algunos administradores de archivos de TV no muestran aplicaciones APK de forma predeterminada y requieren combinaciones de teclas especiales para activar la visualización de APK. Antes de analizar la aplicación, primero comprendamos los valores clave del control remoto.

El mando a distancia suele comunicarse con el televisor mediante infrarrojos o Bluetooth. ¿Cómo sabe el televisor qué botones pulsamos? Android TV monitorea los comandos clave desde el control remoto a través de KeyEvent. El valor clave de la clave se puede obtener mediante getKeyCode(). Los valores clave se definen en el evento clave | Desarrolladores de Android | Desarrolladores de Android. Por ejemplo, la tecla INICIO que regresa a la página de inicio tiene un valor de clave de 3.

ADB se puede utilizar para simular eventos clave. Los siguientes dos comandos son comandos para regresar a la página de inicio. Después de escribir, el televisor volverá a la página de inicio.

Los números de serie clave de los controles remotos de uso común en los televisores son los siguientes.

La mayoría de los botones anteriores corresponden a uno, pero el botón de confirmación corresponde a cuatro. Esto se debe a que la clave de confirmación también es un valor numérico, es decir, la clave de confirmación también es una clave de control de reproducción.

A continuación se comparten tres casos. El primero es abrir la pantalla APK, el segundo es encontrar la tecla de acceso rápido en modo de ingeniería y el último es la definición de la tecla de acceso rápido en el archivo de configuración.

El televisor tiene archivos APK ocultos en el administrador de archivos y deben mostrarse mediante teclas de acceso rápido. Ahora analicemos cómo abrirlo. Primero busque la aplicación de administración de archivos y abra el análisis usando JADX.

1. Busque la palabra clave APK

Al buscar la palabra clave APK, vi una cadena filebrowsershowAPK. Como sugiere el nombre, muestra archivos APK. Este televisor parece poder abrir la visualización de APK mediante una tecla de acceso rápido.

2. Posicione el controlador de funciones ocultas a través del nombre de la variable.

Consulta la referencia cruzada a través del nombre de la variable de cadena y encuentra la función onTrigger. OnTrigger determina la cantidad de teclas que habilitan diferentes funciones. Si el número de claves ingresadas es 6, el indicador show_APK se establece en verdadero y el APK se muestra temporalmente. Si el número de claves ingresadas es igual a la longitud de las claves MULT, se establece una variable global y el APK se muestra permanentemente.

3. Teclas de acceso rápido

Un análisis más detallado muestra que la matriz de MULT_KEY es {82, 82, 19, 19, 20, 20, 21, 22}.

En correspondencia con el código de clave de Android, las claves convertidas son menú-menú-tecla arriba-tecla arriba-tecla abajo-tecla abajo-tecla izquierda-tecla derecha.

CheckKeyValid verifica la secuencia de claves. Solo las MULT_keys coincidentes pueden pasar la verificación. Valida una tecla cada vez que se presiona. Devuelve verdadero si la secuencia es correcta, falso en caso contrario.

4. Ubicación del activador

Ahora que conocemos la tecla de acceso rápido, necesitamos saber dónde activarla. Mirando hacia arriba, al crear la actividad del administrador de archivos, estaba escuchando un evento clave (OnKeyInterceptListener) en VerticalGridView. Primero, verifiqué la tecla de acceso rápido y decidí si abrir la pantalla APK.

Verificación

Finalmente, para resumir el uso, el foco del control remoto está en el archivo local y luego hace clic en menú-menú-tecla arriba-tecla abajo-tecla abajo- Tecla izquierda-derecha en secuencia, aparecerá el mensaje "La pantalla de la aplicación APK se ha abierto permanentemente". Luego inserte el disco USB y podrá ver los archivos que contiene.

Una vez se descubrió que la aplicación en modo de ingeniería AndroidManifest.xml no tenía actividades definidas y otras aplicaciones solo la llamaban como un servicio.

No se puede abrir activamente, pero puede usar el comando am startservice para iniciar el servicio y abrir la página de la aplicación para ingresar al modo de ingeniería.

1. Buscar teclas de acceso rápido

El requisito previo para iniciar esta aplicación es el permiso ADB, pero aún quiero abrir esta aplicación en estado normal. El modo de ingeniería generalmente se puede activar con una tecla de acceso rápido, ahora es el momento de rastrearlo. La función de llamada se encontró en otra aplicación buscando el nombre del servicio.

Desafortunadamente, esta aplicación también es un servicio y no se puede abrir directamente. Luego busque la palabra clave de búsqueda launchFactoryMenu y descubra que el método para abrir el modo de ingeniería con teclas de acceso rápido está definido en TvSettingsPlus.apk

Del mismo modo, FACTORY_MENU_COMBINATION_KEY también es una matriz. Según la decodificación del código clave de Andriod, se obtiene el volumen del volumen: izquierda, izquierda, arriba y abajo.

2. Posición del gatillo

Después de encontrar la tecla de acceso rápido, debe encontrar la posición del gatillo. Según tagcom.Android.TV.settings.main settings.settings_fragment, en la página de configuración del sistema.

Verificación

Primero ingresa a la página de configuración del sistema. Luego, presione el botón de volumen izquierdo del control remoto hacia arriba y hacia abajo rápidamente en sucesión para ingresar al modo de ingeniería.

Las secuencias de teclas de acceso rápido de los dos casos anteriores se almacenan en una matriz y existen otras soluciones, como almacenarlas en el archivo de configuración.

Como se mencionó anteriormente, puede usar el menú para volver al menú de fábrica (modo proyecto).

Muchas funciones ocultas en los televisores inteligentes deben habilitarse mediante teclas de acceso rápido remotas. Habilite la funcionalidad oculta escuchando los eventos de clic enviados por el control remoto. Este artículo analiza algunas teclas de acceso rápido de TV. Básicamente, hay dos formas de definirlas, una se define en el archivo de configuración y la otra se define mediante una matriz en la aplicación. Después de encontrar la combinación de teclas de acceso rápido, también necesita encontrar la página de activación. Solo se puede activar con éxito de una manera específica porque el controlador solo escucha en una interfaz específica.