Cómo obtener acceso al shell del sistema en cualquier dispositivo Samsung Galaxy

click fraud protection

enlaces rápidos

  • Requisitos previos
  • Cómo explotar cualquier dispositivo Samsung Galaxy para obtener acceso al shell del sistema
  • Verificación
  • Conclusión

El primer lunes de cada mes, Google publica el Boletín de seguridad de Android. Revela todas las vulnerabilidades de seguridad mitigadas en varios componentes del sistema operativo Android como así como el kernel de Linux y sus parches enviados por los propios Google u otros terceros a ese fecha. Los grandes fabricantes de equipos originales como Samsung tienen su propia versión de Android, por lo que optan por incluir también sus propios parches y actualizaciones en las actualizaciones de seguridad.

Dicho esto, es bastante difícil solucionar todas las lagunas. Existe una gran cantidad de vectores de ataque y, a veces, puedes crear tu propia cadena de exploits basada en una vulnerabilidad previamente conocida sólo porque tienes un nuevo método para eludir una de las salvaguardias. Esto es exactamente lo que el miembro senior de XDA K0mraid3 Lo hizo con una vulnerabilidad de cuatro años de antigüedad, que le permitió obtener acceso al shell del sistema en todos los dispositivos Samsung Galaxy, incluidos los últimos buques insignia, que existen. Si bien no es lo mismo que

tener privilegios de root, es una escalada de privilegios locales suficientemente alta.

El principal punto de entrada de la vulnerabilidad se encuentra en Samsung Text-To-Speech (nombre del paquete: com.samsung. SMT), una aplicación del sistema precargada que se puede encontrar en todos los dispositivos Samsung Galaxy. La idea es degradar la versión instalada de la aplicación a una compilación vulnerable específica (v3.0.02.2 para ser precisos), y luego obligarlo a cargar una biblioteca, que a su vez abre un shell con privilegios del sistema (UID 1000).

Si desea obtener más información sobre el exploit, asegúrese de consultar Explicación del editor técnico principal de XDA, Adam Conway. Habló con K0mraid3 para comprender el alcance completo de este exploit y cómo funciona.

  1. Para reiterar, este no es un acceso de root (UID 0), pero el acceso al shell del sistema es lo suficientemente potente como para ejecutar un montón de archivos binarios que de otro modo estarían restringidos.
  2. La prueba de concepto de K0mraid3 requiere un APK auxiliar y debes ejecutarlo al menos una vez antes de iniciar la cadena de exploits.
  3. Una interfaz de usuario, es decir, las rutinas de ahorro de energía integradas de la máscara Android personalizada de Samsung, pueden ser problemáticas, ya que pueden obstaculizar la comunicación entre la aplicación TTS, el APK auxiliar y el shell. Por lo tanto, sugerimos configurar de antemano el perfil de ahorro de energía en "Sin restricciones" para las aplicaciones.

Requisitos previos

  1. Descargue la versión precompilada del exploit desde Hilo del foro XDA o el repositorio oficial de GitHub vinculado a continuación: Explotación del shell del sistema K0mraid3s
  2. Extraiga el archivo en algún lugar y debería encontrar la versión vulnerable del APK de Samsung Text-To-Speech (samsungTTSVULN2.apk), la aplicación auxiliar (Komraid3s_POC_Vx.x.apk) y un ejecutable de Windows llamado systemshell-vx.x.exe.
  3. Asegúrese de que la última versión de BAsD está instalado en su PC/Mac/Chromebook. Además, recuerda instalar/actualizar los controladores USB de Samsung si eres un usuario de Windows.

Cómo explotar cualquier dispositivo Samsung Galaxy para obtener acceso al shell del sistema

método manual

  1. Conecte el dispositivo Galaxy de destino a su PC con la depuración USB activada, asegúrese de que ADB pueda detectarlo y luego instale la aplicación auxiliar.
    adb install Komraid3s_POC_Vx.x.apk
    • Como se mencionó anteriormente, abra la aplicación de ayuda al menos una vez antes de continuar con el siguiente paso.
  2. Ahora envíe la versión vulnerable de la aplicación Samsung TTS a /data/local/tmp y cambie sus permisos:
    adb push samsungTTSVULN2.apk /data/local/tmp
    adb shell chmod 777 /data/local/tmp/samsungTTSVULN2.apk
  3. Reinicie el dispositivo. Tan pronto como esté en la pantalla de inicio, ejecute el siguiente comando para reemplazar la versión ya instalada de la aplicación Samsung TTS por la vulnerable:
    adb shell pm install -r -d -f -g --full --install-reason 3 --enable-rollback /data/local/tmp/samsungTTSVULN2.apk
    • Si todo va bien, deberías ver un mensaje de "Éxito" en la consola.
  4. Abra un shell en el dispositivo de destino abriendo otra ventana de terminal y ejecutando shell adb, luego ejecute el binario Netcat y escuche una conexión entrante en el puerto 9997 con el siguiente comando:
    adb shell nc -lp 9997
  5. En esta etapa, debemos ejecutar una actividad específica de la aplicación Samsung TTS, que nos abrirá el shell del sistema.
    • Utilice una aplicación de terceros como este para crear un acceso directo al archivo “com.samsung. SMT/.gui. Actividad DescargarLista”.
    • También puedes utilizar el administrador de actividades propio de Android (am) para hacer lo mismo. En ese caso, puede ejecutarlo a través de ADB (adb shell am start -n com.samsung. SMT/.gui. DownloadList) o use una aplicación de emulador de terminal en su teléfono/tableta como Termux y ejecute el siguiente comando:
      am start -n com.samsung.SMT/.gui.DownloadList
  6. Vuelva al primer shell y debería ver un nuevo mensaje con el privilegio del sistema (UID 1000).

Método automatizado

Para facilitar las cosas, K0mraid3 también proporciona una aplicación GUI fácil de usar para automatizar la mayoría de las tareas. Tenga en cuenta que la aplicación GUI es solo para Windows, por lo que si es usuario de Linux/macOS, es mejor seguir con el método manual.

  1. Conecte el dispositivo Galaxy de destino a su PC con la depuración USB activada, asegúrese de que ADB pueda detectarlo y luego instale la aplicación auxiliar.
    adb install Komraid3s_POC_Vx.x.apk
    • Como se mencionó anteriormente, abra la aplicación de ayuda al menos una vez antes de continuar con el siguiente paso.
  2. Con el dispositivo de destino reconocible por ADB, ejecute systemshell-vx.x.exe en la PC host.
  3. Haga clic en el botón "INICIAR SHELL". La aplicación degradará automáticamente la aplicación Samsung TTS e intentará abrir el shell del sistema.
    • En su teléfono/tableta, es posible que vea la aplicación TTS solicitándole que descargue algunos datos de voz. No es necesario interactuar con esas opciones, ya que no tienen nada que ver con el exploit.
    • En caso de que la aplicación se cuelgue o no pueda abrir la ventana del shell después de un tiempo, ciérrela, reinicie el dispositivo Galaxy de destino y comience de nuevo.
    • La aplicación Galaxy Store puede actualizar y/o restablecer automáticamente el perfil de ahorro de energía de la aplicación TTS en segundo plano, así que asegúrese de verificarlo antes de comenzar el proceso desde cero.

Verificación

Una vez que tenga acceso al shell, puede verificar el nivel de privilegio usando uno de los siguientes comandos:

  • whoami
    • La salida debe ser "sistema"
  • id -u
    • La salida debe ser "1000"

Conclusión

La forma típica de lograr acceso root en un dispositivo Android es desbloquear primero el gestor de arranque, que le permite iniciar archivos binarios de terceros. Dado que el modelo de seguridad de Android básicamente se desmorona con la raíz, este paso consiste en desactivar intencionalmente una de las funciones de seguridad clave en el dispositivo, que Es por eso que el usuario tiene que permitir explícitamente que esto suceda, generalmente habilitando un interruptor en Opciones de desarrollador y luego emitiendo un comando de desbloqueo al gestor de arranque. Una vez que se desbloquea el gestor de arranque, el usuario puede introducir un binario de superusuario en el sistema y también una aplicación de administración de superusuario (como Magisk) para controlar qué procesos tienen acceso a la raíz.

Sin embargo, con el exploit del shell del sistema mencionado anteriormente, el usuario no tiene que desbloquear el gestor de arranque para obtener un privilegio escalado. Aunque está lejos de ser root, el usuario del "sistema" es lo suficientemente capaz de acceder a varias particiones de bajo nivel (como como /efs), inicia varios servicios y herramientas de depuración, y modifica muchos valores de propiedades protegidos, todo sin siquiera tropezar Knox. Estos ejemplos sólo abordan algunas formas; un actor malicioso puede combinar esto con otras vulnerabilidades y realizar acciones más nefastas.

Tendremos que esperar y ver cómo Google y Samsung abordan el escenario. De cualquier manera, probablemente deberías desactivar o eliminar la aplicación Samsung Text-To-Speech por el momento.