OnePlus dejó una aplicación de prueba de ingeniería de Qualcomm que actúa como puerta trasera para otorgar acceso de root en OnePlus 3, 3T y 5.
Actualización: OnePlus ha emitido un respuesta oficial al asunto. Eliminarán la función raíz ADB de EngineerMode en una próxima actualización.
Ha pasado poco más de un mes desde que se descubrió que OnePlus estaba recopilando información de identificación personal para análisis. La empresa rápidamente cambió de rumbo y, en una actualización, prometió ser más transparente al brindar claramente a los usuarios la opción para optar por no recibir análisis de OxygenOS. Aunque esa debacle ya se resolvió, otra está asomando su fea cabeza esta noche. Un usuario en Twitter que se llama "Elliot Alderson" (llamado así por el personaje principal de la popular serie de televisión Mr. Robot) ha descubierto que OnePlus Dejó accidentalmente en su lugar una aplicación de prueba de diagnóstico. fabricado por Qualcomm. Después de descompilar esta aplicación, descubrió que se puede
explotado para otorgar acceso de root, actuando efectivamente como una puerta trasera.La aplicación se llama "EngineerMode" y es esencialmente una aplicación de sistema creada por Qualcomm. y proporcionado a OEM como OnePlus para que los OEM prueben fácilmente todos los componentes de hardware del dispositivo. La aplicación está preinstalada en todos los dispositivos OnePlus 3, OnePlus 3T y OnePlus 5 y se puede acceder fácilmente a ella a través de cualquier iniciador de actividades, ya que todas las actividades de la aplicación se exportan.
nosotros en realidad cubrió la existencia de esta aplicación hace varios meses, pero en ese momento no teníamos idea de para qué podría usarse. El usuario de Twitter descompiló la aplicación (su fuente ha sido publicada en línea aquí) y encontré una actividad interesante llamada DiagEnabled. En particular, un método destacó dentro de la actividad: escalatedUp. Este método acepta un valor booleano (verdadero/falso) y una cadena. La cadena es una contraseña que el método verifica antes de establecer las propiedades del sistema. persist.sys.adbroot
y oem.selinux.reload_policy
a 1.
La primera propiedad del sistema es particularmente interesante ya que permite al usuario ejecutar ADB como root. Esto abre inmediatamente la posibilidad de adquirir acceso root completo en el teléfono, todo sin desbloquear el gestor de arranque. Entonces, ¿cómo se consigue exactamente que la aplicación EngineerMode establezca estas propiedades del sistema en '1'?
@fs0c131y necesitaba encontrar la contraseña correcta para enviar la intención a fin de pasar la lógica en el método publicado anteriormente. Sin embargo, encontrar esta contraseña no es una tarea sencilla. Descompiló la biblioteca responsable de generar la contraseña (llamada libdoor.so) y encontró dónde se encontraba el hash de la contraseña: /data/backup/fpwd
. La contraseña se genera a partir de varias propiedades de compilación, como ro.product.model
y ro.product.brand
y no sería fácil realizar ingeniería inversa.
Por suerte con la ayuda David Weinstein y Ahora seguro en Twitter, descubrió la contraseña que necesitaba EngineerMode para escalar ADB a privilegios de root.
Todo lo que hay que hacer es enviar una intención en este formato:
adb shell am start -n com.android.engineeringmode/.qualcomm.DiagEnabled --es "code""angela"
donde com.android.engineeringmode/.qualcomm. DiagEnabled es el nombre del componente de la actividad DiagEnabled que estamos explotando, y "código" es el nombre de la cadena y "angela" es el valor de contraseña relevante.
@fs0c131y afirma que lo hará publicar una aplicación pronto enviará esta intención de elevar ADB a privilegios de root, parchear la imagen de arranque para deshabilitar dm-verity e instalar los binarios secundarios. Esté atento a los foros de XDA para saber cuándo se publica esta aplicación raíz.
Lo que esto significa para los usuarios finales es que usted puede Rootee fácilmente su OnePlus 3, OnePlus 3T y OnePlus 5 sin tener que desbloquear el gestor de arranque. Sin embargo, este exploit no permite que una aplicación maliciosa se otorgue acceso de root, por lo que, a menos que alguien tenga acceso físico a su dispositivo para configurar ADB, estará a salvo de la explotación.
En caso de que quieras protegerte de este exploit de todos modos, puedes desinstalar la aplicación del usuario actual lo que evitará que la intención se envíe a la aplicación EngineerMode. Simplemente use el siguiente comando en ADB:
adbshellpmuninstall-k--user 0 com.android.engineermode
Por supuesto, esto todavía se considera un exploit y esperamos que OnePlus lo solucione pronto. Todo lo que realmente tendrían que hacer es eliminar esta aplicación de futuras compilaciones.
Actualización 1: La contraseña es 'angela'
El usuario @fs0c131y publicó una actualización en su página de Twitter con la contraseña que necesita para acceder a un shell ADB rooteado. Esa contraseña es...ángela. Para aquellos que no ven Mr. Robot, Angela es el nombre de una de las protagonistas. Supongo que debe haber muchos fanáticos de Mr. Robot en Qualcomm.
Si ingresa el comando que publiqué anteriormente en ADB, notará que ADB se desconecta inmediatamente y el servidor se reinicia. Ingrese ADB nuevamente y notará que ahora es un shell rooteado.
Actualización 2: Cómo se obtuvo la contraseña
La empresa de seguridad Now Secure ha publicado una entrada de blog que detalla cómo obtuvieron la contraseña necesaria para que se produzca este exploit de raíz. Puedes leer su post completo aquí.
Actualización 3: más dispositivos afectados
Esta última noticia no debería ser una sorpresa, pero parece que más dispositivos se ven afectados por este exploit. Esto se debe a que la aplicación EngineerMode es una aplicación de Qualcomm, por lo que es posible que otros OEM la hayan dejado preinstalada en sus dispositivos. Hasta ahora, los usuarios se han comunicado con @fs0c131y en Twitter para confirmar que la aplicación está instalada en algunos dispositivos Asus Zenfone y Xiaomi. Puede verificar fácilmente si su dispositivo tiene esta aplicación ingresando a Configuración y viendo qué aplicaciones están instaladas.
Actualización 4: Rootear su dispositivo
Usando algunos comandos a través del shell ADB rooteado, ahora es posible inserte el binario su en su dispositivo. Al usarlo, puede instalar una aplicación de administrador de raíz como SuperSU y luego otorgar libremente acceso de raíz a otras aplicaciones. ¡Todo sin desbloquear tu gestor de arranque!
Actualización 5: OnePlus responde
OnePlus ha respondido oficialmente a la situación. en un entrada en el blog, la compañía reitera que este exploit solo se puede utilizar si un atacante tiene acceso físico al dispositivo y ha habilitado la depuración USB. Para habilitar la depuración USB, el atacante también necesita el PIN/contraseña de su dispositivo. Por lo tanto, ninguna aplicación o persona puede explotar fácilmente la puerta trasera raíz, pero, aun así, OnePlus abordará las inquietudes de los usuarios eliminando esta funcionalidad de la aplicación EngineerMode.