1 votos

Fijar contextos SELinux para un binario SU

Estoy tratando de Root mi teléfono Android 6.0.1 utilizando el siguiente método:

Primero arranqué en una imagen TWRP usando fastboot boot luego usando el terminal TWRP copié el su binario del kit SuperSU a /system/xbin/ y ejecutó chmod 6755 ./su , chown root:root ./su y chcon u:object_r:system_file:s0 ./su . Ahora he arrancado en Android y abrió un emulador de terminal y goto /system/xbin/ y ver que el bit SUID se establece para su . Pero cuando corro su no ocurre nada y el binario sale con un mensaje 0 valor.

Ejecutar strace su muestra que el setresuid() y setuid() las llamadas fallan. Sospecho que esto se debe a los contextos SELinux.

¿Cuáles deberían ser los contextos SELinux para el binario?

1voto

Jack Wade Puntos 231

Las aplicaciones no pueden elevar sus privilegios haciendo uso de set-uid-root o capacidades de archivo. Se debe a Mejoras de seguridad en Android 4.3 :

  • No hay programas setuid/setgid. Se ha añadido soporte para las capacidades del sistema de archivos a los archivos del sistema Android y se han eliminado todos los programas setuid/setguid. Esto reduce la superficie de ataque Root y la probabilidad de posibles vulnerabilidades de seguridad.
  • Restringir Setuid de aplicaciones Android. La partición /system se monta ahora nosuid para los procesos creados por zygote, evitando que las aplicaciones Android ejecuten programas setuid. Esto reduce la superficie de ataque Root y la probabilidad de posibles vulnerabilidades de seguridad.
  • Limitación de capacidades. Android zygote y ADB ahora usan prctl(PR_CAPBSET_DROP) para eliminar capacidades innecesarias antes de ejecutar aplicaciones. Esto evita que las aplicaciones de Android y las aplicaciones lanzadas desde el shell adquieran capacidades privilegiadas.
  • NO_NEW_PRIVS . Android zygote ahora utiliza prctl(PR_SET_NO_NEW_PRIVS) para bloquear la adición de nuevos privilegios antes de la ejecución de código de aplicación. Esto evita que las aplicaciones de Android realicen operaciones que puedan elevar privilegios a través de execve. (Esto requiere la versión 3.5 o superior del kernel de Linux).

Contexto SELinux por defecto de /system/xbin/su es u:object_r:su_exec:s0 pero puede no ser la única limitación.

Para más detalles, véase:

También:

-1voto

user1147688 Puntos 238

Imposible decirlo con tan poca información. Tú lo has dicho:

...y corrió chmod 6755 ./su , chown root:root ./su y chcon u:object_r:system_file:s0 ./su

Esto parece implicar que ya eres Root. Si es un problema de SELinux, deberías ser capaz de ver esto en logcat -b main *:V .

0 votos

Soy Root en el terminal TWRP, pero no en Android.

0 votos

Lo que pregunto es cuál debería ser el contexto SELinux correcto para el programa.

0 votos

Explique también qué información necesita.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X