1 votes

Correction des contextes SELinux pour un binaire SU

J'essaie de Rooter mon téléphone Android 6.0.1 en utilisant la méthode suivante :

J'ai d'abord démarré dans une image TWRP en utilisant fastboot boot puis, en utilisant le terminal TWRP, j'ai copié le fichier su du kit SuperSU dans /system/xbin/ et exécutez chmod 6755 ./su , chown root:root ./su y chcon u:object_r:system_file:s0 ./su . Maintenant, j'ai démarré dans Android et ouvert un émulateur de terminal et je suis allé dans /system/xbin/ et je vois que le bit SUID est activé pour su . Mais quand j'exécute su rien ne se passe et l'exécutable sort avec un message d'erreur de type 0 valeur.

Running strace su montre que le setresuid() y setuid() les appels échouent. Je soupçonne que c'est à cause des contextes SELinux.

Quels doivent être les contextes SELinux pour le binaire ?

1voto

Irfan Latif Points 16863

Les applications ne peuvent pas élever leurs privilèges en faisant usage de set-uid-root ou les capacités du fichier. C'est dû à Améliorations de la sécurité dans Android 4.3 :

  • Pas de programmes setuid/setgid. Ajout du support des capacités du système de fichiers pour les fichiers du système Android et suppression de tous les programmes setuid/setguid. Cela réduit la surface d'attaque de Root et la probabilité de vulnérabilités de sécurité potentielles.
  • Restreindre Setuid dans les applications Android. La partition /system est désormais montée en mode nosuid pour les processus créés par zygote, ce qui empêche les applications Android d'exécuter des programmes setuid. Cela réduit la surface d'attaque de Root et la probabilité de vulnérabilités de sécurité potentielles.
  • Limitation des capacités. Android zygote et ADB utilisent désormais prctl(PR_CAPBSET_DROP) pour supprimer les capacités inutiles avant l'exécution des applications. Cela empêche les applications Android et les applications lancées depuis le shell d'acquérir des capacités privilégiées.
  • NO_NEW_PRIVS . Android zygote utilise désormais prctl(PR_SET_NO_NEW_PRIVS) pour bloquer l'ajout de nouveaux privilèges avant l'exécution du code de l'application. Cela empêche les applications Android d'effectuer des opérations qui peuvent élever les privilèges via execve. (Ceci requiert la version 3.5 ou plus du noyau Linux).

Contexte SELinux par défaut de /system/xbin/su es u:object_r:su_exec:s0 mais ce n'est pas forcément la seule contrainte.

Pour plus de détails, voir :

Aussi :

-1voto

not2qubit Points 817

Impossible à dire avec ce peu d'informations. Vous avez dit :

...et a couru chmod 6755 ./su , chown root:root ./su y chcon u:object_r:system_file:s0 ./su

Cela semble impliquer que vous êtes déjà Root. S'il s'agit d'un problème SELinux, vous devriez pouvoir le voir en logcat -b main *:V .

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X