🦸‍♂️Binaire "su"

Description

Le binaire "su" sur Android est un outil qui permet d'obtenir un accès de super utilisateur (ou "root") sur un appareil Android. Cela signifie que l'utilisateur dispose de droits d'administrateur complets sur l'appareil, ce qui lui permet d'effectuer des tâches normalement réservées aux fabricants d'appareils.

Le binaire "su" est généralement installé sur les appareils Android qui ont été "rootés", ce qui signifie que les utilisateurs ont modifié le système d'exploitation pour obtenir un accès de super utilisateur.

Le binaire "su" peut être trouvé aux l'emplacements suivants sur les appareils rootés:

  • /system/xbin/su

  • /system/bin/su

  • /sbin/su

  • /data/local/bin/su

  • /data/local/xbin/su

  • /data/local/su

  • /system/sd/xbin/su

  • /su/bin/su

  • /system/bin/failsafe/su

  • ...

Afin de vérifier si un appareil est rooté, certaines applications vont alors simplement aller rechercher la présence de ce binaire dans ces emplacement.

Contournement

Flag du binaire

Comme on peut le voir sur la capture ci-dessus, le binaire "su" a été détecté à l'emplacement /system/xbin/su.

Afin de faire cette vérification, l'application va comparer la réponse à la commande "which su" à des chaînes de caractères.

D'abord, on va rechercher comment est effectué la validation dans le code en recherchant la chaîne de caractères "/system/xbin/su".

Ici on peut voir que le code va utiliser des chaînes de caractères prédéfinies afin de les comparer avec la réponse de whitch su.

Pour le premier bypass (vérification de la présence du binaire), on va d'abord décompiler le code afin d'en extraire le code smali pui rechercher la chaîne de caractère "/system/xbin/su" dedans. Une fois celui-ci trouvé, on va tout simplement remplacer le chemin vérifié par un chemin n'existant pas (ici "/system/xbin/bypass").

Il reste finalement à recompiler et auto-signer l'application puis la réinstaller sur l'appareil.

Test du binaire

Une autre façon qu'on certaines application de vérifier l'existance du binaire "su" est tout simplement de tenter de lancer la commande su via les différents emplacements possibles et de bloquer si celle-ci se lance.

Dernière mise à jour